Day 2: Local-First Means No Login

architecture local-first privacy

Today we made a decision that might seem radical: we removed all authentication from Accelerate Finance. No login. No signup. No email. No password. Here's why.

The Uncomfortable Truth About Auth

Most applications add authentication without asking why. It's the default. You build an app, you add auth. But when we asked ourselves why we needed it, the answers weren't compelling:

  • "To identify users" β€” But why do we need to identify them? Their data is local.
  • "To sync data" β€” We're building local-first. Sync comes later, and it doesn't require identity.
  • "To secure their data" β€” Their data is on their device. It's already secured by their OS.
  • "Everyone expects it" β€” Expectation isn't justification.

What We Removed

This wasn't a small change. We deleted:

- /auth/* routes

Login, register, magic link, verification flows

- /api/auth/* endpoints

Token refresh, logout, session management

- JWT validation in hooks

Protected routes, user locals, cookie handling

- "Sign in" UI everywhere

Navigation, CTAs, layout components

What We Added

In place of authentication, we built something better:

+ Instant access

Click "Open App" and you're in. No friction. No forms.

+ Local workspaces

Create a workspace, name it, start using it. Data lives in IndexedDB.

+ Demo seeding

First-time users get a demo workspace with sample data to explore.

+ Privacy by default

No email collected. No identity stored. No tracking.

The Philosophy

This decision flows from a deeper principle: we don't need to know who you are to help you manage your money.

Traditional SaaS has trained us to think identity is required. It's not. Identity is a feature you add when you need itβ€”for collaboration, for cloud sync, for multi-device access. We'll add those features eventually, but as opt-in capabilities, not requirements.

The Local-First Promise

  • Your data lives on your device
  • No account required to use the app
  • Export everything, anytime
  • Works offline by default

What's Next

Tomorrow we'll dive into the data layer we built to replace all that auth complexity. Spoiler: it's Dexie.js, IndexedDB, and a clean repository pattern. Primitives before features.

Removing auth felt scary at first. Now it feels obvious. Sometimes the best feature is the one you don't build.

β€” The Accelerate Finance Team