Small commands.
Real possibilities.
A practical scripting language for people who want to see what their code is doing. Work with data, connect services, and build web responses—one explicit instruction at a time.
function main 0
var name
set $name "World"
print "Hello, " $name "!\n"
kill mainHello, World!▌
JSON / CSV · SQLite · MySQL / MariaDB · SQL Server · HTTP / TLS · WebSockets
Your field guide to Vanilla.
Start with the essentials. Keep the details within reach.
Start here
From a blank file to a working script.
↗02Writing code
Learn the language by building small, readable programs.
↗03Language reference
Syntax, values, functions, loops, math and strings.
↗04Examples
Copy, download and run small complete programs.
↗05JSON, files & HTTP
Structured data, input, recoverable errors and bounded HTTP.
↗06SQLite, CSV & dates
Typed functions, snapshot iteration, local data and tests.
↗07Remote databases
Parameterized queries, transactions and private connection profiles.
↗08Networking
TCP, DNS, TLS, UDP and WebSocket APIs and limits.
↗09Apache CGI
Generate HTML and JSON with a supervised per-request interpreter.
↗10Security & limits
Feature permissions, resource budgets and trust boundaries.
↗11Build & tooling
Native Linux tooling, explicit dependencies and honest release boundaries.
↗12History
Preserved source, restoration choices and the modern language.
↗Explicit permissions.
Documented limits.
Files, networking, listeners and databases have opt-in capability gates. Those gates are not a sandbox. The handbook explains what is bounded, what can have side effects, and where external isolation is still necessary.
Understand the security model →