Skip to content
44 linesCodeBlameRaw
1{
2 "$schema": "../../node_modules/wrangler/config-schema.json",
3 "name": "g1t-og",
4 "account_id": "1e6f2cffa3f445920836e8ebe446bb58",
5 "compatibility_date": "2026-09-26",
6 // The browser that takes screenshots (@cloudflare/puppeteer) needs it.
7 "compatibility_flags": ["nodejs_compat"],
8 "main": "./src/index.ts",
9 "workers_dev": false,
10 // The social cards the site and the docs link to from their og:image
11 // tags. A custom domain, whose DNS record Cloudflare makes on deploy.
12 "routes": [{ "pattern": "og.g1t.sh", "custom_domain": true }],
13 // The fonts are vendored as TrueType, which satori can read; the
14 // renderers' WebAssembly is bundled as modules, the only way Workers
15 // will run it.
16 "rules": [{ "type": "Data", "globs": ["**/*.ttf"], "fallthrough": false }],
17 // What a card shows is only ever what an anonymous visitor could see:
18 // every call is made with no viewer.
19 // Uploaded avatars, read to draw a workspace's icon or a person's picture on its card.
20 "kv_namespaces": [{ "binding": "AVATARS", "id": "e627b571f07047e187c03e1fc2b3bbdd" }],
21 // Screenshots of each project's production, one per deploy, taken by
22 // Browser Rendering and kept in R2. Reached only through the
23 // `Screenshots` entrypoint: deployments asks for one when production
24 // goes live, and the site reads it for a project's overview.
25 "browser": { "binding": "BROWSER" },
26 // Made by `npx wrangler r2 bucket create g1t-screenshots`.
27 "r2_buckets": [{ "binding": "SCREENSHOTS", "bucket_name": "g1t-screenshots" }],
28 // Once a day, screenshots older than 30 days are deleted (src/capture.ts).
29 "triggers": { "crons": ["37 5 * * *"] },
30 "services": [
31 { "binding": "IDENTITY", "service": "g1t-identity" },
32 { "binding": "REPOS", "service": "g1t-repos" },
33 { "binding": "WORK", "service": "g1t-work" },
34 { "binding": "PROJECTS", "service": "g1t-projects" },
35 // Whether rendering is paused across g1t (billing's platform_pause):
36 // cards fall back to a static image while it is (src/paused.ts).
37 { "binding": "BILLING", "service": "g1t-billing" }
38 ],
39 // Cards drawn for a cache miss, per address (src/index.ts). Past it,
40 // the brand card. Id and limit: RATE_LIMITS in packages/contracts.
41 "ratelimits": [{ "name": "OG_RENDER_LIMIT", "namespace_id": "4501", "simple": { "limit": 60, "period": 60 } }],
42 // Logs of a tenth of requests: every link shared is one.
43 "observability": { "enabled": true, "head_sampling_rate": 0.1 }
44}