The Hidden Struggles of Choosing the Right Building Stack
I stumbled through these frameworks and deployment methods so you don’t have to
With the hype of AI, are you itching to build your own application? Not exactly for earnings, but to share your work with the public?
There are so many frameworks, and they all seem perfect — so how do you choose?
I had the same dilemma.
Initially, I didn’t even think too hard about it at first. I just grabbed whatever was at hand and started building right away. This led to some failures, but ultimately, valuable lessons.

Understanding Your Options
When coding applications, there’s always the frontend-backend consideration.
Backend
There’s a constant battle between Java and Python, but as someone who transitioned into programming later on, Python is definitely my favorite. It has less type constraints, easier to prototype, and more intuitive.
My favorite frameworks: Django, Flask, and FastAPI — each with their benefits.
Django — A full-fledged, robust framework ideal for complex, enterprise-level projects. I’ve worked extensively with it and appreciate its power.
Flask & FastAPI — Lightweight and flexible, making them perfect for fast iterations and modern API-driven applications.
Now, as I focus on personal projects, my priority is agility. That’s why I’m diving deeper into Flask and FastAPI — both offer the flexibility I need without unnecessary overhead.
Frontend
Thankfully, there’s just one dominant language: JavaScript (okay, there’s also TypeScript, but it’s an extension of JavaScript, so not a huge shift).
For rendering, we have the standard HTML and CSS. But writing plain JavaScript is tedious, so we turn to frameworks. For frontend, my two favorites are Vue and React.
All-in-One: Next.js
This framework combines frontend and backend seamlessly — all within a single language: Javascript.
And the best part? Effortless deployment!
My Journey with Different Stacks
I’ve built three applications, all publicly available. Each one had a core focus that shaped my choice of stack, leading to different combinations based on the project’s needs.
First Hassle: ImageFinder
I started my first project with Flask + Native Frontend.
My goal was to learn AI’s power to search images based on content, not just text.
Since I was focused on AI rather than app development, I chose a lightweight approach. The result? It was easy to build — but deployment was a nightmare. The AI-related libraries made hosting unaffordable, forcing me to separate the app into a webpage and a desktop version. But that’s a story for another time…
💡Lesson learned: AI libraries can be resource-heavy, so plan hosting carefully!
Better UI: QuickViralNotes
For my second app, I continued exploring AI, this time focusing on content generation. I was fascinated by how my AI agent created insightful notes. I wanted to package it into a user-friendly static website instead of requiring users to interact with code. So in this app:
I reused most basic logic from my first app.
Flask served great for the backend.
Switched to Vue.js for a more reusable and customizable frontend.
I was (welcomingly) criticized on Reddit for the UI in my first app, so I’m determined to improve it. When it comes to frontend frameworks, React is almost always the go-to choice among developers. I’ve worked with React and was impressed by its component-based architecture, vast ecosystem, strong community support, and flexibility for building scalable applications.
However, for my initial projects, I chose Vue instead, for it’s:
Easier learning curve
More intuitive template syntax
Built-in state management (Vuex)
Slightly better performance for smaller apps
Again, since I wanted minimal coding and faster setup, Flask + Vue was the clear choice.
💡Lesson learned: If you prioritize simplicity and quick development, Vue is great. If you need much more advanced scale and flexibility, React is a better choice.
Simplest Deployment: SubstackExplorer
From my first two apps, I learned that:
Backend-heavy setups with lightweight frontends are easy to build but tricky to host.
Setting up affordable hosting (e.g., NameCheap, Oracle Cloud) was tedious and unpredictable.
SSH issues, downtime, and bot attacks made maintenance stressful.
For my third app, I wanted to explore reliable, hassle-free deployment.
This is when Next.js comes to play, because it:
Builds on React
Offers server-side rendering (SSR) and static site generation (SSG)
Has built-in file-based routing
Provides automatic code splitting
Has built-in API routes and image optimization
Is maintained by Vercel, which makes hosting a breeze
I used Next.js for my Substack Explorer, a simple analytics platform that gathers and displays meaningful insights for users.
For the database, I spun up a PostgreSQL instance via Neon — perfect for scaling as needed.
💡Lesson learned: Next.js simplifies deployment and provides a great user experience with minimal hassle.
Final Thoughts
There’s no one-size-fits-all solution in development. The best stack depends on your priorities and constraints.
Here’s what I learned from building these three apps:
Match the Tool to the Task
Simple prototype? Flask + JavaScript works fine
Better UI needed? Consider Vue.js or React.js
Production-ready app? Next.js might be your best bet
Consider Your Priorities
Learning AI or any new technology? Keep the framework simple
Building for users? Focus on UI/UX
Going production? Think about hosting and maintenance
Start Small, Scale Up
Don’t feel pressured to use complex frameworks right away
It’s okay to switch frameworks as your needs grow
Focus on building something that works first
There’s no universal “best” framework — only what works best for your needs. My journey started simple, grew complex, then simplified again as I refined my priorities. Your path might look different, and that’s perfectly fine!
Ready to Build?
If you’re starting your own project, choose a framework that aligns with your goals. Have questions or need feedback? Drop a comment or connect with me, I’d love to hear about your journey! 👇