Skip to content

KAN-208/create-a-landing-page-for-the-project#169

Merged
fulsomenko merged 30 commits intodevelopfrom
KAN-208/create-a-landing-page-for-the-project
Feb 21, 2026
Merged

KAN-208/create-a-landing-page-for-the-project#169
fulsomenko merged 30 commits intodevelopfrom
KAN-208/create-a-landing-page-for-the-project

Conversation

@fulsomenko
Copy link
Owner

@fulsomenko fulsomenko commented Feb 21, 2026

Summary

Create a professional landing page for the kanban project at kanban.yoon.se, showcasing the application's capabilities, features, and installation methods. The page matches the yoon.se design system with a terminal-inspired dark theme.

What

  • Landing page (web/index.html) with 5 main sections:

    • Hero section with project tagline and installation CTAs
    • Features grid highlighting vim power, speed, three interfaces, task management, developer workflow, and local-first approach
    • Installation section with three methods (cargo, nix, from source)
    • Roadmap section with completed/planned items using checkbox notation matching TUI
    • Footer with links and project metadata
  • Responsive design (web/styles.css):

    • Dark terminal aesthetic (GitHub Dark theme: #0d1117 bg, #c9714a accent)
    • Monospace typography (SF Mono) for headings
    • Responsive grid: 3 columns desktop, 2 columns tablet, 1 column mobile
    • Clean spacing with no border-radius (sharp terminal style)
  • Terminal-style code blocks with custom orange prompt styling ($)

    • No external dependencies for code display
    • Clean, minimal HTML with CSS-only styling
  • Nix build support (web/default.nix + flake.nix):

    • Static site derivation for reproducible deployments
    • Added kanban-web package to flake outputs
    • Ready for production deployment to kanban.yoon.se

Why

The kanban project lacked a dedicated landing page despite being production-ready (v0.2.0). This page serves as the primary entry point at kanban.yoon.se, helping users quickly understand:

  • What kanban is (keyboard-driven project management in the terminal)
  • Why they should use it (vim-like power, three interfaces, local-first)
  • How to install it (multiple methods for different workflows)
  • What's coming next (transparent roadmap)

The design matches the yoon.se ecosystem for brand consistency.

How

  1. Design System Integration: Replicated yoon design system tokens (colors, typography, spacing) from ~/yoon/libs/design-system
  2. Content Structure: Semantic HTML5 with proper heading hierarchy and meta tags for SEO
  3. Responsive Layout: CSS Grid with mobile-first breakpoints
  4. Code Block Styling: CSS-only approach with .prompt class for terminal-style command prompts
  5. Nix Build: Simple derivation that copies static files for distribution

Testing

  • Visual inspection in browser (desktop, tablet, mobile viewports)
  • HTML validates (semantic structure, proper nesting)
  • CSS has no errors (no unused rules, clean selectors)
  • All links functional (GitHub, Crates.io, docs)
  • Responsive layout verified at 480px, 768px, 1200px breakpoints
  • Terminal prompt styling displays correctly with CSS
  • Nix build works: nix build .#kanban-web produces valid output
  • Page loads quickly with minimal file size (~19KB HTML+CSS, no external assets)

Files Changed

  • web/index.html - Landing page structure (148 lines)
  • web/styles.css - Design system and responsive styles (531 lines)
  • web/default.nix - Nix derivation for static site
  • flake.nix - Added kanban-web package output

Deployment

Ready for deployment to kanban.yoon.se:

nix build .#kanban-web
cp -r result/* /var/www/kanban.yoon.se/

Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/2dad7af78a183b6c486702c18af8a9544f298377?narHash=sha256-LYr4IDfuihCkFAkSYz5//gT2r1ewcWBYgd5AxPzPLIo%3D' (2025-10-09)
  → 'github:NixOS/nixpkgs/d1c15b7d5806069da59e819999d70e1cec0760bf?narHash=sha256-b9uG8yN50DRQ6A7JdZBfzq718ryYrlmGgqkRm9OOwCE%3D' (2026-02-16)
• Updated input 'rust-overlay':
    'github:oxalica/rust-overlay/dec08d5dfeca099b0058f0cc61264b04f33db42c?narHash=sha256-jPz0K8xsT2eNSratkw8bfPwSlTuOXGeUvz%2Bbd9wq/vY%3D' (2025-10-07)
  → 'github:oxalica/rust-overlay/85078369717bdbe1f266c9eaad5e66956fb6feea?narHash=sha256-4zOvSi0WkS2WAaoJtM28wECtS9S%2BL38CPYbhF%2BwINDA%3D' (2026-02-21)
- Create web/default.nix for building static site
- Add kanban-web package to flake.nix
- Static files (HTML, CSS, GIF) packaged for deployment
- Removed .demo-gif (not in HTML)
- Removed .cta-buttons (refactored)
- Removed .code-prompt (refactored)
- Removed .quick-start-title (not in HTML)
- Removed .status-badge.in-progress (unused)
- Add highlight.js library via CDN with atom-one-dark theme
- Add language-sh class to all code blocks
- Initialize highlighting on page load
- Provides color-coded shell syntax for all installation commands
- Wrap $ prompts in span.prompt class
- Style prompts with orange accent color and semibold weight
- Applied to all code blocks (cargo, nix, git, etc.)
- Remove language-sh class so highlight.js doesn't override inline styles
- Simplify CSS without !important rules
- Prompt $ now displays correctly in orange
@fulsomenko fulsomenko force-pushed the KAN-208/create-a-landing-page-for-the-project branch from f79c9c6 to 5a09dd7 Compare February 21, 2026 14:50
Removes highlight.js stylesheet and initialization script that were not functional (all code blocks use nohighlight class). This eliminates 2 unnecessary HTTP requests and ~150KB of external dependencies.
Removes redundant inline style="color: #c9714a;" attributes from prompt spans. The .prompt CSS class already provides this styling, so inline styles are unnecessary duplication.
Wrap the shell comment "# or" in a span with the comment class for visual distinction, providing styling similar to syntax highlighting without external dependencies.
Define .comment class with muted text color and italic font style for visual distinction of shell comments in code blocks.
- Change user-select from 'all' to 'text' for better UX when selecting individual lines in code blocks
- Remove unnecessary .install-method:last-child border-bottom rule (no borders were applied between install methods)
@fulsomenko fulsomenko merged commit a0e890d into develop Feb 21, 2026
7 checks passed
@fulsomenko fulsomenko deleted the KAN-208/create-a-landing-page-for-the-project branch February 21, 2026 16:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant