A file-first publishing compiler
A tiny, file-based CMS
for a simpler web.
A tiny, database-free publishing compiler. Write content in YAML or JSON, shape it with TSX, and ship plain server-rendered HTML.
npm install @carl.fyi/tinyjsRequires Node.js 22 or newer.
template: home
title: A small site
content: Files in. HTML out.
markdown: |
Write **safe Markdown**.
Keep your content portable.200 OK
/ → dist/index.htmlA deliberately small system
Everything you need.
Nothing between you and the HTML.
Content stays portable
Pages are complete YAML or JSON documents. No database, proprietary editor, or frontmatter format.
site.yamlpages/01_about/page.yamltemplates/TSX, minus the browser
Use typed TSX as a server-side template language—without React, hydration, a virtual DOM, or client JavaScript.
One renderer
Build static files or serve on demand. Both adapters call the same render function and return the same HTML.
From zero to site
A three-command workflow.
- 01
Install
npm install @carl.fyi/tinyjs - 02
Preview
npx tinyjs serve - 03
Build
npx tinyjs build
Small is a feature
Own every file.
Understand every layer.
TinyJS keeps publishing close to the web platform: structured content, server-side templates, and ordinary HTML.
Explore the documentation