Flask makes you a better developer

Before trying Flask, I used Rails and Django to develop web applications. The issue I ran into was not understanding how requests work (among other things). The frameworks were so "magical" that it was hard to understand and debug specific issues; there was a knowledge gap between what I was doing as the developer and what the framework was trying to accomplish. Flask exposes just enough of the "magic" to allow the developer to understand what requests are and how they work.

Using Flask has deepened my understanding of web development and led to my first public project, [Conveyor.dev](https://Conveyor.dev). Conveyor is a Flask application to help you deploy your Flask applications to Digital Ocean and Linode servers. Starting as a small Flask API with a Vue frontend, I transitioned to Jinja templates after growing tired of writing Javascript. I found myself preferring to write Python over JS, and my development process changed to allow this.

cloc (Count Lines of Code) (1697.4 files/s, 116501.3 lines/s)
Language files blank comment code
Python 110 1661 1593 7295
HTML 52 59 0 1300
JavaScript 18 51 29 409
Markdown 1 25 0 109
CSS 1 18 3 101
Other ... ... ... ...
SUM: 186 1836 1629 9301

Conveyor is the largest solo project I have built to date; the codebase has grown to 9300 lines of production code (if that metric means anything to you). The project is a heavy dose of Python with a bit of HTML. Conveyor used Stimulus.js early in the project, but now I've switched to Flask-Meld to handle dynamic frontend components (more Python, less Javascript).

Conveyor was built to help Flask developers deploy their applications without the hassle. I would love to hear your feedback and work through any issues you encounter. Try it out at [Conveyor.dev](https://conveyor.dev)

6 thoughts on “Flask makes you a better developer”

  1. Great youtube video by the way. Really straight forward – I think I will sign up and give this a try, might inspire me.

  2. YES, i’m so thrilled to finally see someone post this take. if you’re a certain kind of person (like me), using something like rails can be intolerable if you don’t have enough experience to mentally fill in the blanks. as someone who’s always had a deep need to understand how web development actually “works”, albeit at a fairly arbitrary level of depth, a month spent experimenting with flask was worth more than 6 months in rails or like, literally 1 or 2 years trying to use front end frameworks without knowing anything. if you’re struggling and this stuff resonates with you, consider going lower-level – flask, node, php (maybe try symfony?), even go, whatever, just give it a shot.

    on a related note: does anybody else feel like this might actually be the general preference of web devs? the rise of node was a huge cultural shift away from “magical” all in one frameworks with CLI’s and so on. there’ve been attempts such as sails.js, but very minimal libraries devoted to a single task (express, sequelize, passport, etc) have remained top dogs.

  3. Great tool you built there, seems really useful.

    Also, I am hearing about flask-meld for the first time, is it like react components? So, for example, can data be loaded in asynchronously inside specific components?

  4. You have used flask meld i thays a great news i have my eye on it form the first time i saw it
    It really looks like react alternative for me
    So how was your experience with flask meld?

  5. I definitely had to learn Flask before I could understand what Django was trying to do. I think each has its place. I’m working a project for a friend right now that is very admin-interface heavy and what Django brings to the table for that is AWESOME. I tried doing the same thing in Flask and gave up for all the stuff I had to implement that comes for free in Flask.

    However, if you’re doing an API-based site that either doesn’t need a front-end or uses javascript or meld on user-facing part, I think Flask and FastAPI are the BEST!

    I created a Flask app to handle the webhook-based notification that Sid Meier’s Civilization VI uses for Play By Cloud games in just a weekend.[I ended up moving to FastAPI](https://github.com/djotaku/Civilization_VI_Play_By_Cloud_Webhook_with_FastAPI) for a few of its features, but going from one to the other is \*ALMOST\* copy/paste.


Leave a Comment