Skip to content

A minimal, production‑ready starter for building local‑first web apps using only HTML, CSS, and Vanilla JavaScript.

License

Notifications You must be signed in to change notification settings

pearcoderman/local-first-web-starter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Local‑First Web App Starter

A minimal, production‑ready starter for building local‑first web apps using only HTML, CSS, and Vanilla JavaScript.

No backend. No accounts. No tracking. Your data stays in the browser.

CleanShot 2025-12-13 at 21 51 15@2x


Why Local‑First?

Most small tools don’t need servers, databases, or user accounts. Local‑first apps are:

  • ⚡ Instant (no network latency)
  • 🔒 Privacy‑friendly
  • 💸 Cheap to run (static hosting)
  • 📦 Easy to maintain
  • 📴 Fully offline

This starter gives you a clean foundation to ship those kinds of tools fast.


Features

  • Offline‑first (works without internet)
  • localStorage abstraction (easy to swap for IndexedDB later)
  • Single‑page architecture
  • Installable PWA
  • Zero dependencies
  • Clean, modern UI baseline
  • Easy to extend

Project Structure

local-first-web-app-starter/
├── index.html        # App shell
├── style.css         # Minimal modern styling
├── app.js            # App logic
├── storage.js        # Local-first data layer
├── manifest.json     # PWA config
├── service-worker.js # Offline caching
└── README.md

Quick Start

Just open index.html in a browser.

For full PWA support (service worker):

npx serve

(or any local static server)


Example Use Cases

This starter is ideal for:

  • Habit trackers
  • Journals
  • Note apps
  • Writing tools
  • Generators
  • Dashboards
  • Personal utilities

Core Files

index.html

storage.js — Local‑First Data Layer

app.js

service-worker.js


Design Philosophy

  • Simple over clever
  • Readable over abstract
  • Local by default
  • Progressively enhanced

This is meant to be copied, forked, and adapted—not treated as a framework.


When to Upgrade

If your app grows, you can:

  • Replace localStorage with IndexedDB
  • Add encryption at rest
  • Sync optionally (user‑controlled)
  • Add export/import

The structure supports all of this without refactoring.


License

MIT — use it however you like.


Author

Built for people who like fast, quiet software.

More tools → https://www.yuzool.com

About

A minimal, production‑ready starter for building local‑first web apps using only HTML, CSS, and Vanilla JavaScript.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published