r/startpages 18h ago

Creation Updated my zero-dependency startpage — keyboard-first, ~790 KB core, no build step, 8 languages

Enable HLS to view with audio, or disable this notification

0 Upvotes

Hey all,

Personal project, back after a full rewrite of the layout system. The reason I built it in the first place: I wanted a new tab that behaves like a tool. Start from the keyboard, hit a shortcut in two keys, done. And I wanted the whole thing inspectable — no framework, no build step, no lock-in. Plain HTML/CSS/JS, 39 ES modules, ~790 KB of core (~1.6 MB with icons and fonts). Runs as a static site, a PWA, or a Chrome MV3 extension that overrides the new tab.

What changed in this build (1.0.0-rc-1):

- Edit mode: drag, resize and reorder the category boxes; the grid persists per profile.

- 8 locales (es/en/de/fr/it/pt/nl/ja) with a parity test so no key can go missing.

- AI drawer: works with a local heuristic (no keys), or Ollama / LM Studio / OpenAI / Anthropic if you want. Keys live for the tab session only, nothing else.

- Everything (shortcuts, layout, notes, theme) is in localStorage. JSON export/import, and optionally AES-256-GCM encrypted sync to your own Gist.

- 169 tests that run in the browser with zero dependencies. Open tests/index.html.

What it does not do: no telemetry, no analytics, no remote code, no third-party scripts. The only network calls are the ones you start: weather, RSS feeds, AI, backup.

Live: https://devildonia.github.io/hades_shortcuts/ Source: https://github.com/Devildonia/hades_shortcuts

Three things I'd genuinely like opinions on:

  1. Search ranking is local token overlap, not embeddings. If you keep 100+ shortcuts, is that enough or does it start to feel weak?

  2. The iCal parser is hand-rolled (RFC 5545 subset). If it breaks on an Outlook or iCloud edge case, a sample .ics would be worth a lot.

  3. localStorage + manual JSON export as persistence — for a daily driver startpage, is that a real limitation or am I overthinking it?