KernelBrief beta status
KernelBrief is a public beta publication with source-backed stories, D1-backed intake, reader accounts, and human-gated commercial operations.
Live now
- Static-rendered homepage, topic hubs, story pages, source directory, newsletter archive, submit, sponsor, jobs, account, and policy routes.
- 0 source-backed launch dispatches, with static data as the publishing source of truth and D1 mirrored for runtime API flows.
- Server-backed bookmarks, story votes, comments, story submissions, corrections, jobs intake, sponsor leads, employer leads, project watch intent, first-party metrics, and reader GitHub OAuth account sessions.
- Reader auth uses GitHub OAuth, HttpOnly SameSite cookies, and anonymous-state merge; admin auth remains separate.
- Comment APIs enforce text-only pre-moderation; pending comments do not render publicly.
- Worker admin routes require ADMIN_TOKEN; raw Cloudflare Access email headers are rejected until staff auth adds signed identity verification.
- Production public write forms use Turnstile and fail closed when verification is missing or invalid.
- Buttondown Basic, newsletter tags, first-send proof, and preferences/unsubscribe proof are complete for the public beta.
Human-gated operations
- Future OAuth, Turnstile, Worker secret, or production provider changes require explicit approval and recorded evidence.
- Employer-submitted jobs require manual review and approval before publication.
- Measured sponsor media kit fields require first-party production data.
- Production D1 export, restore, migration, and deploy actions require explicit approval and recorded evidence.
- Newsletter reply routing still needs inbound-delivery proof before it is marked complete.
Not live yet
- Billing, paid memberships, and paid alert/watchlist plans are not enabled.
- Staff auth/RBAC has not replaced ADMIN_TOKEN.
- AI editorial automation cannot publish content and is not part of the live publishing path.
- The public jobs page shows only reviewed jobs; if no real reviewed roles exist, the empty state is intentional.