An educational website that explains Bitcoin from multiple disciplinary perspectives. Built with React + Vite, this project provides comprehensive Bitcoin education through nine different lenses, helping users understand not just the technology, but its broader implications for society.
Bitcoin Primer is designed to be a comprehensive educational resource that approaches Bitcoin from multiple angles:
- Economic and Monetary Theory - Understanding money, banking, and economics
- Technical Foundations - Computer science, cryptography, and distributed systems
- Strategic Thinking - Game theory and incentive mechanisms
- Physical Reality - Energy and thermodynamics
- Social Impact - Politics, philosophy, and law
- Nine Disciplinary Perspectives: Each discipline provides a unique lens for understanding Bitcoin
- Bilingual Support: Full support for English and Chinese (ไธญๆ), with extensible architecture for future languages
- Structured Learning Path: 10-week curriculum with progressive difficulty
- Study Guide: Learning methods and practical exercises
- Resource Library: Curated books, courses, tools, and community resources
- Articles Section: In-depth articles on Bitcoin topics
- Buy Bitcoin Guide: Comprehensive guide on how to acquire Bitcoin safely
- SEO Optimized: Full SEO support with meta tags, structured data, and sitemap
- Responsive Design: Optimized for desktop, tablet, and mobile devices
- Smooth Navigation: Intuitive UI with smooth scrolling and transitions
- Node.js 16+
- npm or yarn
# Clone the repository
git clone https://github.com/adshao/bitcoin-primer.git
cd bitcoin-primer
# Install dependencies
npm install
# Start development server
npm run devThe application will be available at http://localhost:5173
# Generate SEO files and build
npm run build
# Preview the production build
npm run preview- Money (่ดงๅธ) - The nature and evolution of money
- Banking (้ถ่ก) - From intermediation to disintermediation
- Economics (็ปๆตๅญฆ) - Scarcity, value, and economic principles
- Computer Science (่ฎก็ฎๆบ็งๅญฆ) - Cryptography and distributed systems
- Game Theory (ๅๅผ่ฎบ) - Incentives and Nash equilibrium
- Energy (่ฝๆบ) - From entropy to value
- Politics (ๆฟๆฒป) - Power, sovereignty, and governance
- Philosophy (ๅฒๅญฆ) - Existence, freedom, and value
- Law (ๆณๅพ) - Code as law in practice
- Learning Path: Three-stage progression (Foundation โ Core โ Advanced)
- Study Guide: Learning principles, methods, and best practices
- Resources: Comprehensive collection of books, courses, tools, and communities
- Articles: Deep-dive articles on Bitcoin topics
- Buy Bitcoin: Guide to purchasing Bitcoin through ETFs and exchanges
- About: Mission and vision of Bitcoin Primer
- Frontend Framework: React 18
- Build Tool: Vite 5
- Routing: React Router v6
- Internationalization: react-i18next
- SEO: react-helmet-async
- Styling: CSS3 with responsive design
- Language: JavaScript (ES6+)
- Package Manager: npm
- Testing: Puppeteer for SEO validation
bitcoinprimer/
โโโ src/
โ โโโ components/ # Reusable components
โ โ โโโ Layout.jsx # Global navigation layout
โ โ โโโ TopicTemplate.jsx # Template for discipline pages
โ โ โโโ SEO.jsx # SEO meta tags component
โ โ โโโ LanguageSwitcher.jsx # Language toggle
โ โโโ pages/ # Page components
โ โ โโโ Home.jsx # Landing page
โ โ โโโ Money.jsx # Discipline pages...
โ โ โโโ LearningPath.jsx # Learning curriculum
โ โ โโโ StudyGuide.jsx # Study methods
โ โ โโโ Resources.jsx # Resource library
โ โ โโโ Articles.jsx # Articles listing
โ โ โโโ Article.jsx # Article reader
โ โ โโโ BuyBitcoin.jsx # Bitcoin purchase guide
โ โ โโโ About.jsx # About page
โ โโโ config/ # Configuration files
โ โ โโโ languages.js # Language configuration
โ โโโ i18n/ # Internationalization
โ โ โโโ index.js # i18n configuration
โ โ โโโ locales/ # Translation files
โ โ โโโ en/ # English translations
โ โ โโโ zh/ # Chinese translations
โ โโโ hooks/ # Custom React hooks
โ โโโ utils/ # Utility functions
โ โโโ App.jsx # Main app component
โ โโโ App.css # Global styles
โ โโโ main.jsx # Entry point
โโโ scripts/ # Build and utility scripts
โ โโโ check-seo.js # SEO validation script
โ โโโ generate-sitemap.js # Sitemap generator
โโโ public/ # Static assets
โ โโโ sitemap.xml # SEO sitemap
โ โโโ robots.txt # Search engine directives
โโโ package.json # Dependencies
โโโ vite.config.js # Vite configuration
โโโ CLAUDE.md # AI assistant instructions
โโโ README.md # This file
The project supports multilingual content with an extensible architecture:
- English (default) -
/paths - Chinese -
/zh/paths
- Automatic spacing between Chinese and English characters
- Complete translation coverage for all content
- Language persistence across sessions
- Easy language switching via navbar dropdown
- SEO-optimized hreflang tags for each language
To add a new language (e.g., Korean):
- Add language config in
/src/config/languages.js - Create translation files in
/src/i18n/locales/ko/ - Update routing in
App.jsx - Run
npm run generate:seoto update sitemap
- Dynamic Meta Tags: Title, description, keywords for each page
- Open Graph: Full Facebook and social media integration
- Twitter Cards: Rich previews on Twitter
- Structured Data: Schema.org EducationalWebSite markup
- Multilingual SEO: hreflang tags for language variants
- Sitemap: Auto-generated XML sitemap for all pages
- robots.txt: Search engine crawling directives
# Generate sitemap and robots.txt
npm run generate:seo
# Validate SEO implementation
npm run check:seo- Clean and Modern: Minimalist design focusing on readability
- Consistent Structure: All discipline pages follow the same template
- Visual Hierarchy: Clear section divisions with alternating backgrounds
- Responsive Grid: 3-column layout on desktop, adapting to mobile
- Bitcoin Orange: Primary color scheme using Bitcoin's signature orange (#f7931a)
- Smooth Interactions: Smooth scrolling and hover effects
- Accessibility: Semantic HTML and ARIA labels
# Development
npm run dev # Start dev server at http://localhost:5173
npm run build # Build for production (includes SEO generation)
npm run preview # Preview production build
npm run lint # Run ESLint
# SEO & Utilities
npm run generate:seo # Generate sitemap.xml and robots.txt
npm run check:seo # Run SEO validation tests- Optimized Build: Code splitting and lazy loading
- Image Optimization: WebP format with fallbacks
- CSS Optimization: Minified and split CSS
- Fast Refresh: HMR for instant development feedback
- Bundle Analysis: Visualize bundle size with rollup
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
- Maintain bilingual support for all new content
- Follow existing code structure and naming conventions
- Ensure responsive design for all screen sizes
- Add SEO metadata for new pages
- Test thoroughly before submitting PR
- Update translations in both
/src/i18n/locales/enand/src/i18n/locales/zh - Run
npm run check:seoto validate SEO implementation
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is open source and available under the MIT License.
- Bitcoin whitepaper by Satoshi Nakamoto
- The Bitcoin community for continuous education and resources
- All contributors and educators in the Bitcoin space
- Open source libraries that make this project possible
For questions or suggestions, please open an issue on GitHub.
# Install Vercel CLI
npm i -g vercel
# Deploy
vercel# Build command
npm run build
# Publish directory
distFROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
EXPOSE 4173
CMD ["npm", "run", "preview"]Note: This is an educational project focused on Bitcoin fundamentals. It does not cover DeFi, smart contracts, or other cryptocurrency derivatives.
Built with โค๏ธ for Bitcoin education