Getting started
Learn what EmuView is and how to go from zero to your first API call in under five minutes.
#What is EmuView?
EmuView is an API-first Backend-as-a-Service (BaaS) running on Cloudflare Workers. It gives you a complete backend — database, auth, file storage, real-time events, and automation — accessible through REST APIs.
You define collections (database tables) and their fields, set permissions, and EmuView generates a full CRUD API for each one. Your frontend talks to EmuView over HTTPS. No backend code required.
#What you can do
| Capability | What it does |
|---|---|
| Collections | Define tables with 23 field types. Get instant CRUD endpoints with filtering, sorting, pagination, and search |
| Auth | Email/password, magic links, 2FA, Google/GitHub OAuth — session tokens or API keys |
| Files | Upload to Cloudflare R2 via presigned URLs. Auto-thumbnails for images. 5 GB default quota |
| RBAC | 6 built-in roles, custom roles, row-level and column-level security, per-collection access policies |
| Real-time | SSE streams for dashboards, WebSocket (Durable Object) for chat and collaboration |
| Automation | Event triggers, webhooks, cron schedules, AI operations, email — a full library of built-in operations |
#Key concepts
| Concept | What it means |
|---|---|
| Collection | A database table with an auto-generated API. You define the fields, EmuView handles the rest |
| Record | A single row in a collection |
| Field | A column in a collection, defined with one of 23 types (text, number, relation, file, and others) |
| API key | A sk- prefixed token for server-side access. Send it as a Bearer token |
| Session token | A token obtained by signing in. Used for client-side authentication |
#How it fits together
┌─────────────────────┐ ┌──────────────────────────────────────┐
│ Your Frontend │ │ EmuView │
│ │ │ │
│ Svelte / React / │ HTTPS │ ┌─ Auth (email, OAuth, magic link) │
│ Vue / Vanilla JS │ ────────→│ ├─ Collections (CRUD API) │
│ │ JSON │ ├─ Files (R2 storage) │
│ Cloudflare Pages │ ←────────│ ├─ Real-Time (SSE + WebSocket) │
│ Vercel / Netlify │ │ ├─ Automation (flow engine) │
│ or anywhere │ │ └─ RBAC (roles, row/column security)│
└─────────────────────┘ └──────────────────────────────────────┘
Your frontend can be built with any framework and hosted anywhere. EmuView runs on Cloudflare Workers and stores data in Cloudflare D1 (SQLite), files in R2, and session caches in KV:
flowchart LR
Client["Your frontend<br>SDK or fetch"] -->|HTTPS + JSON| GW["Gateway Worker<br>auth, RBAC, routing"]
GW --> D1[("D1<br>collections and records")]
GW --> R2[("R2<br>file storage")]
GW --> KV[("KV<br>session and policy caches")]Every request passes through the gateway Worker, which handles authentication, access control, and routing before touching storage. The full endpoint surface is documented in the API reference.
#Guides in this section
- For developers — Building an app on EmuView? Start here: SDK, data modelling, queries, auth, files, and automation in one guided tour
- 5-minute quickstart — Sign up, create a collection, add data, and query the API
- Create your first collection — Define a schema with fields and verify the generated API
- Make your first API call — Authenticate and query records with HTTP and the SDK