Cloudflare Pages app voor snelle braindumps naar een GitHub-repo, met een persoonlijke inbox/overview flow als primaire use-case en aparte Shared en GeP surfaces.
- Frontend: vanilla browser ESM onder public/js
- Backend: Cloudflare Pages Functions onder functions/api
- Gedeelde backendlogica: functions/lib
- Data-opslag: markdownbestanden in een GitHub-repo, benaderd via de GitHub Contents API
POST /api/auth: login met PIN, zet eenHttpOnlysessiecookieGET /api/auth/session: leest huidige sessiePOST /api/auth/logout: wist sessiecookieGET|POST|PATCH|PUT|DELETE /api/inbox: persoonlijke inboxGET|POST|PATCH|DELETE /api/shared: gedeelde inboxGET|POST|PATCH|DELETE /api/gep: GeP inboxGET|POST|PUT|PATCH /api/overview: overview, done/move/edit/reorder/contextPOST /api/upload: uploadt bestand naaruploads/YYYY-MM/...en voegt inbox-item toeGET /api/image?path=uploads/...: beveiligde image proxy voor private repo-assets
GITHUB_TOKEN: PAT met contents read/write voor de datarepoPIN_HASH: SHA-256 hash van Bram’s PINANNA_PIN_HASH: optionele SHA-256 hash voor AnnaSESSION_SECRET: HMAC-secret voor sessietokensREPO_OWNER: optioneel override voor repo ownerREPO_NAME: optioneel override voor repo nameREPO_BRANCH: optioneel override voor branch, defaultmain
npm install
npm run devOpen daarna de lokale Pages dev server van Wrangler.
npm run checkDit draait:
- unit tests voor parser/sessie
- Playwright smoke tests tegen een statische lokale server
npm run deployVoor productie:
- zet de secrets in Cloudflare Pages
- zorg dat
public/_headersmee deployed wordt - CI draait via
.github/workflows/ci.yml
- Quick-dump-first blijft leidend
- GitHub-markdown blijft de bron van waarheid
- Persoonlijke flow heeft voorrang op
SharedenGeP