My startup
Firstage
I build a service for keeping a record of everyday life through photos and places. I founded Firstage and handle planning, development, and operations.
166Page layouts to choose from in the photobook editor, across 10 themes
- Period
- 2025.05 ~ Present
- Role
- Founder
- Links
- Key features
- Revisit photos by when and where they were taken, share those records with the people close to you, and make a photobook from the ones you choose.
- Work and results
- Original photo storage separated from preview generation and location processing
- A photobook editor with AI layout suggestions and placement calculated by the editing engine
- 10 photobook themes and 166 page layouts
- Web service in operation, iOS app in internal testing
- Tech stack
- Next.js
- Capacitor
- NestJS
- PostgreSQL
- React
- TypeScript
- Drizzle ORM
- BullMQ
- Konva
- MapLibre GL
- Cloudflare Workers
- Kubernetes
Context
I founded Firstage and handle planning, frontend, backend, infrastructure, and operations. The service lets individuals, couples, and families collect photos and places, revisit everyday life, and share records with the people close to them.
It started as a travel content site for visitors to Korea, where I tested ads and SEO. I later shifted toward recording everyday life through photos and places. The product now connects photo uploads with place browsing, a feed, shared spaces, and a map.
Decisions and implementation
- I designed photo upload to store the original first. A BullMQ worker then creates previews, HEIC conversions, EXIF data, and reverse geocoding, which keeps heavy processing separate from preserving the original.
- Capture time and GPS connect to a timeline, place albums, and map exploration. Photos without location stay in their own group; the product never invents coordinates for them.
- To support photobooks and print as the business output, I built a canvas editing engine. AI returns a structured plan and editing intent, and a deterministic engine owns coordinates, photo placement, bleed, and DPI checks. Ten editorial themes and 166 layouts are in production.
- A Capacitor shell wraps the Next.js web app so web and mobile share screens and features, while native lifecycle and upload recovery are handled separately.
- In September 2026 I moved the frontends to Cloudflare Workers and the backend to a Kubernetes (K3s) cluster I operate, monitored with Prometheus and Grafana.
- I turned development with AI agents (Codex, Claude Code) into rules, skills, and automated checks inside the repository. I approve external submissions, payments, and deployments myself.
Current state
The web service is in operation, and the iOS app is in internal TestFlight testing. Print ordering is deployed through the payment integration, but stays closed until the merchant contract and physical proof checks are done.