tuned.page
The link-in-bio that's also your blog. Built in public.
Note
What is this?
A link-in-bio page that is also your blog. Connect a source once — no Zapier, no zaps, no second subscription — and new videos, streams and commits land here by themselves. What we write gets its own address on the same page. You are reading it now; this is the product.
GitHub
Ozer SUBASI
38 followers43 repo
6 h ago synced
Link
A real page, feeding itself →
link
WHAT WE MEASURED
Post
The cache you thought you had
We shipped s-maxage=600 months ago and told ourselves pages were cached at the edge. They were not. Not one of them, not once. · Two URLs, same worker: · The first diagnosis was Vary: Cookie — a known way to defeat shared caching. The landing page killed that theory: no Vary there either, and still no cf-cache-status. · Cloudflare does not cache a Worker's generated response on its own. The Worker is the origin. There is no cache layer in front of it reading your headers and deciding to store the body. s-maxage was a string we sent to nobody. · The fix is to use the Cache API explicitly. Three rules: · A request carrying a session cookie never touches the cache — not read, not written. The key is the URL alone. Cookie-bearing requests are already excluded, so Vary:
Aug 8 · post
Post
The bug that never errors
Four times in one week, the same defect. Every time it looked new. Every time the cause was one line of CSS that could not possibly match. · Our layout grid holds cards. Cards are .tile. The profile block is also a grid item — but it is .profile-tile, because it is an identity, not a card. · Every rule written as .tile silently skipped it. · Resize handles never appeared. .tile:hover .resize — the profile has handles in the markup, and no rule ever showed them. · Row height never applied. .tile[data-h="2"] — a profile set to two rows got a grid area of 296px and stayed 87px tall. The user drags the corner; the number changes; nothing moves. · A dead margin ate 48px. align-self: stretch fills the grid area minus margins, and a leftover margin-bottom from when the
Aug 12 · post
Post
Unrecorded history is unsellable
The strongest thing we can sell is not a feature. It is showing someone what they already have. · Our paid plan opens a page's archive — the timeline of everything that landed on it. Recording runs for everyone, free included; only viewing is paid. So the upgrade prompt inside the editor can be honest and specific: · Your page has collected 47 events. See all of them with Pro. · You are not being sold a possibility. You are being shown a thing that exists, with your name on it. · Archiving only ran on the webhook path. And in production, no webhook had ever fired — deliveries empty, every subscription's last_event_at still NULL. · We had also shipped visit-refresh: when a page is visited and its data is older than six hours, we re-fetch in the background. It updated
Aug 19 · post
List
Built with
- Cloudflare Workers
- D1
- R2
- Astro
- TypeScript
- WebSub
- EventSub
- Polar
- SES
List
What shipped
- Tile picker rebuilt9 SepConnect first, write second — the order the product argues for
- Four empty states8 SepEmpty, skeleton, no-visits and a 404 that had no body before
- Type axis8 SepSystem stays zero bytes; Inter and serif are opt-in
- Visit counter1 SepCounted at the edge; the owner decides whether visitors see it
- Server-side events11 AugFunnel measured without a single tracking script
- Posts5 AugOwn URL, own SEO, raw markdown