A high-performance static site generator with Typst and Markdown support.
- π Blazing Fast - Built in Rust for maximum performance
- π Dual Format - Write in Markdown or Typst
- π Built-in Search - Tantivy powered full-text search with WASM runtime
- π Multi-language - First-class i18n support
- π Live Reload - Instant feedback during development
- π Syntax Highlighting - 100+ languages supported
- π° RSS & Sitemap - Automatic feed generation
- π¨ Customizable - Templates, themes, and styles
cargo install typstifygit clone https://github.com/longcipher/typstify
cd typstify
cargo install --path bin/typstifymkdir my-site && cd my-siteCreate config.toml:
[site]
title = "My Blog"
base_url = "https://example.com"
[build]
output_dir = "public"mkdir -p content/posts
typstify new posts/hello-worldtypstify watch --openYour site is now running at http://127.0.0.1:3000!
| Command | Description |
|---|---|
typstify build |
Build the site for production |
typstify watch |
Start dev server with live reload |
typstify new <path> |
Create new content from template |
typstify check |
Validate configuration and content |
typstify build --output dist # Custom output directory
typstify build --drafts # Include draft poststypstify watch --port 8080 # Custom port
typstify watch --open # Open browser automaticallytypstify -c site.toml build # Custom config file
typstify -v build # Verbose output
typstify -vvv build # Debug outputmy-site/
βββ config.toml # Site configuration
βββ content/ # Content files
β βββ posts/ # Blog posts (Markdown/Typst)
β βββ docs/ # Documentation
β βββ about.md # Static page
βββ templates/ # HTML templates (optional)
βββ style/ # CSS/Tailwind (optional)
βββ assets/ # Static assets
βββ public/ # Generated output
---
title: "My Post"
date: 2024-01-15
tags: ["rust", "web"]
---
# Hello World
Your content here...// typstify:frontmatter
// title: "Technical Doc"
// date: 2024-01-15
= Introduction
Your Typst content here...See docs/configuration.md for full configuration options.
[site]
title = "My Site"
description = "Site description"
base_url = "https://example.com"
default_language = "en"
languages = ["en", "zh"]
[build]
output_dir = "public"
minify = false
syntax_theme = "base16-ocean.dark"
drafts = false
[search]
enabled = true
index_fields = ["title", "body", "tags"]
[rss]
enabled = true
limit = 20Typstify is organized as a Cargo workspace:
| Crate | Description |
|---|---|
typstify |
CLI binary |
typstify-core |
Configuration and content types |
typstify-parser |
Markdown/Typst parsing |
typstify-generator |
HTML generation and build |
typstify-search |
Search indexing (Tantivy) |
typstify-search-wasm |
WASM search runtime |
typstify-ui |
Leptos UI components |
- Rust 1.75+
- Bun (for CSS/JS tooling)
- wasm-pack (for WASM builds)
git clone https://github.com/longcipher/typstify
cd typstify
just devjust format # Format code
just lint # Run linters
just test # Run all tests
just build # Production buildApache License 2.0 - see LICENSE for details.
Contributions are welcome! Please read our Contributing Guide before submitting a PR.