Version History & Progress Log#
Project Overview#
This document tracks the evolution of the Education Playground project, which consists of two integrated components:
CodeBridge Labs Landing Page - B2B marketing site for schools
Coding Playground - Interactive learning platform (Jupyter Book)
Version 3.0 (November 13, 2025) - Dark Mode & UX Fixes#
Issues Identified#
Dark mode completely broken on Coding Playground
Orange announcement banner covering top of screen
Mixed light/dark mode sections on landing page
Poor content alignment and centering throughout
Inconsistent spacing and layout
Fixes Implemented#
Coding Playground#
Dark Mode Implementation:
Added automatic dark mode detection via
@media (prefers-color-scheme: dark)queriesImplemented CSS variables system for theme consistency
Fixed all UI components to respect dark mode:
Welcome modal and onboarding flow
Choice cards and interactive elements
Code blocks and syntax highlighting
Tables and data displays
Sidebar navigation
All text and backgrounds
UX Improvements:
Removed orange announcement banner (
_config.yml)Improved content alignment with max-width: 1000px
Better spacing for sections, lists, and paragraphs
Centered images and figures properly
Enhanced typography and readability
Consistent padding throughout the interface
Color Palette:
Light Mode: Green primary (#4CAF50), Purple gradient secondary (#667eea to #764ba2)
Dark Mode: Lighter green (#66bb6a), dark backgrounds (#1a1a1a, #242424, #2d2d2d)
CodeBridge Landing Page#
Design Decisions:
Disabled dark mode auto-detection to maintain consistent professional appearance
B2B sites work best with uniform light themes for trust and accessibility
Fixed inconsistent section backgrounds (removed mixed light/dark)
Layout Improvements:
Fixed card alignment issues across all sections
Implemented
flex flex-col h-fullpattern for equal-height cardsUsed
flex-1for expandable content andmt-autofor bottom-anchored elementsStandardized gap spacing to
gap-8throughoutPerfect symmetry in Problem, How It Works, and Results sections
Files Modified#
_config.yml- Removed announcement banner_static/css/custom.css- Complete dark mode and layout overhaul (1,191 lines → 1,247 lines)codebridge-landing/app/globals.css- Forced light mode for consistencycodebridge-landing/components/Problem.tsx- Card alignmentcodebridge-landing/components/HowItWorks.tsx- Gap spacing and card heightscodebridge-landing/components/Results.tsx- Testimonial card alignment
Technical Highlights#
Automatic dark mode via CSS media queries (no JavaScript required)
CSS Custom Properties for maintainable theming
Flexbox layout patterns for responsive equal-height cards
Mobile-first responsive design principles
Version 2.0 (November 12-13, 2025) - Landing Page Integration#
Major Features#
CodeBridge Labs Landing Page:
Modern Next.js 16 (Turbopack) landing page
Full B2B marketing site with 6 main sections:
Hero with gradient background and CTAs
Problem/Solution positioning (Why Schools Choose Us)
How It Works (3-step process)
Courses catalog (6 course offerings)
Results & Testimonials
Pricing inquiry with custom quote form
Integration Strategy:
Landing page sits at root URL
“Start Learning” button navigates to Jupyter Book content
Unified color palette across both sites
Consistent branding and design language
Infrastructure:
GitHub Pages deployment via
deploy.shautomationStatic export using Next.js with
output: 'export'PostHog analytics integration (ready for activation)
A/B testing framework documented in
AB_TESTING_STRATEGY.md
Color Unification (Version 2.1)#
Primary: Green (#4CAF50) for action buttons and primary interactive elements
Secondary: Purple gradient (#667eea to #764ba2) for hero sections and highlights
Navy: #0D1B2A for headings and professional text
Backgrounds: White (#FFFFFF) and Soft Gray (#F3F4F6)
Card Alignment Fixes (Version 2.2)#
Fixed varying heights in grid layouts
Implemented equal-height card pattern using Flexbox
Proper content distribution within cards
Anchored elements (like testimonial author info) to card bottoms
Documentation Created#
ARCHITECTURE.md- System architecture and design decisionsQUICK_START.md- Daily operations guideAB_TESTING_STRATEGY.md- A/B testing playbookANALYTICS_SETUP.md- PostHog integration guide
Version 1.0 (Original) - Jupyter Book Foundation#
Core Features#
Interactive Learning Platform:
Jupyter Book-based educational content
Multiple skill levels: Beginner, Easy, Medium, Hard
Python, Data Science, ML/AI, and GPU Computing content
50+ lessons and tutorials
Interactive Onboarding:
Smart onboarding flow to guide new users
Skill level assessment
Personalized learning path recommendations
Progress tracking with localStorage
Content Organization:
beginner_scripts/- 10 simple lessons for absolute beginnerseasy/- Introduction to Python fundamentalsmedium/- Functions, OOP, data structureshard/- Advanced topics: ML, CUDA, CTF challenges
Features:
Colab integration for running notebooks
Progress tracking and completion badges
“Continue Learning” banner for returning users
Mobile-responsive design
Quick navigation menus
Design Philosophy Evolution#
Version 1.0: Educational Focus#
Focused purely on content delivery
Simple, clean interface
Jupyter Book default theming with minimal customization
Version 2.0: Professional Polish#
Added professional landing page for B2B marketing
Dual-purpose: direct learning access + school outreach
Unified branding between marketing and product
Analytics and A/B testing infrastructure
Version 3.0: User Experience Excellence#
Accessibility improvements (dark mode support)
Better visual hierarchy and content organization
Polished, professional appearance throughout
Consistent, predictable layout patterns
Technical Stack#
CodeBridge Landing Page#
Framework: Next.js 16 (Turbopack)
Styling: Tailwind CSS 4
Deployment: GitHub Pages (static export)
Analytics: PostHog (ready for activation)
Coding Playground#
Generator: Jupyter Book
Build System: Sphinx
Styling: Custom CSS with CSS Variables
JavaScript: Vanilla JS for onboarding and progress tracking
Deployment: GitHub Pages
Deployment Infrastructure#
Repository: github.com/mykolas-perevicius/Education_Playground
Landing Page Repo: github.com/mykolas-perevicius/codebridge-landing (submodule)
Automation:
deploy.shscript for one-command deploymentCI/CD: ghp-import for gh-pages branch management
Known Issues & Future Improvements#
Resolved in Version 3.0#
✅ Dark mode implementation
✅ Orange banner removal
✅ Landing page color consistency
✅ Content alignment and centering
Potential Future Enhancements#
Manual dark mode toggle (currently auto-detects only)
Rebuild Jupyter Book to fix KeyError: ‘anchorname’ issue
Activate PostHog analytics for conversion tracking
Implement A/B testing for landing page optimization
Add more interactive elements (quizzes, code challenges)
User authentication and cloud progress sync
Certificate generation for course completion
Integration with LMS platforms
Deployment History#
Date |
Version |
Deployment |
Changes |
|---|---|---|---|
Nov 13, 2025 |
3.0 |
df18f30 |
Dark mode, UX fixes, alignment improvements |
Nov 13, 2025 |
2.2 |
90b70c8 |
Card alignment fixes across all sections |
Nov 12, 2025 |
2.1 |
8f9ef59 |
Color palette unification |
Nov 12, 2025 |
2.0 |
Initial |
Landing page integration |
Earlier |
1.0 |
- |
Original Jupyter Book platform |
Design Decisions & Rationale#
Why Disable Dark Mode on Landing Page?#
B2B marketing sites benefit from consistent, predictable appearance. Dark mode can:
Look unprofessional in corporate environments
Create inconsistency in screenshots and marketing materials
Reduce trust due to unexpected appearance changes
Complicate A/B testing and analytics
Why Green Instead of Blue?#
Green (#4CAF50) represents growth, learning, and success
Better accessibility (higher contrast options)
Differentiates from generic “tech blue” aesthetic
Warmer, more approachable feel for educational content
Why Purple Gradient for Secondary?#
Purple (#667eea to #764ba2) represents creativity and innovation
Creates visual interest without overwhelming
Works well for hero sections and highlights
Complements green primary without clashing
Why Max-Width 1000px for Content?#
Optimal line length for readability (45-75 characters)
Prevents eye strain from reading wide lines
Creates pleasant white space on large screens
Maintains focus on content over navigation
Metrics & Success Indicators#
User Experience (Version 3.0)#
✅ No visual glitches or broken layouts
✅ Consistent theming across light and dark modes
✅ Proper alignment and spacing throughout
✅ Mobile-responsive on all screen sizes
✅ Professional appearance suitable for B2B marketing
Technical Performance#
✅ Fast load times (static site)
✅ No JavaScript errors
✅ Smooth animations and transitions
✅ Accessibility (dark mode support)
✅ SEO optimized (static HTML)
Future Metrics (PostHog)#
Landing page conversion rate
Onboarding completion rate
Lesson completion rate
Time spent per lesson
Return visitor rate
A/B test performance
Contributors#
Mykolas Perevicius - Project Owner & Developer
Claude (Anthropic) - AI Development Assistant
Last Updated: November 13, 2025 Current Version: 3.0 Status: Production Ready ✅