Overview
Furever Home is a pet caring platform that connects pet owners with reliable pet care services. Built with a modern tech stack including Next.js, tRPC, and deployed across multiple environments for reliability and scalability.
Tech Stack
- Frontend: Next.js, Tailwind CSS, Shadcn UI
- Backend: tRPC for type-safe API calls
- Database: Neon DB (serverless Postgres)
- Storage: AWS S3 for media files
- Infrastructure: Docker, GitHub Actions CI/CD
Architecture
The project follows a monorepo structure with separate packages for the customer-facing frontend and backend services. This separation allows for independent scaling and deployment of each component.
furever-home/
āāā apps/
ā āāā backend/customer/ # tRPC API server
ā āāā frontend/customer/ # Next.js app
āāā packages/ # Shared utilities
āāā docker-compose.yaml # Local development
Local Development
For local development, Docker Compose spins up all required services:
# Start all services (Postgres, Redis, Mailhog, MinIO)
docker-compose up -d
# Run backend
pnpm dev --filter=customer_backend
# Run frontend
pnpm dev --filter=customer_front

Deployment Strategy
I implemented a multi-environment deployment strategy with automated CI/CD pipelines:
Staging Environment (Render)
Pushing to the staging branch triggers an automated deployment:
- GitHub Action builds the Docker image
- Image is pushed to GitHub Container Registry (GHCR)
- Render pulls and deploys the new image
This provides a quick and cost-effective way to test changes before production.
Production Environment (AWS ECS)
Production runs on AWS ECS for better scalability and reliability:
- Push to
mainbranch triggers the production workflow - Docker image is built and pushed to GHCR
- AWS ECS pulls the latest image and performs a rolling deployment
- Frontend is deployed to Vercel for optimal edge performance
# Deployment flow
git checkout main
git merge staging
git push origin main
CI/CD Pipeline
The project uses GitHub Actions for continuous integration and deployment:
- prod.yml - Production backend deployment to AWS ECS
- stg.yml - Staging backend deployment to Render
- vercel-customer.yml - Frontend deployment to Vercel
Conclusion
Building Furever Home was an exercise in creating a production-ready application with proper DevOps practices. The multi-environment setup ensures that changes are thoroughly tested in staging before reaching production, while the automated CI/CD pipelines make deployments reliable and repeatable.