Startpage is a local-first browser start page designed to replace the traditional new tab with a personal dashboard you fully control.
Configuration and personal content stay in the browser without accounts or tracking. Network widgets only contact their documented data providers; transport and RSS use the Startpage proxy to handle browser API restrictions.
Version: v1.18.0 · Live: https://julianverse.de/startpage/
- Quick search: Multiple engines, bang shortcuts (
!g,!ddg,!bing,!sx,!yt,!wiki,!maps), custom shortcuts, and autocomplete (bangs, shortcuts, recent searches, global wordlist + preset wordlist). - Background engine: Presets, uploads, collections, rotation (time/theme/interval), quick actions (random, undo, lock), automatic accent color extraction, and IndexedDB-backed image storage.
- Favorite tiles: Drag and drop, quick access keys
1-9, and reset to defaults. - To-do and notes: Persistent to-do list and notes field.
- Weather: Multiple cities with quick city chips (switch/remove), current weather + min/max, and a rolling 24-hour forecast in 3-hour steps via Open-Meteo.
- Transport: Station search, departures, delay handling, retry states, and a configurable default station via the Startpage proxy for transport.rest.
- News: RSS reader with default and custom feeds via the Startpage RSS proxy; the list adapts to the selected widget height (4/8/16 entries).
- Resilient data widgets: Weather, transport, and news keep timestamped browser caches for offline/error fallback. Hidden widgets defer their network requests until enabled.
- Recent actions and system status: History chips plus browser info (RAM, CPU cores, network type).
- Setup assistant: Modern onboarding with direct preset tiles, theme/style + background, search engine, widgets + transport default, and one weather city (skippable and restartable).
- Visual widget editor: Toggle an on-dashboard editing mode, drag and drop widgets, and change card width or height directly. Editing controls disappear when the mode is closed.
- Layout and styling: Dark/Light/Auto theme, card styles (glass, solid, transparent, soft minimal), widget colors, dedicated header/search colors, and a "Tint widgets" action.
- Command palette:
Ctrl/Cmd+Kfor quick actions across settings, themes, widgets, data export/import, presets, and profiles. - Profiles: Named local snapshots of the full Startpage setup with create, rename, update, delete, apply, header quick switcher, and command palette support.
- Data: Scoped JSON export/import with selection dialogs, import replace/merge modes, and data presets from
assets/presets/(starter, coding, gaming, minimal, productivity, reading, art, privacy, student, finance). Transfers are restricted to Startpage-owned storage keys, and local user presets inassets/user-presets/are auto-detected. - Accessibility and safety: Labelled modal dialogs, focus trapping/restoration, keyboard ordering, safe external URL handling, and text-only rendering for untrusted feed content.
- Optional local Agent: An opt-in Ollama chat is available but disabled by default and is not required for any dashboard feature.
index.html- Main markup and ordered script includes.scripts/- Browser scripts split by feature area.style.css- Main styles.assets/- Optional assets (wordlists, images, presets, i18n files).tests/- Playwright browser smoke tests.package.json/playwright.config.js- Test tooling; the application itself still has no build step.LICENSE- MIT license for the project code and documentation.THIRD_PARTY_NOTICES.md- Licenses and notices for bundled third-party assets.
No build step is required. Start a local static server, for example:
python -m http.server 4173or
npx serve .Then open: http://localhost:4173.
- Background and appearance: Manage presets/uploads/collections/rotation in Settings; accent color is derived from the active background.
- Search and feeds: Enable/disable engines, configure custom
!shortcutswith{q}, manage feed sources. - Widgets and layout: Visibility, weather cities (one city per line), default transport station, and reset controls. Start the visual editor from the header or Widget settings to arrange and resize cards directly.
- Appearance (same settings area): Card style, widget colors, dedicated clock/search colors.
- Data: Export/import selected Startpage-owned data scopes as JSON, choose merge or replace behavior on import, or load ready-made data presets (
assets/data-presets.json+assets/presets/*). UnrelatedlocalStorageentries from the same origin are excluded. - Profiles: Create named setup snapshots, update them from the current state, switch from the header, and manage them in the Data tab.
- Setup assistant: Opens on first run, can be skipped, and can be restarted in the Data tab.
- Command palette:
Ctrl/Cmd+Kfor fast actions, settings navigation, data actions, presets, and profile switching.
Follow existing conventions: 2-space indentation, camelCase in JavaScript, hyphen-case in CSS. Keep the script include order in index.html stable unless dependencies are moved deliberately.
- Storage: localStorage for settings, personal widget content, and timestamped data-widget caches; IndexedDB for uploaded and cached background images.
- APIs and services: Open-Meteo (weather/geocoding), Startpage proxy (transport.rest + RSS), and Google Favicon Service for tile icons. UI fonts are bundled locally.
Install the test dependency and run the browser smoke suite:
npm install
npx playwright install chromium
npm testThe nine current tests cover local persistence, scoped data export, deferred requests for hidden widgets, safe RSS rendering, height-adaptive news, transport delay formatting, saved layouts, the visual widget editor, and modal accessibility.
Manual smoke tests:
- Verify search/bangs/shortcuts + autocomplete.
- Add multiple weather cities, switch active city, remove one city (
xand middle-click), pressEnterin weather input, then reload. - Create todos/notes and reload.
- Switch theme/card style, verify background rotation + accent updates.
- Switch feeds and test custom feed loading.
- Create a profile, change visible settings, apply the profile again, and verify the previous setup is restored after confirmation.
- Export/import selected data scopes and test both merge and replace behavior with a temporary backup.
- Clear localStorage and the Startpage IndexedDB database when re-testing migration-sensitive storage flows.
The original project code and documentation are available under the MIT License (see LICENSE). Bundled third-party assets remain under their respective licenses; see THIRD_PARTY_NOTICES.md.
