Case study
Kakushin: running shared infrastructure for 20 production apps
How I ran the shared infrastructure behind 20 of Kakushin's internal and client apps: a Hetzner database and hosting server, plus Vercel and Render, as Full-Stack Engineer & DevOps Lead.
- Company
- Kakushin, an AI and MVP studio
- My role
- Full-Stack Engineer & DevOps Lead
- Timeline
- Jul 2023 – Sep 2026
- Scale
- 20 of 41 tracked projects on the shared server
- Hetzner
- Linux
- Nginx
- PM2
- PostgreSQL 16
- MongoDB 7
- Redis 8
- MySQL
- Vercel
- Render
- Firebase
- Postmark
- Stripe
- GitHub Actions
Context
Kakushin builds its own products and client projects in parallel. Its project registry tracks 41 of them, spanning Next.js and React web apps, Node.js APIs, React Native and native mobile apps, and AI products, each at its own stage of QA, live testing or production.
As Full-Stack Engineer & DevOps Lead I built many of these apps and ran the infrastructure they shared.
The challenge
A small team was shipping many apps with different stacks and needs at the same time. Giving each one its own servers and databases would have multiplied cost and maintenance; putting everything on one platform would have fit some apps badly.
Architecture
Each app was hosted where its workload fit best, with one shared data tier and one set of production services:
- A dedicated Linux server on Hetzner as the shared tier: PostgreSQL 16, MongoDB 7 and Redis 8, plus apps served through an Nginx reverse proxy and PM2.
- Front ends on Vercel (13 projects in the registry) and Node.js services on Render (6 projects), most of them using the shared databases.
- Firebase where an app was built around it (Firestore, Cloud Functions), and Kakushin's internal app stores for mobile QA builds.
- Shared production services: Postmark for transactional email and Stripe for payments.
What I ran
- Deployments, monitoring and server maintenance for the shared server and the apps on it.
- Deployments across Hetzner, Vercel and Render, with Stripe payments and Postmark email in production.
- A GitHub Actions release pipeline for SprintForge's Electron desktop app: pushing a version tag builds macOS and Windows installers and publishes them as a GitHub Release.
- The infrastructure behind products I also built, including BookMi, MT4Life, DementiaBuddy, Founders12, SprintForge, AINTE, Aicademiae and Park2Go.
Trade-offs
One shared server kept costs and maintenance low for a small studio and gave every app the same database setup, but it is also a single point of failure. That trade-off made sense at this stage; as apps grow into real traffic, the next step is to give the busiest ones dedicated databases and add off-server backups and alerting for the shared tier.
Results
- 20 of the 41 projects in Kakushin's registry ran on the shared Hetzner server, for their database, their hosting, or both; 19 of them use its MongoDB.
- Products running on this setup include MT4Life, DementiaBuddy, Founders12, AINTE and Aicademiae.
Work with me
Open to remote full-time roles and contract work, and available for freelance projects.