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 buildnode dist/cli.js ./examples/crud.cssExamples 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