Back to projects
Web App2026Deployed

reAFresh

Solo - architecture, all seven programs, and the backend

reAFresh is one application that holds seven small ones. Rather than seven tabs of seven different tools, it is a single shell with a nav bar, a split view for running two programs side by side, and one account carrying everything across devices.

It is local-first in the strict sense: Dexie in IndexedDB is the source of truth for every read, so the app is fully usable before it has spoken to a server. Signing in adds Firestore sync on top - explicit rather than continuous, running on sign-in, after local writes, and on demand.

The AI program is a genuine assistant rather than a text box: it holds a conversation, can see the next two months of the calendar, and proposes additions and deletions that only happen after they are confirmed.

Built with

Frontend

React 19TypeScriptViteZustandReact Router

Local data

DexieIndexedDB

Sync & auth

Firebase AuthFirestore

Backend

GoTemporalffmpegSeaweedFS

What went into it

Seven programs, one registry
The nav bar, the dashboard gallery, and the split-view picker all derive from a single program list, so adding one cannot leave a launcher behind.
Local-first, sync second
Dexie answers every read. Firestore reconciles in the background, which means no spinner between opening the app and using it.
Split view
Any two programs can run side by side, with the pairing stored in the query string so a layout is a link.
A calendar the assistant can edit
The AI reads upcoming events and proposes changes behind a confirmation gate - it never silently writes to the calendar.
Go backend for the heavy parts
Audio conversion and the assistant run against a Go service with Temporal and ffmpeg workers, keeping that work off the browser.

Live Demo - Username: Test; Password: Test;

The real build, signed in with the demo credentials. This one is fully usable - reAFresh is local-first, so Dexie in your browser is the source of truth and every program genuinely works. Anything you add stays on your device. Only the Firestore sync and the Go backend behind the audio converter are absent.

Open full size

Screens

Captured from the running build against an empty local database, so the programs show their real empty states rather than seeded demo data.

  • The dashboard - every program is one click from here.
  • Calendar - the same data the AI assistant reads before proposing changes.
  • Checklists, built for repeated procedures rather than one-off todos.
  • QR generator - it checks foreground/background contrast so the code stays scannable.