DEV Community

Weather Clock Dash
Weather Clock Dash

Posted on

Building 11 Firefox Extensions Without a Backend: Local-First Storage for Every Tool

I maintain 11 Firefox extensions. Zero of them have a backend. No server, no database, no authentication service, no analytics pipeline.

This was an intentional choice that turned out to be the right one. Here is why.


The simplest path to shipping is no backend

Adding a backend to a browser extension means:

  • Building and deploying a server
  • Designing and maintaining an API
  • Handling authentication
  • Operating a database
  • Paying for hosting
  • Managing uptime

For a side project extension, this is infrastructure that can take longer to build than the extension itself, and requires ongoing maintenance after.

The alternative: use browser.storage.local. It is a key-value store that:

  • Requires zero infrastructure
  • Has no latency (local reads)
  • Persists across browser restarts
  • Is isolated per extension
  • Requires no authentication

What 11 extensions fit into browser storage

Here is what each of my extensions stores locally:

Extension Stored locally
Daily Planner Task list, settings
Habit Tracker Monthly habit grid
Tab Manager Saved sessions (tab URLs)
Speed Dial Site shortcuts, groups
Quick Calculator Calculator history
NightOwl Schedule settings, exclusion list
News Widget RSS subscriptions
Weather Clock Location, unit preferences
Stock Market Watchlist symbols
Voice Notes Nothing (audio saves to Downloads)
AI Writing Nothing (processes in-memory)

None of this data needs to be on a server. None of it benefits from server-side processing.


The two exceptions: external APIs

Weather Clock and Stock Market make API calls to fetch current data. This is for public data only — weather conditions and market prices. The user's preferences (location, watchlist) stay local.

These API calls do not carry user authentication. There is no account to log in to.


Privacy as a side effect

Building without a backend produces a privacy benefit by default. The company behind the extension has no way to see what you are storing, because there is no server to store it on.

This is different from cloud-first apps that add privacy controls after the fact ("we process your data, but you can opt out of analytics"). With local-first tools, there is no data channel to process.


The limitation: no cross-device sync

All 11 extensions store data on the device where they are installed. Data does not sync to other devices.

For a daily task list or personal habit grid, this is typically fine. For tools where multi-device access is important, this is a real limitation.


Who this is for

If you want productivity tools that:

  • Do not require an account
  • Work without internet access
  • Do not store your data on external servers
  • Are free with no subscription

These are them. All 11 are built on the same local-first principle.

Browse the full series


I built all 11 extensions — NightOwl, Voice Notes, Tab Manager, News Widget, Weather Clock, Stock Market, Daily Planner, Habit Tracker, Quick Calculator, Speed Dial, AI Writing Assistant.

Top comments (0)