Typstify
A high-performance static site generator with Typst and Markdown support.
Features
- 🚀 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
Crates
Typstify is a modular project composed of several crates:
Installation
From Cargo
From Source
Quick Start
1. Create a New Site
&&
2. Create Configuration
Create config.toml:
[]
= "My Blog"
= "https://example.com"
[]
= "public"
3. Create Content
4. Build & Preview
Your site is now running at http://127.0.0.1:3000!
Commands
| 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 |
Build Options
Watch Options
Global Options
Project Structure
my-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
Content Formats
Markdown
title: "My Post"
date: 2024-01-15
tags: ["rust", "web"]
Your content here...
Typst
// typstify:frontmatter
// title: "Technical Doc"
// date: 2024-01-15
= Introduction
Your Typst content here...
Configuration Reference
See docs/configuration.md for full configuration options.
Basic Configuration
[]
= "My Site"
= "Site description"
= "https://example.com"
= "en"
= ["en", "zh"]
[]
= "public"
= false
= "base16-ocean.dark"
= false
[]
= true
= ["title", "body", "tags"]
[]
= true
= 20
Documentation
Architecture
Typstify 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 |
Development
Prerequisites
- Rust 1.75+
- Bun (for CSS/JS tooling)
- wasm-pack (for WASM builds)
Setup
Commands
License
Apache License 2.0 - see LICENSE for details.
Contributing
Contributions are welcome! Please read our Contributing Guide before submitting a PR.