A comprehensive educational resource about quantum computing threats to Bitcoin and post-quantum cryptographic solutions.
- Framework: Vue 3 (Composition API)
- Build Tool: Vite
- Routing: Vue Router
- Head Management: @vueuse/head
- Styling: CSS Variables with terminal aesthetic
- Terminal-inspired dark theme (default) with light mode toggle
- Responsive design for all screen sizes
- WCAG AA accessibility compliance
- SEO-optimized with proper meta tags
- Multi-page architecture with comprehensive content
/src
/assets # Images, icons, fonts
/components # Reusable Vue components
/layouts # Layout wrappers
/pages # Route-level components
/router # Vue Router configuration
/content # Content data
/styles # Global styles and CSS variables
main.js # App entry point
App.vue # Root component
/scripts # Build and utility scripts
/public # Static assets
- Node.js 18+
- npm or yarn
- Clone the repository
- Install dependencies:
npm installRun the development server:
npm run devThe site will be available at http://localhost:5173
If you add or remove routes or components, update AGENTS.md by running: node scripts/update-agents-md.js
npm run buildThe built files will be in the dist directory.
npm run previewFor a smoother workflow that builds and automatically starts the preview server with readiness detection and graceful shutdown:
./scripts/build-and-preview.shThis script will:
- Build the project for production
- Start the preview server in the background
- Poll the server until it's ready (up to 120 seconds)
- Display the actual URL (handles dynamic port assignment)
- Press Ctrl+C to gracefully stop the server
Note: The script automatically detects if the default port (4173) is in use and will use the next available port (e.g., 4174).
- Connect your GitHub repository to Vercel
- Configure build settings:
- Build Command:
npm run build - Output Directory:
dist
- Build Command:
- Deploy!
- Connect your repository
- Build settings:
- Build Command:
npm run build - Publish Directory:
dist
- Build Command:
- Deploy
The site uses CSS variables for theming:
- Default: Dark terminal theme (
theme-dark) - Toggle: Light mode (
theme-light) - Theme preference persisted in localStorage
The application includes a centralized logging utility at src/utils/logger.js.
- DEBUG (0): Detailed debugging information
- INFO (1): General operational information
- WARN (2): Warning messages
- ERROR (3): Error messages
Import and use the logger in components or composables:
import logger from '../utils/logger.js'
// Log messages
logger.debug('Debug message', { data: 'value' })
logger.info('User action', { userId: 123 })
logger.warn('Deprecated feature used')
logger.error('Failed to load data', error)The logger auto-configures based on environment:
- Development: DEBUG level and above
- Production: WARN level and above
- Console output is styled with timestamps and color-coded levels
- Optional localStorage persistence (disabled by default for privacy)
- Log storage path: Browser DevTools Console or localStorage (when enabled)
- Location:
/logs/(reserved for server-side logs) - Note: Client-side logs output to browser console only
- Open browser DevTools (F12)
- Go to Console tab
- Filter by
[BitcoinQuantumHub]prefix
- No external scripts loaded without integrity checks
- CSP headers recommended for production
- Form inputs properly sanitized
- No sensitive data stored client-side
- Semantic HTML structure
- ARIA labels on interactive elements
- Keyboard navigation support
- Focus indicators on all interactive elements
- Color contrast meets WCAG AA standards
All content is sourced from /inputs directory and mapped to the site structure defined in the content files.
GNU General Public License v3.0 - See LICENSE file for details
Contributions welcome! Please read CONTRIBUTING.md for guidelines.
For questions or suggestions, visit the Contact page or open an issue on GitHub.