5-Minute Quickstart
Go from nothing to a working REST + GraphQL API in one terminal.
Prerequisites
Section titled “Prerequisites”- Docker and Docker Compose installed
That’s it. No database, no language runtime, no FraiseQL binary needed.
-
Clone the starter
Terminal window git clone https://github.com/fraiseql/fraiseql-starter-minimal.gitcd fraiseql-starter-minimal -
Start everything
Terminal window docker compose upThis starts PostgreSQL and FraiseQL together. Wait for:
INFO FraiseQL v2.1 starting…INFO Schema compiled — 2 types, 2 queries, 1 mutationINFO Connected to PostgreSQL at db:5432/fraiseqlINFO GraphQL endpoint: http://localhost:8080/graphql -
Query via REST
Terminal window curl http://localhost:8080/rest/v1/posts{"data": [],"count": 0,"limit": 20,"offset": 0} -
Query via GraphQL
Terminal window curl -s http://localhost:8080/graphql \-H 'Content-Type: application/json' \-d '{"query":"{ posts { id title } }"}'{ "data": { "posts": [] } } -
Create a record
Terminal window curl -s http://localhost:8080/graphql \-H 'Content-Type: application/json' \-d '{"query":"mutation { createPost(title: \"Hello FraiseQL\", content: \"It works.\") { id title } }"}'Now re-run the REST or GraphQL query from step 3 or 4 — your post is there.
What just happened?
Section titled “What just happened?”The starter contains a Python schema (schema.py), a SQL migration (migrations/), and a fraiseql.toml config. Docker Compose ran the migration, compiled the schema to a JSON artifact, and started the Rust server — all in one command. The same data is queryable via REST and GraphQL simultaneously.
Next steps
Section titled “Next steps”- Manual Setup — install FraiseQL locally, use your own database
- Your First API — full walkthrough with Confiture migrations
- Starter Templates — blog, SaaS multi-tenant, and auth starters