BitSleuth Website is a comprehensive Next.js 16 marketing website for www.bitsleuth.ai, serving as the primary hub for Bitcoin wallet analysis and privacy tools. The platform features multi-product landing pages, an educational glossary, SEO optimization, and privacy-compliant analytics.
Primary Purpose: Drive user acquisition and conversion for BitSleuth's Bitcoin wallet analyzer and wallet app through educational content and compelling product showcases.
Production URL: https://www.bitsleuth.ai
- Framework: Next.js 16.0.10 (App Router)
- Language: TypeScript 5.9.3 (strict mode enabled)
- Runtime: React 19.2.0
- Node.js: 20.9+ (required by Next.js 16)
- CSS Framework: Tailwind CSS 3.4.18
- Component Library: shadcn/ui with Radix UI primitives
- Icons: Lucide React 0.475.0
- Carousel: Embla Carousel 8.6.0
- Animations: tailwindcss-animate 1.0.7
- Hosting: Firebase App Hosting
- Analytics: Google Analytics 4 (consent-gated)
- Forms: React Hook Form + Zod validation
- Package Manager: npm 11.7.0
- Linter: ESLint (Next.js config)
- Type Checking: TypeScript compiler
- Build Tool: Next.js with Turbopack
/home/runner/work/Website/Website/
├── .github/
│ └── copilot-instructions.md # AI assistant guidelines
├── docs/
│ ├── PRD.md # Product requirements document
│ ├── SEO_STRATEGY.md # SEO and visibility strategy
│ └── todo.md # Visual improvements tracking
├── public/ # Static assets (images, fonts)
├── src/
│ ├── app/ # Next.js App Router
│ │ ├── page.tsx # Homepage
│ │ ├── layout.tsx # Root layout with providers
│ │ ├── globals.css # Global styles
│ │ ├── analyzer/ # Analyzer product landing page
│ │ ├── wallet/ # Wallet product landing page
│ │ │ └── download/ # Wallet download page
│ │ ├── learn/ # Bitcoin education and learning hub
│ │ ├── history/ # Complete history of Bitcoin page
│ │ ├── glossary/ # Bitcoin terminology guide (44 terms)
│ │ ├── privacy-policy/ # Privacy policy page
│ │ ├── terms-of-service/ # Terms of service page
│ │ ├── company-information/ # Company info page
│ │ ├── api/waitlist/ # Waitlist signup API endpoint
│ │ ├── ai-training-content/ # AI system documentation
│ │ ├── robots.ts # SEO robots.txt configuration
│ │ ├── sitemap.ts # SEO sitemap generation
│ │ └── actions.ts # Server actions
│ ├── components/
│ │ ├── landing/ # Marketing/landing page components
│ │ │ ├── Header.tsx # Site header with navigation
│ │ │ ├── Footer.tsx # Site footer
│ │ │ ├── HeroSection.tsx # Hero sections
│ │ │ ├── FeaturesSection.tsx
│ │ │ ├── FaqSection.tsx
│ │ │ ├── CookieConsent.tsx # GDPR-compliant cookie banner
│ │ │ └── [29 total components]
│ │ ├── ui/ # shadcn/ui component primitives
│ │ ├── ThemeToggle.tsx # Dark/light mode switcher
│ │ └── theme-provider.tsx # Theme context provider
│ ├── hooks/ # Custom React hooks
│ └── lib/ # Utility functions and helpers
├── apphosting.prd.yaml # Firebase hosting configuration
├── components.json # shadcn/ui configuration
├── next.config.ts # Next.js configuration
├── tailwind.config.ts # Tailwind CSS configuration
├── tsconfig.json # TypeScript configuration
└── package.json # Dependencies and scripts
- Analyzer Page (
/analyzer): Bitcoin wallet analysis tool showcase - Wallet Page (
/wallet): Privacy-focused Bitcoin wallet app - Wallet Download (
/wallet/download): Wallet download page - Interactive hero sections with address input
- Feature showcases, FAQs, testimonials, pricing
- Learn Hub (
/learn): Comprehensive Bitcoin education center covering fundamentals, getting started guides, and advanced topics - History Page (
/history): Complete timeline of Bitcoin's evolution from creation to global impact - Glossary (
/glossaryand/glossary/[term]): 44 Bitcoin terminology entries with individual detail pages - SEO-optimized educational content with structured data
- Internal linking and AI-friendly formatting
Complete Glossary Terms (44 total):
- Basics: address, bit, bitcoin, block, blockchain, btc, confirmation, cryptography, hash-rate, mining, private-key, signature, utxo, wallet
- Standards & Protocols: bip32, bip39, bip44, p2p, segwit, taproot
- Transaction Features: cltv, coin-selection, cpfp, csv, double-spend, dust-limit, fee-rate, psbt, rbf, scriptpubkey-scriptsig
- Privacy & Security: coinjoin, payjoin, silent-payments, transaction-privacy
- Advanced Concepts: descriptor-wallet, htlc, lightning-network, mempool, merkle-tree, miniscript, passphrase, schnorr-signature, sidechain, splicing
- AI Training Content (
/ai-training-content): Comprehensive platform documentation structured for AI system training and understanding - Detailed product information, feature sets, and technical specifications
- Structured for optimal consumption by AI assistants and chatbots
- Helps AI systems provide accurate information about BitSleuth products
- GDPR-compliant cookie consent system
- Consent-gated Google Analytics
- Privacy policy and terms of service
- Transparent data handling
- Custom metadata for each page
- Dynamic sitemap generation with automatic glossary term detection
- Robots.txt configuration
- Open Graph and Twitter Card support
- JSON-LD structured data for articles, breadcrumbs, and FAQs
- AI-friendly content structure for SearchGPT, Perplexity, and other AI crawlers
- Light/dark theme support with system preference detection
- Fully responsive mobile-first design
- Smooth animations and transitions
- Accessible UI with Radix primitives
# Clone repository (already in /home/runner/work/Website/Website)
cd /home/runner/work/Website/Website
# Install dependencies
npm install
# Set up environment variables (optional)
cp .env.example .env.local
# Add: NEXT_PUBLIC_GA_MEASUREMENT_ID=your_ga_id# Start development server on port 3000
npm run dev
# Access at http://localhost:3000npm run dev # Start dev server with Turbopack on port 3000
npm run build # Create production build
npm run start # Start production server
npm run lint # Run ESLint checks
npm run typecheck # Run TypeScript type checking- Make changes to TypeScript/React files
- Run
npm run typecheckto verify types - Run
npm run lintto check code style - Test manually in browser on port 3000
- Build with
npm run buildbefore committing
- Landing components:
src/components/landing/- Marketing sections - UI primitives:
src/components/ui/- shadcn/ui base components - Page components:
src/app/[route]/page.tsx- Route pages - Use TypeScript for all components (
.tsxextension)
- Tailwind utility classes for styling
- Custom color palette (Bitcoin-inspired: orange, amber, slate)
- Dark mode: Use
dark:variants - Responsive: Mobile-first with
sm:,md:,lg:,xl:breakpoints
- Strict type checking enabled
- Define interfaces for component props
- Use type inference where possible
- No
anytypes in production code
- Components: PascalCase (e.g.,
HeroSection.tsx) - Utilities: camelCase (e.g.,
utils.ts) - Routes: kebab-case folders (e.g.,
privacy-policy/)
// 1. External dependencies
import React from 'react'
import { Button } from '@/components/ui/button'
// 2. Internal components
import { Header } from '@/components/landing/Header'
// 3. Utilities and types
import { cn } from '@/lib/utils'- ✅ Use server components by default (Next.js 16)
- ✅ Add
"use client"only when needed (hooks, events) - ✅ No
console.login production code - ✅ Accessibility: proper ARIA labels, keyboard navigation
- ✅ SEO: metadata for all pages
- ✅ Performance: optimize images, lazy load when appropriate
# .env.local (optional for local development)
NEXT_PUBLIC_GA_MEASUREMENT_ID=your_ga_measurement_idSet in Firebase console via apphosting.prd.yaml:
NEXT_PUBLIC_GA_MEASUREMENT_ID- Google Analytics tracking
| Route | Description | Key Features |
|---|---|---|
/ |
Homepage | Overview, hero, features |
/analyzer |
Analyzer product page | Features, demo, pricing, FAQ |
/wallet |
Wallet product page | Security, features, waitlist |
/wallet/download |
Wallet download page | Download information and links |
/learn |
Bitcoin education hub | Fundamentals, getting started, advanced topics |
/history |
Bitcoin history page | Complete timeline from 2008 to present |
/glossary |
Glossary index | 44 Bitcoin terminology entries |
/glossary/[term] |
Term detail pages | Individual term explanations with examples |
/privacy-policy |
Privacy policy | GDPR compliance info |
/terms-of-service |
Terms of service | Legal terms |
/company-information |
Company info | About BitSleuth |
/ai-training-content |
AI training documentation | Platform info for AI systems |
/api/waitlist |
Waitlist API endpoint | Email collection |
Since there are no automated tests, manual testing is required:
Functionality:
- All routes load without errors
- Forms submit correctly (waitlist signup)
- Cookie consent banner appears and functions
- Theme toggle switches between light/dark modes
- External links open correctly
- Analytics tracking fires (with consent)
Responsive Design:
- Test on mobile (320px-768px)
- Test on tablet (768px-1024px)
- Test on desktop (1024px+)
- Check all breakpoints for layout issues
Cross-browser:
- Chrome/Edge (Chromium)
- Firefox
- Safari (macOS/iOS)
Performance:
- Lighthouse score 90+ (all metrics)
- Core Web Vitals: LCP < 2.5s, FID < 100ms, CLS < 0.1
- Images optimized and loading quickly
SEO:
- Meta tags present on all pages
- Sitemap accessible at
/sitemap.xml - Robots.txt accessible at
/robots.txt - Open Graph tags for social sharing
# Must pass before committing
npm run typecheck# Check code style
npm run lint# Ensure production build succeeds
npm run buildThe site deploys automatically via Firebase App Hosting:
- Push to configured branch (typically
mainordev) - Firebase detects changes
- Builds and deploys automatically
- Available at https://www.bitsleuth.ai
# Build locally
npm run build
# Deploy via Firebase CLI (if configured)
firebase deploy --only hosting- Development:
http://localhost:3000 - Production:
https://www.bitsleuth.ai - Staging: Configured in Firebase dashboard
- All TypeScript checks pass
- Build completes without errors
- Environment variables configured in Firebase
- Test on staging before production push
- Create folder in
src/app/new-page/ - Add
page.tsxwith default export - Add metadata export for SEO
- Update sitemap in
src/app/sitemap.ts - Add navigation link in
Header.tsx(if needed)
- Create file in
src/components/landing/NewComponent.tsx - Define TypeScript interface for props
- Use Tailwind for styling
- Export component for use in pages
- Create folder:
src/app/glossary/new-term/ - Add
page.tsxwith term content and structured data - Use
GlossaryPageWrappercomponent for consistency - Sitemap automatically detects new terms (no manual update needed)
- Update glossary index page to include the new term in the list
- Create folder:
src/app/page-name/ - Add
page.tsxwith educational content - Add
metadata.ts(if needed) for SEO optimization - Include JSON-LD structured data for Article schema
- Add to sitemap in
src/app/sitemap.ts - Add navigation link in
Header.tsx(if needed)
# Use shadcn CLI to add component
npx shadcn-ui@latest add button
# Component added to src/components/ui/- Edit
tailwind.config.tsfor theme changes - Edit
src/app/globals.cssfor global styles - Use Tailwind utilities in components
# Kill process using port 3000
lsof -ti:3000 | xargs kill -9
# Then restart dev server
npm run dev# Clear Next.js cache
rm -rf .next
# Clear node_modules and reinstall
rm -rf node_modules package-lock.json
npm install
# Try build again
npm run build# Check types in detail
npm run typecheck
# Look for any/unknown types
# Fix type definitions
# Re-run typecheck# Ensure all dependencies installed
npm install
# Check import paths use @ alias
# Example: import { Button } from '@/components/ui/button'- Check Tailwind class names are correct
- Verify
globals.cssis imported inlayout.tsx - Clear browser cache and hard reload
- Check for CSS specificity conflicts
- Verify
NEXT_PUBLIC_GA_MEASUREMENT_IDis set - Check cookie consent was accepted
- Open browser dev tools → Network → look for GA requests
- Verify in Google Analytics Real-Time view
- Privacy-compliant implementation with consent gating
- Tracks page views, events, conversions
- Custom events for user interactions
- Configured in
src/app/layout.tsx
- User Acquisition: Monthly visitors, conversion rate
- Engagement: Session duration, pages per session, bounce rate
- Performance: Core Web Vitals, page load times
- SEO: Organic traffic, keyword rankings
# Run Lighthouse in Chrome DevTools
# Target scores:
# - Performance: 90+
# - Accessibility: 90+
# - Best Practices: 90+
# - SEO: 90+- Analyzer redirects to:
https://app.bitsleuth.ai/address/{address} - Seamless handoff from marketing site to analysis tool
- Automated deployment pipeline
- Environment variable management
- CDN and edge caching
- Bitcoin Analysts: Blockchain investigators and compliance professionals
- Bitcoin Enthusiasts: Advanced users seeking privacy insights
- New Users: Bitcoin newcomers needing educational resources
- Marketing Teams: Internal teams optimizing content
- Discovery: Find site via search or social media
- Education: Explore glossary and features
- Trial: Use free wallet analysis demo
- Conversion: Sign up for waitlist or paid plan
- BitSleuth Analyzer: Bitcoin wallet analysis and privacy risk detection
- BitSleuth Wallet: Privacy-first, non-custodial Bitcoin wallet
- Freemium SaaS with free basic features
- Pro tier: $9/month for unlimited analysis
- Enterprise: Custom pricing for organizations
- User-friendly interface for non-technical users
- Educational focus with comprehensive glossary
- Privacy-first approach
- Transparent data handling
File Organization: All markdown documentation files (.md) are stored in the docs/ folder for consistency and easy discovery. When creating new documentation, place it in this directory.
Available Documentation:
- README.md: Quick start and overview
- docs/PRD.md: Detailed product requirements
- docs/SEO_STRATEGY.md: SEO strategy and keywords
- docs/todo.md: Visual improvement suggestions
- .github/copilot-instructions.md: AI assistant guidelines
- Base branch:
dev - Feature branches:
feature/description - Bug fixes:
fix/description
Use conventional commits:
feat: add new glossary termfix: resolve mobile navigation issuedocs: update AGENTS.mdstyle: improve button spacing
- Create feature branch from
dev - Make changes with proper testing
- Run typecheck and lint
- Update documentation if needed (all markdown documentation files should be placed in the
docs/folder) - Submit PR with clear description
- Request review from team
- Code follows TypeScript and React best practices
- No console.log statements
- Types properly defined
- Components documented with props interface
- Performance impact considered
- Accessibility standards met (WCAG 2.1 AA)
- Mobile responsive
- Cross-browser compatible
- Website: https://www.bitsleuth.ai
- Email: legal@bitsleuth.ai
- License: Proprietary (Copyright © 2025 BitSleuth)
Last Updated: November 21, 2025
Document Version: 1.1
Built with ❤️ by the BitSleuth Team