Back to projects

Afterlight

A concert diary that keeps your nights to yourself

2025 — Present
Solo Designer & Developer
Live site
React NativeExpoTypeScriptAsyncStorage

Ownership

Solo Designer & Developer

Team

Solo / small team

Key Result

0 Accounts required

Afterlight

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