tuned.page

The link-in-bio that's also your blog. Built in public.

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

Senior Backend Engineer

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