ELIAS

As a web developer, one of the biggest challenges we face is finding the optimal way to deploy our applications. Throughout my career, I have transitioned from using free services to managing my own infrastructure. I want to share this evolution, which reflects not only my technical growth but also the common challenges we face in this field.

The Beginnings: Leveraging Free Services

My first steps in deploying applications began with Django and PostgreSQL. Like many beginner developers, I found myself constrained by a tight budget, which led me to explore free options. Render.com became my first platform of choice, allowing me to maintain an application and a database simultaneously at no cost.

The Era of React and the Discovery of Vercel

The natural evolution led me to React, and with it, I discovered Next.js, recommended in the official documentation for production environments. This path led me to Vercel, a platform that greatly simplified the deployment process for React applications. The ease of configuration and the performance it offered were eye-opening.

The Leap to Full Stack

The real challenge came when I needed to deploy my first Full Stack application. I implemented a hybrid strategy: I used Render.com for the PostgreSQL database and the backend with Django Rest Framework, incorporating Whitenoise and Gunicorn for handling static files and the server, respectively. Authentication was managed with JSON Web Tokens, while the frontend, developed in React, found its home on Vercel.

The Need to Grow

Over time, the limitations of free services became evident. I needed to deploy multiple Full Stack applications, each with its own database, and experiment with CMS like Strapi and Sanity. My personal portfolio, initially developed with Next.js and Sanity and hosted on Vercel, made me realize that I needed more control over my infrastructure.

The Leap to VPS: A New World of Possibilities

The decision to acquire my own domain marked a turning point that led me to explore Docker and Virtual Private Servers (VPS). I chose Hostinger as a provider and immersed myself in a transformative learning journey. Setting up Ubuntu, CloudPanel, and mastering NGINX and Reverse Proxies became fundamental skills.

Mastering Docker and Container Management

The incorporation of Dockge revolutionized the way I managed containers, providing me with an intuitive interface to handle docker-compose files. Learning about Docker volumes and networks, along with implementing pgAdmin for database management, completed my development stack.

The Current State: A Robust and Flexible Stack

Today, my infrastructure is based on a proven and reliable tech stack: Next.js, TypeScript, tRPC, Drizzle, PostgreSQL, and Auth.js. This combination allows me to develop and deploy applications on my VPS with confidence and efficiency.

Looking to the Future

This journey is far from over. In upcoming articles, I will delve into specific technical aspects such as:

  • Handling migrations and schema updates with Drizzle
  • Managing databases through pgAdmin
  • The importance of a VPS for applications requiring websockets
  • The limitations of platforms like Vercel for certain use cases

Web development is a constantly evolving field, and each step in this journey has contributed to my growth as a developer. The transition from free services to managing my own infrastructure has not only provided me with greater control and flexibility but also a deeper understanding of the technologies we use daily.