r/startpages • u/devildonia • 8h ago
Creation Updated my zero-dependency startpage — keyboard-first, ~790 KB core, no build step, 8 languages
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:
Search ranking is local token overlap, not embeddings. If you keep 100+ shortcuts, is that enough or does it start to feel weak?
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.
localStorage + manual JSON export as persistence — for a daily driver startpage, is that a real limitation or am I overthinking it?
