Skip to main content

Command Palette

Search for a command to run...

My Journey Through Backend Development Frameworks

Updated
3 min read
My Journey Through Backend Development Frameworks

Over the years, as a developer building both web and mobile apps, I’ve often needed to create backends. This requirement has led me to explore a variety of frameworks and serverless services. If you’re already a web developer familiar with JavaScript, Node.js is undoubtedly a natural choice. However, my experience spans multiple frameworks and languages, and I’d like to share what I’ve learned along the way.

Starting with Python and Django

Having worked extensively with Python in AI/ML projects, I found it to be an incredibly intuitive and easy-to-use language. Naturally, my first backend framework was Django. Django comes with many benefits:

  • Built-in authentication system for user management.

  • Admin panel to quickly manage your database and users.

  • ORM (Object-Relational Mapping) that simplifies database interactions.

  • Robust community and documentation for troubleshooting and learning.

However, Django is not the most minimalistic framework. Its complexity can sometimes feel overwhelming, especially for simpler projects. While it’s a fantastic choice for large, data-driven applications, I eventually moved on to explore lighter and more flexible options.

Node.js with Express.js: Straightforward and Lightweight

Most of my backend work in recent years has been with Node.js, particularly using the Express.js framework. Express.js stands out for:

  • Minimalistic design, allowing developers to build backends without unnecessary overhead.

  • Middleware flexibility, letting you customize request handling easily.

  • Vast ecosystem, with numerous libraries and tools available.

Express.js provides a straightforward experience for building backends, making it ideal for smaller projects or when rapid development is a priority.

Scaling Up with NestJS

For larger projects, I’ve found NestJS to be an excellent choice. NestJS offers:

  • Modular architecture, making it easier to structure and maintain large codebases.

  • Built-in support for TypeScript, ensuring type safety and better development experience.

  • Dependency injection system, which simplifies managing and testing dependencies.

  • Powerful CLI, speeding up the development process.

NestJS bridges the gap between simplicity and scalability, providing the structure needed for complex applications while maintaining a developer-friendly approach.

Revisiting Python with FastAPI

For a specific project, I decided to give Python another chance and tried FastAPI. FastAPI has quickly become one of my favorite tools for building backends due to:

  • Automatic OpenAPI/Swagger documentation generation.

  • Asynchronous capabilities, making it ideal for modern web applications.

  • Type hinting support, which leads to better code clarity and developer productivity.

  • Ease of use and performance, thanks to its minimalistic yet powerful design.

FastAPI combines the simplicity of Python with features that rival more heavyweight frameworks, making it a joy to work with.

Going Full Stack with Next.js

Recently, I ventured into using Next.js as a full-stack framework. While I had previously used it solely as a frontend tool, leveraging its backend capabilities was a game-changer. Next.js offers:

  • API routes, allowing you to build server-side logic effortlessly.

  • Built-in routing system, which is seamless and requires no additional configuration.

  • Static site generation (SSG) and server-side rendering (SSR), enhancing performance and SEO.

  • Integration with TypeScript, ensuring a smooth development experience.

Using Next.js as a full-stack solution felt intuitive and enjoyable, especially for quick web app creation.

Final Thoughts

With the abundance of learning resources, documentation, and tools available today — not to mention the help from large language models (LLMs) — the choice of framework is less critical than the ideas you bring to life. Use what you’re comfortable with and focus on building what you envision.

For me:

  • Quick web app creation: Next.js with TypeScript as a full-stack framework.

  • Backend-focused or larger projects: NestJS with TypeScript.

At the end of the day, these frameworks are just tools. The key is to choose the one that aligns with your needs and preferences, and then start building!