A browser extension for Chrome and Firefox that replaces your new tab page with a self-sovereign personal dashboard focused on crypto, countdowns and intentional living.
No tracking. No analytics. No accounts. Your data stays in your browser.
- Large clock with time-based greeting (GM/GN)
- Personal mantra displayed front and centre
- Bitcoin block height and halving countdown via mempool.space
- Crypto price tickers via CoinGecko (default: BTC, ETH — fully customisable)
- Custom API data feeds — pull any numeric value from any JSON API
- Weather via OpenWeatherMap
- World clocks across multiple timezones
- Countdown timers (e.g. Memento Mori)
- Daily quote rotation from a curated collection
- Daily background from NASA Astronomy Picture of the Day or your own image collection
- Settings modal with tabbed UI for easy configuration
- Clone or download this repository
- Open Chrome and navigate to
chrome://extensions - Enable Developer mode (toggle in the top right)
- Click Load unpacked
- Select the
Self Sovereign Spacefolder - Open a new tab — your dashboard is ready
To update after pulling changes, go back to chrome://extensions and click the refresh icon on the extension card.
- Clone or download this repository
- Open Firefox and navigate to
about:debugging#/runtime/this-firefox - Click Load Temporary Add-on
- Select the
manifest.jsonfile inside theSelf Sovereign Spacefolder - Open a new tab — your dashboard is ready
Note: Temporary add-ons are removed when Firefox closes. For a permanent install, the extension needs to be signed via addons.mozilla.org.
Click the gear icon in the bottom-right corner to open the settings modal. Settings are organised into five tabs:
| Setting | Description |
|---|---|
| Name | Your name, used in the greeting (e.g. "GM Daniel") |
| Mantra | A personal mantra displayed below the clock |
| Weather City | City name for weather data (e.g. Queenstown) |
| Weather Country | Country code for weather data (e.g. NZ) |
| Setting | Description |
|---|---|
| Background Images | Add image URLs for a daily-rotating background collection |
| NASA APOD | Toggle NASA Astronomy Picture of the Day as your background (overrides custom images when enabled) |
| Setting | Description |
|---|---|
| World Clocks | Add clocks for any timezone. Use IANA timezone names (e.g. Europe/London, Asia/Tokyo) |
| Countdown Timers | Add countdown timers to any future date. A Memento Mori countdown (50 years out) is created on first run |
All items can be reordered with the arrow buttons or removed with the x button.
| Setting | Description |
|---|---|
| Price Tickers | Add any cryptocurrency tracked by CoinGecko. Provide a display label (e.g. SOL), the CoinGecko ID (e.g. solana), and decimal places for rounding |
Find CoinGecko IDs at coingecko.com — the ID is in the coin's URL (e.g. https://www.coingecko.com/en/coins/bitcoin → bitcoin).
| Setting | Description |
|---|---|
| OpenWeatherMap API Key | Required for weather data. Get a free key |
| NASA APOD API Key | For higher rate limits on background images. Get a free key. Works without one using the demo key |
| Custom Data Feeds | Pull any numeric value from a JSON API endpoint. Configure the URL, a display label, the JSON path using dot notation (e.g. data.amount), and decimal places |
Any public JSON API that returns a numeric value will work. Configure the URL, a label for the top bar, and the dot-notation path to the value in the response.
For example, given an API that returns:
{"result": {"price": 42.5, "volume": 1000}}Set the JSON path to result.price to extract 42.5. Use the decimal place selector to control rounding — 0dp would display 43, 1dp would display 42.5, and so on up to 8dp.
| Data | Source | Refresh |
|---|---|---|
| Crypto prices | CoinGecko API | 5 min |
| Block height & halving | mempool.space | 1 min |
| Weather | OpenWeatherMap | 30 min |
| Background image | NASA APOD | Daily |
| Custom feeds | User-configured URLs | 5 min |
All settings are saved to the browser's extension storage API (chrome.storage.sync on Chrome, browser.storage.sync on Firefox), which syncs across browser instances if you're signed in. Falls back to localStorage when running outside of a supported browser.
├── manifest.json Extension manifest (v3, Chrome + Firefox)
├── defaults.js Fallback defaults for optional files
├── fonts/ Bundled Inter font (SIL Open Font License)
├── newtab.html Dashboard HTML
├── app.js Application logic
├── styles.css Styles
├── quotes.js Curated quote collection
├── backgrounds.js Local background image references (gitignored)
├── images/ Personal background images (gitignored)
└── icons/ Extension icons
Vanilla JavaScript, HTML, and CSS. No frameworks, no build step, no dependencies.
MIT