Skip to content
Hooney
한국어

Products · Live

Firstage

At Firstage, the company I founded, I plan, build, and run on my own a family of services led by Journey, which turns photos and places into a record of everyday life, along with the modules they share.

166Page layouts to choose from in the photobook editor, across 10 themes

Period
2025.05 ~ Present
Role
Founder
The first screen of the Firstage homepage, with the headline 'Your days, collected. Your stories, shared.' among scattered photos.

Core value

When you upload photos, the time and place they were taken connect, so scattered days are easy to find again and share with the people close to you.

Outcomes

  • Original photos are saved first, and heavier work such as previews and reading where they were taken runs in the background
  • A photobook editor where AI suggests the layout and fixed rules place everything the same way every time
  • 10 photobook themes and 166 page layouts available
  • Live on the web, with the iOS app in internal testing before release

Tech stack

  • Next.js
  • React
  • TypeScript
  • Capacitor
  • NestJS
  • PostgreSQL
  • Drizzle ORM
  • BullMQ
  • Konva
  • MapLibre GL
  • Cloudflare Workers
  • Kubernetes

Context

Firstage gathers the photos people take and the places they visit, so individuals, couples, and families can return to their everyday life. It began as a travel content site for visitors to Korea, where I experimented with ads and SEO. I then moved the product’s center to a flow from photos to places, a feed, shared spaces, and a map. I handle planning, frontend, backend, infrastructure, and operations alone.

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.

The Firstage photos screen. A phone groups photos by the day they were taken, in September 2026 and September 2025.
The Firstage places screen. Under a globe map, photos taken in Jongno, Seoul are grouped by place.
The Firstage shared space screen. The space 'Seoul at an Easy Pace' shows photos from several members with their comment counts.
The Firstage diary screen. Under the photos sits a short note, 'A slow day in Seoul', with a comment.
The Firstage magazine screen. The story 'A morning walk through Gyeongbokgung' reads as photos and text on a phone and on the web.
The Firstage photobook screen. Selected photos float beside a photobook whose cover shows Gyeongbokgung.