A PostCSS-based backend framework that lets you write server logic in CSS syntax.
css-server parses CSS files with custom syntax and compiles them into an Express.js server. It supports:
- HTTP routing via CSS selectors (
[path="/users"]:GET) - SQLite database queries via
sql()function - Request data extraction (params, query, body, headers)
- Conditional logic via
if()expressions - Dynamic status codes and responses
pnpm install pnpm build
node dist/cli.js ./examples/crud.css
Examples live in ./examples/.
@server { port: env(PORT, 3000); database: env(DATABASE, ./app.db); } @database { CREATE TABLE users ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, email TEXT ); } [path="/users"]:GET { @return json(sql("SELECT * FROM users")); } [path="/users/:id"]:GET { --id: param(:id); --user: sql("SELECT * FROM users WHERE id = ?", var(--id)); @return json(if(--user: var(--user); else: { "error": "Not found" })); } [path="/users"]:POST { --name: body(name); --email: body(email); @return json(sql("INSERT INTO users (name, email) VALUES (?, ?)", var(--name), var(--email))); }
Usage: css-server <file>
pnpm testMIT