Version 2 – Deployment
After rebuilding the backend and frontend with a modern JavaScript stack, the next step was to deploy the project in a way that was both stable and easy to update. For Version 2, I deployed the entire project using Next.js (via Vercel) and connected it directly to GitHub for version control and CI/CD.
Next.js + Vercel Integration
The frontend (and partial backend logic) was developed using Next.js, which naturally integrates with Vercel — its official hosting provider. Deploying a Next.js project with Vercel is almost frictionless: you simply connect your GitHub repository, select the branch to deploy, and Vercel handles the rest.
Every time I pushed a commit to GitHub, Vercel would detect changes and automatically build and deploy the updated version. This made it easy to iterate and test features in production-like environments without manual setup.
Environment Variables & Build Settings
All secrets and API keys (such as Supabase keys or proxy routes) were securely stored in the Vercel project settings under environment variables. This allowed the application to access production-level credentials without hardcoding anything into the repo.
NEXT_PUBLIC_SUPABASE_URL=https://your-supabase-url.supabase.co NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGci... CARRIER_API_KEY=sk_test_12345
These environment values were accessed inside the app like so:
import { createClient } from '@supabase/supabase-js'
const supabase = createClient(
process.env.NEXT_PUBLIC_SUPABASE_URL,
process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY
)
export { supabase }
GitHub Workflow
GitHub acted as both the codebase and the deployment trigger. All updates were committed to a main branch, with automatic deploys configured via GitHub Actions/Vercel connection. This meant that as soon as new code was merged, a new version was live — without needing any extra configuration.
Vercel also allowed setting up preview deployments for different branches. That meant testing new features in isolation before merging them into production.
Custom Domains & HTTPS
I connected a custom domain to the Vercel project, which automatically provided HTTPS support with built-in SSL certificates. This added professionalism and security to the app without additional setup or third-party services.
Domain connections, redirects, and DNS settings were handled directly in the Vercel dashboard.
Summary
Deployment in Version 2 became far more automated, professional, and scalable. GitHub handled the code, Vercel handled the builds, and all configuration was managed securely with minimal effort. It allowed me to focus entirely on features and iteration — instead of server management.