Afterlight
A concert diary that keeps your nights to yourself
Ownership
Solo Designer & Developer
Team
Solo / small team
Key Result
0 Accounts required

Overview
Afterlight is a concert diary — Letterboxd for live music, but quieter. You log the gig, keep the photos, write down what you remember before it fades. Everything stays on your phone: no account, no feed, no analytics.
The Challenge
Concert memories live scattered across camera rolls, ticket stubs, and half-remembered setlists. The obvious product to build here is social — reviews, followers, taste as performance. I wanted the opposite: a private record. The hard part was making something feel rich and alive without any of the machinery apps normally use to feel alive — no network effects, no notifications, nothing pulling you back. The app has to earn its place purely through the quality of remembering.
Constraints
- •Local-first for real: no accounts, no servers, no analytics. If the value isn't on the device, it doesn't exist.
- •A diary is for years, not sessions. The design has to age well and the data has to survive.
- •Solo build — every feature competes with finishing.
Decision Log
Problem
Social features are the default growth engine for any logging app.
Decision
Cut them entirely. No accounts, no sharing graph, no server.
Tradeoff
No virality, and no effortless cloud-backup story out of the box.
Impact
The promise fits in one sentence, and privacy isn't a settings page — it's the architecture.
Problem
Music apps default to streaming-service aesthetics — gradients, glass, glow.
Decision
Authored a design system from gig poster modernism instead: Factory Records palette, Swiss type discipline, grain, true black.
Tradeoff
A strong aesthetic position will alienate some users.
Impact
The app feels like the objects it's about — posters, tickets, the printed ephemera of going out.
Problem
Spring animation invites spectacle.
Decision
Built a small motion grammar — a handful of springs used consistently, nothing animating from scale(0), nothing over 300ms.
Tradeoff
Restraint reads as less impressive in a screen recording.
Impact
Motion clarifies state instead of performing for the user.
Approach
1. The loop is the product
Log a gig, attach the photos, write a line about the night. The whole app is in service of a loop small enough to finish and good enough to repeat. Everything that didn't serve it got cut.
2. Gig poster modernism
The visual language borrows from the printed history of live music — FAC blue, true black, grain textures, type set with Swiss discipline. A strong reference makes a thousand small decisions for you.
3. Local-first as a feature
On-device storage isn't a compromise; it's the pitch. Your concert history is yours in the most literal sense available to software: it never leaves the hardware in your pocket.
Outcome
A finished 1.0 shaped around a small, offline-first loop — log the gig, keep the photos, remember the night — wrapped in a design system I'd defend line by line.
0
Accounts required
Never
Data leaves device
Authored from scratch
Design system
Learnings
- →Cutting the network from a product removes a third of the code and half the anxiety.
- →A strong visual reference is a decision-making machine — Factory Records answered questions I would otherwise have litigated alone for weeks.
- →Local-first is a constraint that designs for you: with no server, every feature has to justify itself on the device or it doesn't ship.
Anti-Patterns Avoided
- ×Streaks, badges, or anything that turns remembering into homework.
- ×Cloud accounts as the price of entry.
- ×Streaming-app aesthetics — the design borrows from posters, not players.
Next Iterations
- →Setlist capture and richer gig metadata.
- →An export format that treats your history as yours — plain, readable files rather than a proprietary lockbox.
Get In Touch
If you want to talk about similar work, email me.
Contact is the simplest place to start.
Next project
Ch'lita