Rustipo projects are organized around a simple model:
- Markdown = content
- themes = layout
- palettes = colors
- static = assets
- dist = generated output
rustipo new <site-name> generates:
<site-name>/
content/
index.md
about.md
resume.md
blog/
projects/
static/
favicon.svg
custom.css (optional)
custom.scss (optional)
themes/
default/
templates/
static/
theme.toml
palettes/ (optional)
dracula.toml
config.toml
examples/basic-portfolio/: starter personal-site exampleexamples/journal/: blog-focused editorial exampleexamples/knowledge-base/: docs-and-notes example with nested pagessite/: the main in-repo docs site built with Rustipo itself
config.toml: the main site configuration file- site title, description, selected theme, selected palette, layout settings, and typography settings live here
content/: Markdown source content for pages, blog posts, and projectsindex.mdis the homepage- standalone pages such as
about.mdandresume.mdbecome normal site pages - generic custom pages can be nested (for example
content/notes/rust/tips.md) - nested
index.mdworks as a directory index (content/notes/index.md->/notes/) blog/andprojects/stay special one-level sections
themes/: layout themestemplates/contains reusable Tera templatesstatic/contains theme CSS, optionalstyle.scss, and theme assetstheme.tomlcontains theme metadata- local project themes live here when you want to override or add custom layouts
- built-in themes are embedded in Rustipo and selectable without copying files into the project:
atlasjournal
palettes/(optional): local palette overrides and custom color schemes (*.toml)- built-in palettes are embedded in Rustipo and selectable without copying files into the project:
draculadefaultcatppuccin-frappecatppuccin-lattecatppuccin-macchiatocatppuccin-mochagruvbox-darktokyonight-stormtokyonight-moon
static/: user-provided assets copied into the output- images, fonts, JavaScript files, favicons, and optional
custom.cssorcustom.scssbelong here static/custom.cssremains the plain CSS default for site overridesstatic/custom.scssis optional and compiles todist/custom.css
- images, fonts, JavaScript files, favicons, and optional
dist/: generated static output (created by build step)
config.tomlcan define style knobs undersite.layoutandsite.typography- common settings include:
content_widthtop_gapvertical_alignline_heightbody_fontheading_fontmono_font
- local font files can live under
static/fonts/and be referenced from[[site.typography.font_faces]]