All posts

Choosing a stack for a web application

May 9, 2023 |

The Adventures of an Indie Hacker: Learning to Choose Frameworks the Funny Way

Building a SAAS application with the latest tools and technologies is like diving into a candy store, but sometimes, it’s like going through a haunted house. As an indie hacker, I’m one of those curious developers who can’t resist exploring new languages, frameworks, and tools. I mean, who doesn’t want to stay updated and hip with the latest tech, right? Using languages and web-framework based on surveys like this and this for building applications would make me feel good and updated. But little did I know, it’s like walking through a maze full of twists and turns, and it can give you a headache.

Learning to Choose Frameworks the Hard and Hilarious Way

My primary app right now is Hellokea. It’s like a Swiss Army Knife for indie hackers, with all the features to market their products with ease. But building it is no piece of cake, especially when you’re a one-person band. I’ve tried two different frameworks to build it, and boy, what an adventure it was.

Phoenix Framework - Like a Phoenix Rising from the Ashes

If you’re from a Ruby on Rails background, you’ll love Phoenix. It’s like Rails, but with a twist. But the lack of libraries for doing tasks makes it hard to build web applications on your own. As an indie hacker, you want to get things done fast. That’s why I stopped development with Phoenix. But hey, if the ecosystem gets rich with all the libraries, I’ll go back to Phoenix like a phoenix rising from the ashes.

Nodejs Wonderland - Welcome to the Mad Tea Party

No one can deny that Nodejs is a treasure trove of third-party libraries and frameworks. So, I jumped right in and started building applications with Express, Postgres, and Vue. The backend was handled by Express and Postgres, while VueJs took care of the frontend. It all looked so tempting and easy to use. I’ve had some experience with Vuejs before, and let’s just say it’s quite expressive and quicker to build things than my morning cup of coffee.

The best part of the javascript world is the vast array of libraries and tools available. For handling tons of inbound emails for the helpdesk system, I found Haraka to be a battle-tested email framework that did the job perfectly. One could easily add a plugin to handle certain tasks and hook that up with your stack. With all this, it was a cakewalk.

But then came the upgrade. When it comes to upgrading the javascript ecosystem, it’s like crossing your fingers and hoping for the best (at least for me). You never know what’s going to break. Sure, you could say that about almost all frameworks, but with Node, I made the mistake of choosing heaps of libraries for quickly building Hellokea. Upgrading every single library you’ve used is a tedious task. And, it didn’t stop there. I also had to update my frontend Vuejs. Finally, I just got tired and lost interest. Lesson learned - don’t go down the rabbit hole of too many libraries.

Python and Django - The Holy Grail

Finally, my hunt ended with Python and Django. It’s like finding the Holy Grail after going through a long quest. With its rich libraries and tools, building Hellokea is like walking in the park. So if you’re an indie hacker like me, take my advice and stick with what works.

Why Django?

Choosing Django has been one of the best things I’ve done in my development journey! With almost all the built-in features I needed for this project, including authentication, views, middleware, and admin, Django has made my life so much easier. It’s like having a trusty sidekick that takes care of all the heavy lifting!

What’s even better is that Django’s built-in features make updating projects a breeze. No more worrying about compatibility issues with third-party libraries, because Python has an extensive library collection that works perfectly with Django.

And speaking of libraries, I’ll be writing more tech posts soon on some amazing ones, like BeautifulSoup and inbound email handling. Stay tuned for some serious geeking out!

The whole helpdesk system is now complete, and it’s purely built with Django and Htmx. So, if you want to save yourself from the maze of twists and turns while building an application, choose Django! Trust me; it’s like having a superhero by your side, always ready to save the day!