Johann Schopplich

Johann Schopplich

@johannschopplich.com

Developer who cares about aesthetics. Lead Software Engineer @finanzfluss byjohann.link

313 followers120 following17 posts

Feeling nostalgic as @deno.land winds down. It's what made me fall in love with TypeScript. In 2021, I built a local newspaper's subscription billing on Deno. Then Node caught up, and I went back. Is that how incumbents win – by absorbing the challenger's best ideas?

apiful is a fetch client you compose. Your OpenAPI schema becomes .d.ts – no bundle overhead. v5 adds: ✅ `apiful generate --check` fails on stale types ✅ .with() chains stay fast at any length ✅ your own extensions see the ones before them, typed 🔗 apiful.land

Every .with() used to wrap the client in another proxy, so one property read walked the whole stack 😬 1 extension: 28 ns 3 extensions: 650 ns 6 extensions: 7.75 µs v5 wraps the base client once. → 28 ns, whatever the depth.

apiful is a fetch client you compose. Your OpenAPI schema becomes .d.ts – no bundle overhead. v5 adds: ✅ `apiful generate --check` fails on stale types ✅ .with() chains stay fast at any length ✅ your own extensions see the ones before them, typed 🔗 apiful.land

`apiful generate` turns each service's schema into .d.ts files. `--check` does the same work but writes nothing, so a stale checkout fails the command instead of compiling against types that no longer match the API.

Tokenizers are heavy – megabytes of vocab data for a number you can estimate. tokenx answers "what does this payload cost me?" in 2 kB, at ~96% accuracy. New in v1.6: 🧮 Heuristics for Cyrillic, kana and emoji 🧱 More accurate on JSON payloads and source code

Been experiencing an early version of AGI for a week now. It is breathtaking and overwhelming at the same time. Our sessions are short but intense. She’s currently rate-limited, so back to Claude Code.

You are up to date.