No description
  • TypeScript 69.8%
  • JavaScript 17.1%
  • CSS 10.9%
  • EJS 2.1%
  • Dockerfile 0.1%
Find a file
sovenor 83034cf89a stickers: vote-pack-specific Step 2 description
The Vote Pack ships USA-only, so the generic Step 2 copy ("…USA and
Canada. Anywhere else in the world…") didn't fit. Adds
`stickers_vote_step_2_description` for the vote pack and conditionally
renders it from `StickerFlow` when `pack === "vote"`. Translated into
all 54 non-English locales.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 11:56:11 -04:00
.claude/commands tooling: migrate from Cline to Claude Code 2026-04-25 17:20:48 -04:00
.clinerules i18n: sort English alphabetically in language switcher 2026-05-03 20:21:25 -04:00
app inflation: add bounce animation to stat-comparison arrows 2026-05-06 21:38:59 -04:00
components stickers: vote-pack-specific Step 2 description 2026-05-07 11:56:11 -04:00
deploy/frontend-railway deploy: add Railway CLI deploy infra (Dockerfile + npm scripts) 2026-05-05 21:47:07 -04:00
forms-backend stickers: track vote-pack source + dynamic success redirect 2026-05-06 22:11:35 -04:00
i18n stickers: vote-pack-specific Step 2 description 2026-05-07 11:56:11 -04:00
lib sticker-files: add three Vote-Pack designs to the English page 2026-05-06 21:58:32 -04:00
memory-bank memory-bank: log Turnstile removal in activeContext + progress 2026-04-26 21:34:24 -04:00
public stickers: strip metadata from Vote Pack PNGs 2026-05-07 11:23:10 -04:00
scripts chore: remove one-shot helpers from scripts/i18n-audit/ 2026-05-03 17:13:37 -04:00
.gitignore add licensed font for dynamic, translated meta images 2026-04-26 14:53:01 -04:00
CLAUDE.md docs: point i18n verifier reference at scripts/i18n-audit/verify-language.js 2026-04-26 14:57:53 -04:00
CONTRIBUTING.md docs: add /flyers to README resources and contributor guide 2026-05-03 11:42:56 -04:00
eslint.config.mjs Phase 1: scaffold Next.js 16 + React 19 + TypeScript + Tailwind v4 2026-04-17 10:48:52 -04:00
GEO-CHECKLIST.md update GEO-CHECKLIST.md 2026-03-29 11:38:01 -04:00
LICENSE.md Create LICENSE.md 2024-04-02 20:01:07 -04:00
llms-full.txt update get-involved text 2026-04-24 07:51:28 -04:00
llms.txt nostr: v2 redesign complete 2026-04-23 12:11:14 -04:00
middleware.ts Phase 2: i18n wiring with next-intl 2026-04-17 11:02:12 -04:00
MIGRATION-NEXTJS.md Phase 14: cleanup + docs 2026-04-17 22:01:09 -04:00
next-env.d.ts refactor v2-translation-refresh into manifest-translate-refresh, rescue am (Amharic) translation 2026-04-23 18:29:41 -04:00
next.config.ts fix: serve NIP-05 nostr.json from public/ with CORS 2026-04-26 21:54:44 -04:00
package-lock.json og: dynamically generate per-locale opengraph images for top 22 pages 2026-04-26 14:46:58 -04:00
package.json deploy: add Railway CLI deploy infra (Dockerfile + npm scripts) 2026-05-05 21:47:07 -04:00
postcss.config.mjs Phase 1: scaffold Next.js 16 + React 19 + TypeScript + Tailwind v4 2026-04-17 10:48:52 -04:00
README.md docs: add /flyers to README resources and contributor guide 2026-05-03 11:42:56 -04:00
tsconfig.json Phase 1: scaffold Next.js 16 + React 19 + TypeScript + Tailwind v4 2026-04-17 10:48:52 -04:00
V2-REDESIGN-CHECKLIST.md i18n: complete Step 6 final verification (sitemap + memory-bank) 2026-04-25 19:32:34 -04:00

bitcoin.rocks

Mission

The mission of bitcoin.rocks is to accelerate bitcoin adoption through education.

We accomplish this with several free resources:

Website Overview

bitcoin.rocks is an educational website designed for people who are new to bitcoin. The website was founded in 2022 as a "first link" to send to people who ask you about bitcoin.

The main focus of the website is the homepage which links out to a variety of internal and external sources depending on the user's interests.

You can view the website here: https://bitcoin.rocks

Website Architecture

bitcoin.rocks is built on Next.js 16 + React 19 + TypeScript + Tailwind v4. Every page is server-rendered per-locale so crawlers and AI systems see translated content in the initial HTML response (all ~55 languages).

  • Framework: Next.js 16 (App Router, Turbopack) + React 19
  • Language: TypeScript 5.6 (strict mode)
  • Styling: Tailwind v4 (CSS-first @theme {} config in app/globals.css)
  • i18n: next-intl + existing i18n/<locale>/*.json files (jquery.i18n-compatible flat snake_case keys)
  • Hosting: Railway (Next server) for the frontend; separate Railway service for form submissions
  • Analytics: Google Analytics 4 (G-18L58W2GTN)

All translation files live in i18n/ — one JSON file per page per language. You can see which translations are in progress in the Translations forum.

For a detailed architectural tour, see memory-bank/systemPatterns.md and memory-bank/techContext.md.

Local Development

Requires Node.js 20+ and npm.

# Clone the repository
git clone https://github.com/sovenor/bitcoin-rocks.git
cd bitcoin-rocks

# Install dependencies (first time only)
npm install

# Start the dev server
npm run dev
# → open http://localhost:3000/ (auto-redirects to /en/ on first visit)

# Run a full production build across all 55 locales
npm run build

# Serve the production build locally
npm run start

# Lint + type-check
npm run lint
npm run typecheck

License

This project is 100% free and open-source. It is licensed under the MIT License. You are free to take any of the content within and use it for your own purposes. The goal is to make the project more public and open over time.

Contribute

You can contribute to bitcoin.rocks even if you aren't a programmer! We currently have a strong focus on translations, but there are many ways you can help accelerate bitcoin adoption.

Please read our Contributor Guide to learn more.