Back to projects
Soon
2026 · Fullstack Developer
In developmentOne app for a couple, instead of five. Photos, location, moods, plans and countdowns in a single private space, self-hosted on a machine at home.
Screenshots coming soon · in development
Overview
Soon is a private app for two people. It started because we were using a different app for every part of being together, and none of them talked to each other. This one does all of it in one place: the photos you send each other, where you both are, how you are feeling, what you have planned, and the days you are counting down to.
Problem
We had one app for sending each other photos, another for sharing location, a notes app for the places we kept meaning to go, and a calendar for the dates that mattered. Every one of them wanted an account, a subscription, and an audience we did not have. None of them knew anything about the others, so a photo taken somewhere never turned into a memory of that place. I wanted the whole thing in one app, built for exactly two people, and living on hardware we own rather than in someone else's account.
What I built
- Photos and short clips you send straight to each other, with a mode where it can only be opened once
- A shared gallery of everything either of us has ever sent, by month
- A map of where you both are, and every photo pinned on the spot it was taken
- Both of us, now: either of you starts a five-minute window and you both take a photo, or the moment does not exist
- Moods, so you can tell how the other one is doing without having to ask
- A shared calendar, a list of things we keep meaning to do, and countdowns to the days that matter
- Notifications on your phone when something arrives, and an inbox so nothing is missed
- Nothing gets deleted unless you both agree to it
Stack
Next.js 16 (App Router) and React 19 in TypeScript, Tailwind CSS v4, PostgreSQL 18, and Vitest. Runs as a Docker Compose stack (app, database, cron, tunnel) on a machine at home, reachable through a Cloudflare Tunnel, with photos stored on a local volume rather than in object storage.
Outcome
It replaced four apps with one, and moved off managed hosting onto hardware I own without changing how it feels to use. Two people open it every day, which is the only number that matters here.