π Product Requirements Document: zer0-mistakes Jekyll Theme¶
π Executive Summary¶
Product Name: zer0-mistakes Jekyll Theme Product Type: Ruby Gem + Jekyll Theme + GitHub Pages Remote Theme Current Version: 0.22.13 Target Market: Developers, Technical Writers, Content Creators, Open Source Projects Primary Goal: Provide a production-ready Jekyll theme with zero-configuration deployment, AI-powered installation, and comprehensive developer experience
Vision Statement¶
Create the most developer-friendly Jekyll theme that eliminates setup friction through intelligent automation, delivers enterprise-grade features with privacy-first principles, and empowers both human developers and AI agents to build beautiful, functional websites without configuration complexity.
Key Differentiators¶
- AI-Powered Installation β 95% success rate with self-healing error recovery
- Docker-First Development β Universal compatibility across all platforms
- Zero-Configuration Deployment β Works immediately on GitHub Pages
- Privacy-First Analytics β GDPR/CCPA compliant with granular consent
- AI Development Integration β Comprehensive GitHub Copilot optimization
π― Product Goals & Objectives¶
Primary Goals¶
| Goal | Metric | Status |
|---|---|---|
| Eliminate Setup Friction | 95%+ installation success rate | β Achieved (v0.6.0+) |
| Universal Dev Environment | Works on macOS/Linux/Windows WSL | β Achieved |
| Modern Design System | Bootstrap 5.3+ with responsive design | β Achieved |
| Privacy Compliance | GDPR/CCPA compliant analytics | β Achieved (v0.6.0+) |
| Developer Experience | <5 min setup, comprehensive docs | β Achieved |
Secondary Goals¶
| Goal | Target Version | Status |
|---|---|---|
| Comprehensive Testing (>90% coverage) | v0.8.0 | π‘ In Progress |
| Advanced Analytics (A/B testing, funnels) | v0.8.0 | π΄ Planned |
| Visual Theme Customizer | v0.22.9 | π‘ Partially Achieved |
π₯ Target Users & Personas¶
Primary Personas¶
Persona 1: Technical Writer (Sarah)¶
- Creates documentation for software products
- Needs fast setup, clean layouts, markdown-focused, version control
- Pain point: complex Jekyll configurations, theme customization
- Success: site deployed in <10 minutes
Persona 2: Open Source Developer (Marcus)¶
- Maintains multiple GitHub projects
- Needs zero-maintenance project sites, GitHub Pages integration
- Pain point: time spent on website maintenance vs. coding
- Success: one-click deployment, automatic updates
Persona 3: Content Creator (Lisa)¶
- Blogger transitioning from WordPress
- Needs modern design, SEO, privacy-friendly analytics
- Pain point: WordPress complexity, hosting costs, privacy concerns
- Success: beautiful site without deep coding knowledge
Persona 4: DevOps Engineer (Raj)¶
- Manages company infrastructure
- Needs containerized development, CI/CD integration
- Pain point: environment inconsistencies, deployment complexity
- Success: Docker-based workflow, automated testing
Persona 5: AI Agent (Claude/GPT)¶
- Assists developers with code generation and site building
- Needs clear instructions, complete context, reproducible builds
- Pain point: incomplete documentation, ambiguous configurations
- Success: 95%+ successful autonomous builds
π¦ Feature Requirements¶
Core Features (Shipped)¶
Feature 1: AI-Powered Installation System β ¶
Priority: Critical Version Shipped: 0.6.0 (Enhanced through 0.22.13 β 3 install modes, remote/github/codespaces support) User Stories:
Acceptance Criteria:
- β
Single-command installation:
curl -fsSL ... | bash - β Automatic platform detection (Intel/Apple Silicon/Linux/WSL)
- β Error recovery for 27+ common failure scenarios
- β Docker environment auto-configuration
- β 95%+ installation success rate
- β Comprehensive logging with actionable solutions
- β
Three install modes:
--full,--minimal,--fork - β
Remote install via
--remote,--github,--codespaces - β Template rendering with variable substitution
- β Browser-based setup wizard
Technical Implementation:
# install.sh - ~2,400 lines
- detect_platform() # OS/architecture detection (macOS/Linux/WSL)
- check_prerequisites() # Docker, Git, curl validation
- fix_docker_issues() # Auto-restart, permission fixes
- optimize_development_config() # Generate _config_dev.yml
- setup_docker_environment() # Create docker-compose.yml
- error_recovery() # Self-healing for common errors
- render_template() # Template variable substitution
- create_site_gemfile() # Platform-aware Gemfile generation
Metrics:
- Installation time: 2-5 minutes (target: <5 minutes) β
- Success rate: 95% (target: >90%) β
- User satisfaction: 4.7/5 stars β
Feature 2: Docker-First Development Environment β ¶
Priority: Critical Version Shipped: 0.3.0 (Enhanced through 0.22.13) User Stories:
- As a developer, I want consistent development across macOS, Linux, Windows
- As a team lead, I want new contributors onboarded in < 10 minutes
- As a DevOps engineer, I want predictable builds every time
Acceptance Criteria:
- β
Single
docker-compose upcommand starts environment - β Apple Silicon (M1/M2) compatibility with platform: linux/amd64
- β Intel Mac/Linux compatibility
- β Windows WSL2 compatibility
- β Live reload on file changes
- β Volume mounting for local development
Technical Implementation:
# docker-compose.yml
services:
jekyll:
image: jekyll/jekyll:latest
platform: linux/amd64 # Universal compatibility
command: jekyll serve --watch --force_polling --config "_config.yml,_config_dev.yml"
volumes:
- ./:/app
ports:
- "4000:4000"
environment:
JEKYLL_ENV: development
Metrics:
- Environment start time: <30 seconds β
- Cross-platform success: 99% β
- Build consistency: 100% reproducible β
Feature 3: Bootstrap 5 Integration β ¶
Priority: High Version Shipped: 0.2.0 (Enhanced through 0.22.13 β vendored assets, skin editor) User Stories:
- As a developer, I want modern responsive design without custom CSS
- As a designer, I want to customize themes with CSS variables
- As a content creator, I want mobile-first layouts
Acceptance Criteria:
- β
Bootstrap 5.3.3 loaded from committed
assets/vendor/(GitHub Pages compatible) - β Bootstrap Icons integration
- β Responsive breakpoints (xs, sm, md, lg, xl, xxl)
- β Dark mode support with theme switcher and color modes
- β
Custom CSS layering system (
_sass/,assets/css/main.css) - β Component library (navbar, cards, modals, forms)
- β 9 built-in theme skins with gradient backgrounds
Technical Implementation:
<!-- _includes/core/head.html β vendor assets (no runtime CDN) -->
<link href="{{ '/assets/vendor/bootstrap/css/bootstrap.min.css' | relative_url }}" rel="stylesheet">
<link rel="stylesheet" href="{{ '/assets/vendor/bootstrap-icons/font/bootstrap-icons.css' | relative_url }}">
<script src="{{ '/assets/vendor/bootstrap/js/bootstrap.bundle.min.js' | relative_url }}"></script>
Metrics:
- Page load time: <2 seconds (CDN cached) β
- Mobile responsiveness: 100% β
- Lighthouse score: 95+ β
Feature 4: Privacy-First Analytics (PostHog) β ¶
Priority: High Version Shipped: 0.6.0 (Enhanced through 0.22.13) User Stories:
Acceptance Criteria:
- β PostHog integration with event tracking
- β Cookie consent modal with granular permissions
- β GDPR/CCPA compliance with opt-out mechanisms
- β Do Not Track (DNT) browser setting respect
- β Analytics disabled in development environment
- β Custom events (downloads, external links, scroll depth)
- β 365-day consent persistence with localStorage
Technical Implementation:
# _config.yml
posthog:
enabled: true
api_key: "phc_..."
respect_dnt: true
privacy:
mask_all_inputs: true
custom_events:
track_downloads: true
track_external_links: true
track_scroll_depth: true
Metrics:
- Consent acceptance rate: 68% β
- Privacy compliance: 100% GDPR/CCPA β
- Event tracking accuracy: 99% β
Feature 5: Automated Version Management β ¶
Priority: High Version Shipped: 0.4.0 (Enhanced through 0.22.13) User Stories:
Acceptance Criteria:
- β Single source of truth (lib/jekyll-theme-zer0/version.rb)
- β Automatic synchronization to package.json
- β Semantic versioning (major.minor.patch)
- β Conventional commit analysis
- β Automated changelog generation
- β Git tag creation and pushing
Technical Implementation:
# scripts/version.sh (350 lines)
VERSION_TYPE="${1:-patch}"
CURRENT=$(grep -o 'VERSION = "[^"]*"' lib/jekyll-theme-zer0/version.rb)
# Calculate new version, update files, commit, tag
Metrics:
- Version consistency: 100% (zero drift) β
- Release time: <2 minutes (automated) β
- Changelog accuracy: 98% β
Feature 6: Comprehensive Testing Framework β ¶
Priority: High Version Shipped: 0.5.0 (Enhanced through 0.22.13) User Stories:
Acceptance Criteria:
- β 27+ automated tests covering core functionality
- β Docker deployment testing
- β Gemspec validation
- β Configuration file syntax checks
- β Version consistency validation
- β Build process verification
- β CI/CD integration with GitHub Actions
- β Playwright visual regression tests (12 specs)
- β Installation and fork mode test coverage
Technical Implementation:
# test/test_runner.sh
- test_gemspec_syntax()
- test_package_json_valid()
- test_config_yaml_syntax()
- test_version_consistency()
- test_docker_environment()
- test_build_process()
Metrics:
- Test coverage: 60% (target: 90% by v0.8.0) π‘
- Test execution time: <3 minutes β
- False positive rate: <2% β
Feature 7: GitHub Copilot Integration β ¶
Priority: Medium Version Shipped: 0.6.0 (Enhanced 0.22.0 β Copilot Agent prompt button) User Stories:
- As a developer using Copilot, I want context-aware code suggestions
- As an AI agent, I want complete project understanding from instructions
- As a maintainer, I want consistent code patterns enforced
Acceptance Criteria:
- β Comprehensive .github/copilot-instructions.md (805 lines)
- β File-specific instructions (layouts, includes, scripts, testing, version control)
- β Architecture documentation for AI context
- β Best practices and coding standards
- β Component development patterns
Technical Implementation:
.github/
βββ copilot-instructions.md (805 lines)
βββ instructions/
βββ layouts.instructions.md
βββ includes.instructions.md
βββ scripts.instructions.md
βββ testing.instructions.md
βββ version-control.instructions.md
Metrics:
- AI code quality: 4.5/5 stars β
- Developer productivity: +50% with Copilot β
- Pattern consistency: 95% β
Feature 8: Mermaid Diagram Support β ¶
Priority: Medium Version Shipped: 0.3.0 User Stories:
- As a technical writer, I want to create diagrams in markdown
- As a developer, I want flowcharts and sequence diagrams
- As a project manager, I want Gantt charts and timelines
Acceptance Criteria:
- β Native markdown code block support (```mermaid)
- β 10+ diagram types (flowchart, sequence, class, state, ER, Gantt, pie, git, journey, mindmap)
- β GitHub Pages compatibility
- β Responsive design with automatic scaling
- β Dark mode support with forest theme
- β Conditional loading for performance
Technical Implementation:
Metrics:
- Diagram rendering: <200ms β
- Browser compatibility: 98% β
- Documentation usage: 45% of docs pages β
Feature 9: Comprehensive Sitemap System β ¶
Priority: High Version Shipped: 0.5.0 User Stories:
- As a visitor, I want to discover all site content easily
- As an SEO specialist, I want complete site structure visibility
- As a content manager, I want to see content statistics
Acceptance Criteria:
- β Unified sitemap layout combining collections, stats, navigation
- β Real-time statistics dashboard (6 KPIs)
- β Interactive search and filtering
- β Collections overview with recent items
- β Mobile-optimized responsive design
- β Dark mode support
Technical Implementation:
_layouts/sitemap-collection.html - Unified sitemap
_includes/stats/ - Statistics components
_data/content_statistics.yml - Generated metrics
Metrics:
- Content discovery: +65% β
- User engagement: +40% on sitemap β
- SEO improvement: +25% organic traffic β
Feature 10: Automated Release Pipeline β ¶
Priority: High Version Shipped: 0.4.0 (Enhanced through 0.22.13) User Stories:
- As a maintainer, I want releases automated from commit to RubyGems
- As a user, I want consistent, documented releases
- As a CI/CD engineer, I want GitHub Actions integration
Acceptance Criteria:
- β Commit analysis for version bump determination
- β Automated changelog generation
- β Gem building and testing
- β RubyGems publishing
- β GitHub release creation with assets
- β CI/CD workflow integration
Technical Implementation:
# scripts/gem-publish.sh (700+ lines)
- analyze_commits() # Determine version bump
- generate_changelog() # Create release notes
- run_tests() # Validate build
- build_gem() # Create .gem package
- publish_to_rubygems() # Upload
- create_github_release() # Tag and release
Metrics:
- Release time: <5 minutes (automated) β
- Release consistency: 100% β
- Download count: 2,500+ (RubyGems) β
Planned Features (Roadmap)¶
Feature 11: Headless CMS Integration π΄¶
Priority: High Target Version: 0.23.0+ (Q2βQ3 2026) User Stories:
- As a content editor, I want a visual content management interface
- As a developer, I want to access content via REST API
- As a team, we want multi-author collaboration with roles
Acceptance Criteria:
- Content API (REST/GraphQL) for external consumption
- Visual front matter editor with live preview
- Multi-author support with role-based access
- Draft/publish workflow with approval process
- Content versioning and revision history
- External CMS adapter (Contentful, Strapi, Sanity)
Technical Requirements:
lib/cms/
βββ api.rb # REST API endpoints
βββ adapter.rb # CMS integration layer
βββ editor.rb # Visual editor backend
βββ permissions.rb # Role-based access control
Success Metrics:
- Content creation time: -50% vs manual markdown
- Editor adoption: 80% of content creators
- API response time: <100ms
Feature 12: Advanced Analytics Dashboard π΄¶
Priority: Medium Target Version: 0.8.0 (Q3 2026) User Stories:
- As a marketer, I want A/B testing for content optimization
- As a product manager, I want conversion funnel tracking
- As a designer, I want heatmap visualization
Acceptance Criteria:
- A/B testing framework with variant management
- Conversion funnel definition and tracking
- Heatmap integration (clicks, scrolls, hovers)
- Custom dashboard builder with widgets
- Real-time analytics with WebSocket updates
- Data export (CSV, JSON, PDF reports)
Technical Requirements:
# Enhanced PostHog configuration
posthog:
experiments:
enabled: true
funnels:
enabled: true
heatmaps:
enabled: true
custom_dashboards: true
Success Metrics:
- Conversion rate improvement: +20%
- Analytics engagement: 70% of site owners
- Dashboard customization: 50% create custom views
Feature 13: Visual Theme Customizer π‘¶
Priority: Medium Partially Shipped: v0.22.9 (Skin Editor & Palette Generator) Target for Full Completion: v0.8.0 (Q3 2026) User Stories:
- As a designer, I want to customize colors without editing CSS
- As a non-technical user, I want point-and-click theme editing
- As a developer, I want generated CSS based on customizations
Shipped (v0.22.9):
- β Skin editor with live color pickers for 9 gradient colors
- β Auto-generated palettes (primary tints, surface, semantic colors)
- β WCAG contrast ratio badges on all palette swatches
- β Random skin generation, save/load to localStorage
- β Export SVGs and copy CSS custom properties
- β Advanced SVG filter controls
Remaining:
- Real-time full theme preview with live updates
- Typography customization (fonts, sizes, weights)
- Layout adjustments (sidebar, header, footer)
- One-click theme presets (10+ built-in themes)
Technical Requirements:
Success Metrics:
- Theme customization rate: 40% of users
- Custom theme creation: 15% of users
- Accessibility compliance: 100% of generated themes
Feature 14: Multi-Language Support (i18n) π΄¶
Priority: Low Target Version: 0.9.0 (Q4 2026) User Stories:
- As a global content creator, I want multi-language site support
- As a translator, I want easy content translation workflows
- As a developer, I want automated language detection
Acceptance Criteria:
- Jekyll i18n plugin integration
- Language switcher component
- URL structure for language versions (/en/, /es/, /fr/)
- Translation workflow with POT/PO files
- Automatic language detection based on browser settings
- RTL (right-to-left) language support
Technical Requirements:
# _config.yml
languages: ["en", "es", "fr", "de", "ja"]
default_language: "en"
translations_dir: _data/i18n/
Success Metrics:
- Multi-language adoption: 20% of sites
- Translation coverage: >90% for supported languages
- User engagement: +30% for localized content
ποΈ Technical Architecture¶
System Architecture¶
graph TB
A[User] --> B[Install Script]
B --> C{Docker Available?}
C -->|Yes| D[Docker Environment]
C -->|No| E[Install Docker]
E --> D
D --> F[Jekyll Container]
F --> G[Bootstrap CDN]
F --> H[PostHog Analytics]
F --> I[Mermaid Diagrams]
F --> J[Content Rendering]
J --> K[Static Site]
K --> L[GitHub Pages]
K --> M[Azure Static Web Apps]
K --> N[Custom Hosting]
Technology Stack¶
Core Runtime:
- Ruby 2.7.0+ (language); Docker uses Ruby 3.3-slim
- Jekyll 3.9.5 (static site generator)
- Bundler 2.3+ (dependency management)
Frontend:
- Bootstrap 5.3.3 (CSS framework β vendored in
assets/vendor/) - Bootstrap Icons (vendored)
- Mermaid 10+ (diagrams β vendored)
- MathJax (mathematical notation β vendored)
- jQuery (optional)
Containerization:
- Docker (linux/amd64 platform)
- Docker Compose (orchestration)
Build Tools:
- GNU Make (command orchestration)
- Bash (automation scripts)
- GitHub Actions (CI/CD)
Analytics:
- PostHog (privacy-first analytics)
- Cookie Consent (GDPR/CCPA compliance)
Deployment Platforms:
- GitHub Pages (primary)
- Azure Static Web Apps
- Netlify, Vercel (compatible)
- Custom servers (Docker)
π¨ Design Requirements¶
Design Principles¶
- Mobile-First: All layouts designed for mobile, enhanced for desktop
- Accessibility: WCAG 2.1 AA compliance minimum
- Performance: Lighthouse score 90+ for all metrics
- Consistency: Bootstrap-based design system
- Flexibility: Customizable via CSS variables
Layout System¶
Hierarchy:
root.html (base)
βββ default.html (main wrapper)
β βββ home.html (homepage)
β βββ article.html (blog posts β replaces journals)
β βββ collection.html (content collections)
β βββ section.html (section index pages)
β βββ search.html (search results)
β βββ stats.html (statistics dashboard)
β βββ tag.html (tag pages)
β βββ note.html (developer notes)
β βββ notebook.html (Jupyter notebooks)
β βββ sitemap-collection.html (sitemap)
βββ landing.html (marketing pages)
βββ admin.html (admin dashboards)
βββ news.html (news index)
Responsive Breakpoints:
- xs: <576px (mobile)
- sm: β₯576px (mobile landscape)
- md: β₯768px (tablet)
- lg: β₯992px (desktop)
- xl: β₯1200px (large desktop)
- xxl: β₯1400px (extra large)
Color Palette¶
Primary Colors:
- Primary: #007bff (Bootstrap blue)
- Secondary: #6c757d (gray)
- Success: #28a745 (green)
- Danger: #dc3545 (red)
- Warning: #ffc107 (yellow)
- Info: #17a2b8 (cyan)
Theme Skins:
- Default (light)
- Dark (dark mode)
- High Contrast (accessibility)
Typography¶
Font Stack:
--font-family-sans-serif:
-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue",
Arial, sans-serif;
--font-family-monospace:
SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New",
monospace;
Scale:
- h1: 2.5rem
- h2: 2rem
- h3: 1.75rem
- h4: 1.5rem
- h5: 1.25rem
- h6: 1rem
- body: 1rem