Databases & cache
MongoDB, Redis, R2 — first-class services you don't operate. Add one in a sentence, Loor provisions, monitors, and backs it up.
What ships today
| Service | Versions | Use it for |
|---|---|---|
| MongoDB | 6 · 7 | Primary document store · users, sessions, app data. |
| Redis | 7 | Cache, queues, pub/sub. |
| R2 (object storage) | — | Files, uploads, backups. See Storage. |
| — | Magic links, notifications, transactional. Wired via Brevo / Resend. |
Each service is a first-class entry in loor.json.
Adding a service
The fastest way: ask Vibe Chat — "I need MongoDB for users and sessions". The chat edits
loor.json, adds a service block, and updates your code to use the injected env var.
You can also click + Service in the project sidebar.
Connecting from code
Loor injects a connection-string env var into the services that depend on the new service. The name
is set by exposeAs in loor.json (default: derived from the service name).
// MongoDB
const client = new MongoClient(process.env.MONGODB_URL);
const db = client.db();
// Redis
const cache = new Redis(process.env.REDIS_URL);
// R2
const r2 = new S3Client({ endpoint: process.env.R2_UPLOADS_URL }); Backups
Pro and Team tiers ship with daily encrypted snapshots, retained for 7 days (configurable). Hobby is best-effort. You can trigger an on-demand snapshot from the service panel, and restore from a snapshot into the same project or a new one.