This site runs on jq for all processing and jqx for all rendering. No JavaScript frameworks, no Node, no 400 MB of dependencies—just jq and a little Python to hold it together.
Every YAML→JSON conversion, state update, and route decision is driven by jq. The YAML parser itself is written in jq (yaml.jq, run.jq). So is the state validator (state.jq). When you paste YAML and click Convert, the server pipes your input into jq and gets JSON back.
Example: converting YAML to JSON is literally this pipeline:
jq -R -s -f run.jq # stdin = YAML, stdout = JSON
State validation (e.g. POST /state) is jq reading the request and current state and outputting the new state:
jq -f state.jq # stdin = { request, current_state }, stdout = { valid, new_state }
All HTML pages (including this one) are produced by jqx: a small jq-based template engine. Templates use {variable} substitution, <If name>...</If> conditionals, <For item list>...</For> loops, and <Header />-style includes. The engine is one jq script (jqx.jq) that expands the template with the given JSON vars.
Example: a template fragment and the vars passed in:
# Template (e.g. header.jqx):
Visitor count: <If count_is_zero>No visitors</If><If count_gt_0>{count}</If>
# Vars: { "count": 3, "count_is_zero": false, "count_gt_0": true }
# Output: Visitor count: 3
The main index, error pages (404, 400, 401), and this built_with page are all jqx templates rendered with jq.
Everything is open source. Check out the repo: