THE MODULAR WEB FRAMEWORK

Build what comes next.

Get a working endpoint from one TypeScript file. Add a CMS, login or messaging when you need them.

One file to get started.
01 / FOUNDATION

Start small. Extend deliberately.

Start with one action. Keep adding only what your project needs, from API endpoints to editable pages.

⌁

Familiar Web APIs

Use TypeScript and Web-standard requests. Run on Deno, Bun or Node.

↗
▦

Add features when needed

Login, CMS and messaging are modules. Your first endpoint needs none of them.

↗
◎

Database ready

SQLite works without setup. PostgreSQL and MySQL are available when you need them.

↗
02 / FIRST STEPS

From zero to endpoint.

One file is enough to make a URL respond. Follow the short guide, copy the example and open it in your browser.

Your first app
server.ts
import { Access, App, sys } from "@qino/qino";

const app = new App();
app.apiTree = {
  hello: {
    get: {
      access: Access.PUBLIC,
      execute: () => ({ message: "Hello from Qino" }),
    },
  },
};

await app.init();
sys.serve({ port: 8080 }, app.fetch);
GET /api/hello→{ "message": "Hello from Qino" }