A not-so-static site generator that creates unique, content-aware web pages using AI.
Unshackled takes a directory of posts and a layout template, then uses Claude (Anthropic's LLM) to generate the final HTML for each page. Unlike traditional static site generators that produce uniform layouts, Unshackled creates completely unique styling for every page that matches the content's mood and theme.
- Single binary: Like Hugo, just one executable to generate your site
- AI-powered styling: Each page gets unique CSS that fits its content
- Diverse aesthetics: Pages can look minimalist, retro 90s, MySpace-era, terminal-style, etc.
- Markdown support: Write your posts in markdown
- No theme limitations: Every page can look completely different
cargo build --release- Set your Anthropic API key:
export ANTHROPIC_API_KEY=your_api_key_here- Create a posts directory with markdown files:
mkdir posts
echo "# Hello World\n\nThis is my first post!" > posts/hello.md- Create a base layout template:
cat > layout.html << EOF
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>{{TITLE}}</title>
</head>
<body>
<main>{{CONTENT}}</main>
</body>
</html>
EOF- Generate your site:
./target/release/unshackledYour generated site will be in the out/ directory!
- Discovery: Finds all
.mdfiles in your posts directory - Processing: For each post, Claude analyzes the content and creates a unique HTML page with custom styling
- Output: Generates completely styled HTML files in the output directory
Each page gets its own visual identity - serious posts might get minimal styling, tech nostalgia posts might get terminal green-on-black themes, fun content might get colorful MySpace-style layouts.
With these posts:
minimal-thoughts.md→ Clean, brutalist designtech-nostalgia.md→ Retro terminal aesthetichello-world.md→ Friendly, welcoming layout
Each becomes a uniquely styled HTML page that enhances the reading experience.