Files
lux/website/lux-site
Brandon Lucas fe985c96f5 feat: redesign website to showcase all Lux capabilities
- New tagline: "The Language That Changes Everything"
- Highlight 6 key features: algebraic effects, behavioral types,
  schema evolution, dual compilation, native performance, batteries included
- Add sections for behavioral types (is pure, is total, is idempotent)
- Add section for schema evolution with migration examples
- Add section for dual compilation (C and JavaScript)
- Add "Why Lux?" comparisons (vs Haskell, Rust, Go, TypeScript, Elm, Zig)
- Add built-in effects showcase (Console, File, Http, Sql, etc.)
- Add developer tools section (package manager, LSP, REPL, etc.)
- Fix navigation to use anchor links (single-page site)
- Update footer to link to GitHub docs/examples
- Add README with local testing instructions

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-16 06:59:16 -05:00
..

Lux Website

Testing Locally

The website is a static HTML site. To test it with working navigation:

Option 1: Python (simplest)

cd website/lux-site/dist
python -m http.server 8000
# Open http://localhost:8000

Option 2: Node.js

npx serve website/lux-site/dist
# Open http://localhost:3000

Option 3: Nix

nix-shell -p python3 --run "cd website/lux-site/dist && python -m http.server 8000"

Option 4: Direct file (limited)

Open website/lux-site/dist/index.html directly in a browser. Navigation links will work since they're anchor links (#features, #effects, etc.), but this won't work for multi-page setups.

Structure

website/lux-site/
├── dist/
│   ├── index.html      # Main website
│   └── static/
│       └── style.css   # Styles
├── src/
│   ├── components.lux  # Lux components (for future generation)
│   ├── pages.lux       # Page templates
│   └── generate.lux    # Site generator
├── LUX_WEAKNESSES.md   # Issues found during development
└── README.md           # This file

Building with Lux

Once the module system is working (fixed!), you can generate the site:

./target/release/lux website/lux-site/src/generate.lux

The HTML module is now functional and can render HTML from Lux code:

import stdlib/html

let page = html.div([html.class("container")], [
    html.h1([], [html.text("Hello!")])
])

Console.print(html.render(page))
// Output: <div class="container"><h1>Hello!</h1></div>

Deployment

For GitHub Pages or any static hosting:

# Copy dist folder to your hosting
cp -r website/lux-site/dist/* /path/to/deploy/