Skip to content

Latest commit

 

History

212 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Satoshi.si

satoshi.si is a Bitcoin-focused progressive web app: Satoshi's words, whitepaper translations, hands-on learning, market tools, and a few experiments. Built with plain HTML, CSS, and JavaScript, it runs on static hosting without an application server of its own.

Explore

Price Scanner overlays BTC or sats values on price tags in a full-screen camera view. A centered targeting frame and self-hosted PaddleOCR models handle varied printed styles and improve handwritten-number recognition entirely on-device. Sintra provides the BTC price, and fresh converter caches or Frankfurter provide currency rates. Optional photo downloads include Bitcoin labels and a satoshi.si logo watermark; images are never uploaded. Currency, display unit and pinch zoom are saved locally. Camera selection automatically prefers the rear camera on phones or the available webcam. See scanner notes.

Cost of Living in Bitcoin compares reported consumer prices in 2010 with the latest completed year across the 26 current EU countries that were members in 2010. Electricity, petrol and diesel have consistent quantities and complete annual coverage, using Eurostat and European Commission data including taxes. The page shows one item at a time, with photos, EUR/BTC prices, the item's price change, EU-wide buying power lost to inflation and Bitcoin's purchasing-power increase. A simple EUR100 example explains the separate EU inflation benchmark without altering actual item prices. No invented starting amounts or inflation-index substitutes for retail prices. Snapshots refresh through GitHub Actions and work offline. See maintenance notes.

Page What it offers
Words of Satoshi Shuffled quotes, click-to-copy, two-minute rotation, and a subtle desktop control for the next quote.
Bitcoin whitepaper A collection of translations, with contributions welcome to make Bitcoin knowledge accessible in more languages.
Self-custody A newcomer-friendly guide to mobile, desktop and Lightning wallets, signing devices and full nodes, from BlueWallet and Sparrow through SeedSigner, Cupcake, the BitBox02 Bitcoin-only edition and Bitcoin Core.
BIP39 word checker Type one word and explore similar words from any of the ten official BIP39 language lists. Validation and suggestions run locally and work offline.
History chart Explore currencies and other assets priced in sats, with time ranges, linear/logarithmic scales, historical events, snapshots, and CSV/JSON exports.
Moscow Time A sats-per-dollar view of Bitcoin's price.
Converter Bitcoin, satoshi, and fiat conversions.
Bitcoin and Nostr News Bitcoin and Nostr engineering, release, media, research, and community feeds, with locally stored source and keyword filters plus custom RSS and Nostr profiles.
Memed Bitcoin Mood Market moods and memes across daily, weekly, monthly, and yearly timeframes, with fallback data providers.
Game39 BIP39 word games, with a separate multiplayer mode.
GhostQR An experimental tool for creating printable, layered QR codes.
Entropy Lab Compare secure randomness with coin flips, dice, typed patterns, images, pointer movement and sound; captured media stays on-device and is discarded after fingerprinting.
Lightning lottery An embedded lottery, alongside statistics, a ticket verifier, and terms.
Exchange A third-party ChangeNOW widget for crypto swaps and fiat purchases, defaulting to XMR/BTC and EUR/BTC.
Nostr identifiers Information about NIP-05 identifiers on the satoshi.si domain.

The shared interface uses a near-black theme with orange accents, gently animated grain, and retro TV navigation effects. Reduced-motion preferences disable the animations. Responsive layouts, menus, and dialogs support smaller screens; the footer places block height on the left and fee rate on the right.

Install and Use Offline

Open satoshi.si in a supported browser and use its install or Add to Home Screen option. Installation availability and wording vary by browser. The manifest provides a standalone app window, icons, and theme colors.

The service worker precaches the home shell, an offline fallback, and the BIP39 word checker. Visited pages and eligible same-origin static assets are cached with a network-first strategy.

Offline support is selective, not a promise that every tool works without a connection.

  • The BIP39 word checker can work offline once its assets have been cached.
  • Cached pages remain available, but their live data and external services may not be.
  • API responses, JSON datasets, query-string requests, and third-party resources are not cached by the worker. Quotes and historical chart data therefore still require connectivity under the current cache policy.
  • External fonts, icons, embeds, and multiplayer services may be unavailable offline.

Updates activate after existing tabs controlled by the old service worker close. See PWA and theme maintenance for caching, deployment, and verification details.

BIP39 Safety and Privacy

The public checker accepts one word and compares it locally with the selected official BIP39 list. It does not send the word to an API. The first four letters are emphasized because those prefixes are unique within each BIP39 wordlist.

The previous phrase, entropy, checksum, and passphrase playground is retained as source in archive/bip39-playground, but is not published as a second live page. Never enter a real wallet recovery phrase into an educational tool.

See BIP39 implementation notes for details about the archived playground.

Data Sources and Dependencies

  • Bitcoinity: the documented source of historical BTC/USD exchange data. The existing pipeline averages available exchange columns.
  • Frankfurter: historical fiat conversion rates in the data-generation script, plus exchange rates used by the chart.
  • Sintra: live Bitcoin prices used by price-related tools.
  • mempool.space: block and fee information.
  • Bitcoin and Nostr news: Bitcoin Optech, Bitcoin Core releases, project blogs, independent publications, Nostr newsletters, community feeds, and Reddit sources. A daily GitHub Action creates the static feed snapshot.
  • CoinGecko and CoinPaprika: Bitcoin Mood market data, with Binance as a daily fallback. Some volatility values are estimates rather than measured historical ranges.
  • Open Exchange Rates: fiat rates used by the converter.
  • Third-party services: ChangeNOW and the lottery embed power their respective widgets; multiplayer Game39 uses Firebase. Several pages also load libraries, fonts, or icons from external hosts.

The history chart displays BTC per unit. A Yahoo Finance collector now generates sourced stock, futures, index, and ETF datasets, with a daily GitHub Actions workflow ready to enable. Original CSVs remain as a labelled fallback; fiat history is not refreshed by this workflow. See history sources, methodology, and setup for the recovered pipeline, adjustment choices, units, failure handling, and deployment steps.

External services can fail, rate-limit requests, or be blocked by browser privacy tools. Static hosting removes the need for our own backend, not these external dependencies. Third-party services have their own terms and privacy policies.

Run Locally

No site-wide build step is required. Serve this repository's root over HTTP instead of opening HTML with file://:

git clone https://github.com/StellarStoic/satoshi.git
cd satoshi
python3 -m http.server 8080 --bind 127.0.0.1

Open http://127.0.0.1:8080. A VSCodium static-server extension can serve the same directory instead; Python is only one local preview option, not a production dependency.

Use HTTPS in production or localhost for service-worker development. Root-relative asset paths and the manifest assume hosting at the domain root; subdirectory hosting requires path changes.

Development

Keep contributions approachable: plain HTML, CSS, and JavaScript, with page-specific styles and shared theme variables in theme.css. Navigation effects live in siteEffects.css and siteEffects.js. The PWA entry points are site.webmanifest, pwa.js, and sw.js.

Run automated checks with Node.js:

node --test tests/*.test.mjs

Tests cover BIP39 behavior, news filtering and feed parsing, scanner recognition, historical data, and Bitcoin Mood fallback handling. They do not replace browser checks for layouts, installation, external integrations, or offline behavior.

The BIP39 library bundle is committed, so visitors and normal static previews do not need npm. To rebuild it:

npm ci --prefix tools/bip39 --ignore-scripts
npm run build --prefix tools/bip39

When changing precached assets, increment the cache version in sw.js. Check desktop and mobile layouts, keyboard focus, reduced motion, and offline navigation before releasing.

Planned Work

  • Enable and monitor the new Yahoo Finance history workflow in GitHub; extend automated coverage to fiat history.
  • Validate legacy history against the newly sourced datasets before retiring it.
  • Correct gaps in the legacy FX collector's date stepping and align its input/output paths with the chart.
  • Improve offline coverage where appropriate and reduce duplicated navigation and modal markup.

Contributing and Contact

Quotes, whitepaper translations, educational improvements, accessibility fixes, and bug reports are welcome. Fork the repository and submit a pull request; include sources for new historical data or educational claims, and test the pages you change.

Reach out through the website or Telegram. The site's support dialog offers Lightning and on-chain contributions.

License

This project has been described as MIT-licensed; a top-level license file still needs to be added. Bundled BIP39 dependency notices are in vendor/bip39.LICENSE.txt. Third-party content and services may have separate terms.

About

always under construction 🚧 improving and adding new features... Nostr NIP-05 identifier, currency converter, all Bitcoin white paper translations, satoshi quotes, bitcoin lottery, QRcode maker and other fun stuff related to this thing Satoshi poisoned us with.

Resources

Stars

1 star

Watchers

1 watching

Forks

Contributors

Languages