Hacker News new | ask | show | jobs
by shiburizu 2896 days ago
You mentioned python: Pick up Flask. It's seriously the most down to earth, "it does what I want it to do" framework for web. Make sure you know how to use SQLAlchemy (Flask's builtin SQLAlchemy is amazing) so you can have a persistent database and just spend some time building pages with forms and populate your pages with forms. Later you can make it look pretty with Bootstrap.

I spent a lot of time opposed to "web apps" being ported as native applications but I've come to realize after doing it myself on a few web based projects that there is no better GUI framework than just writing HTML and using CSS frameworks. It works everywhere the way I want it to.

As for deployment you can consider Heroku. I consider the "ephemeral" approach a bit annoying to work with on the first few tries but when you get the basic idea of how the platform expects your program to look and you get a really nice setup for free.

This is how I've written a few different web apps coming out of highschool where my programming knowledge was limited and I wanted to work on websites and apps. I spent a few tries using obtuse things to write programs in things I was familiar with already but after seeing how easy it is to work with Flask and Jinja2 templates, it's recommendable to people who are new to programming in general.

There are more modernized approaches you can hear from people who work in web dev: going directly into Vue/React and writing your whole web application in Javascript. But I think for a more holistic understanding of just what you are doing (something a lot of crash courses miss) I'd recommend writing your back end in Flask, writing those HTML pages and using templating to show your data on those pages. Then you can beautify, and hit up your preferred deployment option.

Good luck!

5 comments

Flask is great, but as this is his first web project he wont have any own opinions. Therefore Django might be the better choice as he has all the batteries (ORM, backend dashboard, user registration, ...) already included.
I've tried Django! It really does lots of batteries included. It was going to be my go-to if I wasn't going no-code. Thanks!
Can not recommend Flask enough, just for sheer simplicity. Really puts the fun back into making a web app and getting that MVP deployed.

Flask's eco-system is great, but not as extensive as Django's IMO. And Flask itself is definitely more bare-bones, which means there's less crud, but sometimes that crud comes in handy.

Flask and Django share quite a few similarities though. So worst case if you find yourself wanting things from Django's eco-system, you can go from Flask to Django without too much hassle (relatively speaking). Don't know why you would, or expect you will, but nice to know it wouldn't require a full re-write.

Sorry for my ignorance as I am learning web development. How would Express.js compare to Flask in this scenario? From what I've read it seems they are pretty similar in concept.

I do know the basic syntax of both JS and Python, but I thought it would be better to focus on one language, and since JS is so common for the front-end complex stuff it would make sense.

In my opinion node is better if you have experience, Express is so bare ones that you are going to write almost all of you functionalities.

I am also kind of a beginner but I could not stand the way the node ecosystem is spread apart. Do not let others fool you about how npm is a chaos. The problem is the bare boned node ecosystem.

I literally spend hours reading the documentation of passport js for account creation because it did not make sense to me, it implied that you knew how to do some validation, then I had to choose the hashing algorithm of storing passwords, setup the email verification system and even roles and I was about to implement everything by hand. When read about other frameworks like hapi and feathers. Checked them did not really offered that much and ditched js for backed for good.

If I want to do everything from ground I would better choose Phoenix (erlang web framework) at least app would be real multithreaded by default.

I am really frustrated but do not get me wrong node is beautiful, Middleware idea is incredible but you are alone. But There is not even a way to exclude Middleware from routes unless you do a hack as a middleware.

In my opinion node has advanced greatly by the advancing of js itself, but once you start to program you are kind of alone. You are better using rails (not my favorite does a lot of magic) or some python tech (I am using Django btw).

But I guess that's exactly the point, isn't it? The fact that Flask/Express are so bare bones, you end up learning a lot, so for learning purposes makes a lot of sense.
You have a point, in a more relax comment, how much learning is enough? As personal opinion just reading the documentation of your tool of choice can lead to vast amount of knowledge, default params, recommended practices, all of that is included in a well documented project, but how much should I dig into the rabbit's hole when using node?.
I see your point. How much do I actually have to know is a very good question. Because there will always be something else to learn.

In my case, I want to have a good base knowledge before leaning on any kind of "magic". I got into Python with the MIT course on EDX and got bit by the programming bug. I decided to try and get into the web dev stack, so I started to dive into JS too. Now I want to start to build stuff, and the reason why I asked the question in my first post is because it may be easier to just go deep into one language (can't do web dev without JS), since I am so inexperienced.

Well if we can say things we can say that any abstraction is magic until insiders are seen, the question is how much abstraction you are willing to take in order to feel comfortable.
Thanks for the suggestions! I've actually deployed on Heroku with Flask before, but only as an API server for back-end processing. It's the building out forum functionality and front-end I'm hesitant with.
Mind if I chirp in with another idea? Is phoning a friend an option??

Here's how I see it. You've got to do two things - build a community and build it a home. You've already got a pre-MVP to build a community around. Could you find someone to build it (or help with part of it)?

I'm worried you won't like the look then get bogged down in weird front end stuff.

With Flask, another option would be to deploy with Zappa(handles deploying via AWS Lambda). This plus LambCI is becoming my go-to for personal projects.