Skip to content
Orkide

G-001Cover sheet · Open-source template for Cloudflare Workers

Every product starts from these drawings.

Orkide is a production-grade monorepo for Cloudflare: two Workers on one origin, typed end to end, with a blog, a portfolio and an admin already built. Derive a product from it and keep merging its fixes.

Parts list
ItemPartQtyWhat it does
1Browser1Gets the HTML with its CSS inlined
2Edge cache1Keeps each page, tagged by what it shows
3Web Worker · Astro1Renders pages and owns every request
4Service Binding1Hands /api over in process: no CORS, no hop
5API Worker · Hono1Typed routes, roles and purge headers
6D11Posts and projects, one row per language
7R21Images and files
8Queues2Jobs and their dead letters
9Durable Object1Counts who is reading right now
API · HONOWEB · ASTRO461235879
Fig. 1 · The stack, pulled apart
Stack
Astro · Hono · D1 · R2
Languages
EN · TR
Revision
0fc90ff
Plotted
2026-10-20

How this page reached you

From edge infrastructure to the last pixel

  1. EdgeRequest— ms

    The nearest edge location

    Your request lands at the closest Cloudflare data centre. Pages are cached there, tagged by what they show, and purged the moment a post changes.

  2. WorkerFirst byte— ms

    Two Workers, one origin

    The web Worker renders the page with Astro. Calls to /api go to a second Worker through a Service Binding: in-process, so there is no CORS and no extra hop.

  3. D1Last byte— ms

    One row per language

    Posts, projects and taxonomies live in D1, translated row by row and keyed by UUIDv7. Media sits next to them in R2.

  4. BrowserInteractive— ms

    Inlined and hashed

    The HTML arrives with its stylesheet inlined and every script hashed into the CSP. JavaScript loads only where something moves.

  5. PixelFirst paint— ms

    One pixel

    Everything above exists to get this one right.

t+ milliseconds, measured on this page load in your browser.

What this site is made of

Inside Orkide

Orkide is this site and the template products start from: a production-grade Cloudflare monorepo, typed end to end and open source.

  • 2Workers, one origin
  • 10Packages every product shares
  • 32Decisions in the ADR log
  • 0kBFramework code on reading pages

General notes

  1. Edge

    Two Workers, one origin

    Astro renders at the edge and hands /api to a Hono Worker through a Service Binding. No CORS, no extra hop.

  2. Types

    Typed end to end

    Drizzle tables generate the Zod models, the validators refine them and the API client is typed from the routes. No data type is written by hand.

  3. Cache

    Cached by tag

    Every page is cached at the edge under the tags it shows, and every save in the admin purges exactly those.

  4. Readers

    For people and agents

    RSS, Atom and JSON feeds, a sitemap, llms.txt and a Markdown copy of every post and project.

  5. Admin

    An admin that ships

    Posts, projects, media, site content, inbox and analytics, with owner, editor and viewer roles and passkey sign-in.

  6. Skin

    A skin you can swap

    Tokens, fonts, motion and brand drawings live in one package, so a product changes its look without touching a page.

Build on it

Start a product from Orkide

Every product keeps Orkide as its upstream, so a fix or a feature made here merges into all of them.

  1. Clone

    Start from the template and keep it as the upstream remote.

    git clone https://github.com/Ouzx/orkide
  2. Run

    Both Workers run locally on Miniflare, with D1, R2 and queues.

    pnpm install && pnpm dev
  3. Reskin

    Edit the tokens, fonts and brand drawing; the pages stay as they are.

    pnpm --filter @orkide/ui tokens
  4. Merge

    Pull the template's fixes into your product. Your skin and your content stay yours.

    git fetch upstream && git merge upstream/main

Contact

Request for information

Have a project, a question or just want to say hi? Send a message — I read every one.

Dwg no.
G-004
Title
Contact
Drawn
Oğuzhan Kandakoğlu

Write to the inbox. Replies come by email.

Get in touch