Deploy Your Project Three Ways
You built something? Always deploy it. Seeing your project live is the best feeling ever. And it's a fantastic exercise (and, with the free tiers that platforms provide, it should be pretty affordable).
I recommend you try three deployment scenarios. They'll teach you different things.
The easiest one is fully managed deployment. You might already know the platforms: Vercel, Netlify, Render, Fly. The process is designed to be easy: you create a TOML/YAML file with deployment config, you connect a repo to the platform (using CLI or web UI)... and the magic happens! If you need a database, you just add it to the config file, and the platform does the rest.
With this option, you learn the "happy path deployment," and also touch the concept of config-as-code (preparing yourself for things like Terraform).
Next step -- do cloud deployment yourself. Choose a major cloud platform -- can be AWS, Google Cloud, or Azure. Consult with an LLM on what you need, and go ahead with the cloud-first approach. Need a backend? That's likely a separate EC2 instance. DB? Separate, managed. Don't forget to set up networking and security groups. Do not go way too far (an API gateway or sharding might be overkill at this point!), but do make sure you have an actual working system in place.
Here, the main lesson for you is seeing the deployment as the actual system architecture. What are the components? Who talks to whom? You will not just put this on a whiteboard -- you will make it work.
Finally -- try a single-server deployment. Cloud is great, but, in many cases, a bare-metal server is more cost-efficient. You don't need the actual bare metal -- any VPS will do (a DigitalOcean droplet is a good choice). Now, make all the components work on one machine. Let your LLM guide you as you set things up: reverse proxy, SSL certificates, firewall...
Here, you touch the ops layer that you would completely miss otherwise -- you control the actual system that runs your app.
When you deploy your project, you learn what happens when your beautiful code touches the big, messy, real world of servers and systems -- that's the best learning, don't skip it! And did I mention that seeing your project live is just the best feeling?
References
Managed platforms (the "happy path"):
- Vercel -- frontend-first managed deployment, tight Git integration.
- Netlify -- managed hosting for sites and serverless functions.
- Render -- managed apps, databases, and cron jobs from a single config.
- Fly -- deploy app containers close to users;
fly.tomlis the config file. - Terraform -- where config-as-code leads next: infrastructure defined declaratively.
- Infrastructure as code -- the underlying concept the config file is teaching you.
Major clouds (deployment as architecture):
- AWS -- Amazon Web Services.
- Google Cloud -- Google's cloud platform.
- Azure -- Microsoft's cloud platform.
- Amazon EC2 -- resizable compute instances; the "separate backend" box.
Single server (the ops layer):
- DigitalOcean Droplets -- simple, low-cost VPS to run everything on one machine.
- Reverse proxy -- what sits in front of your app and routes requests.
- Let's Encrypt -- free, automated SSL/TLS certificates.