The Manual · 4 guides · 32 steps
Step-by-step guides.
How-tos from real projects: what you need, numbered steps with the real commands and screens, and what goes wrong.
8 steps · 15 min hands-on
How to deploy to Vercel from the CLI
Deploy any folder to Vercel from the terminal: install, login, link, deploy --prod, verify, roll back. Plus Hobby limits: 100 deploys...
8 steps · 45 min hands-on
How to create and publish a Gumroad product with the API
Create a Gumroad product with the v2 API: draft, listing fields, presigned file upload, covers, enable. Real code from 130 listings and the...
7 steps · 20 min hands-on
How to create an App Store Connect API key and use it in CI
Create an App Store Connect API key, find the key ID and issuer ID, sign a 20-minute JWT in Python, and wire it into fastlane and GitHub...
9 steps · 30 min hands-on
How to publish a Rust crate to crates.io
Publish a Rust crate step by step: token, Cargo.toml fields, dry run, cargo publish, workspaces, 429 rate limits, yanking and trusted...
Long reads.
29 how-to articles: full build write-ups with the code, the data and what broke.
13 min read · Oct 23
Pick a UUIDv7 library that keeps order: 10 tested, .NET fails 50%
We tested 10 UUIDv7 libraries with 1M IDs each and a clock jump. .NET put 50% out of order, uuid6 ran 16.6 min ahead. The 2 that passed...
9 min read · Oct 23
Get featured as a solo dev: 9 features in 28 days, 2 moved a number
9 features in 28 days, from This Week in Rust to a 60K-star awesome list, and what each one sent. Only 2 moved a number. Free data and a...
10 min read · Oct 22
Xbox's new cloud cap can't finish 42% of its own games
From November Xbox caps cloud gaming at 15/10/5 hours a month and sells the rest at 24-40c an hour. We timed all 562 cloud games: 42%...
10 min read · Oct 21
PHP's RCE fix is 13 hours old. 235 top sites can never get it
PHP patched two critical unauthenticated RCEs on Oct 21. A header scan of the top 20,000 sites: of 428 showing a version, only 107 are...
11 min read · Oct 21
LiteLLM got backdoored again. Check if it took your keys in 5 min
LiteLLM 1.107.0 shipped a credential stealer for 1 h 43 min. 20 of 30 AI packages that use it accepted it. The 5-minute check and the...
11 min read · Oct 20
DeepSeek gave away its engine. The $38-an-hour parts stayed home
DeepSeek calls DeepInfer fully open source. The README lists 3 missing parts, 4 of 5 routing boxes are absent, 6.82% matches vLLM, Huawei...
11 min read · Oct 19
Selling on Gumroad with AI: 130 products, 0 sales. Greg is wrong
130 AI-built products on Gumroad for 36 days: 87 free, 0 downloads, $0. Fresh API numbers, the Discover $100 gate, and what to do before...
15 min read · Oct 19
Apple's 4.3 spam check is a 30-second batch job. 22 rejections prove it
Apple rejected 11 of my iPhone apps under Guideline 4.3 spam in 30 seconds, then again after exactly 7 days. The data, my own spam test...
13 min read · Oct 19
Theo's 60% stat is an outage chart: 43 hours of Codex incidents
Claude Code had 42 hours of incidents in 80 days, Codex 56. Both at once: 101 minutes. Why Theo's 60% stat is an outage chart, and my...
18 min read · Oct 19
Balatro save file runs as code. 1 in 5 corrupted saves load anyway
Balatro runs your save file as Lua code. Where saves live on Windows, Mac and Steam Deck, and why 12,694 of 61,672 corrupted saves loaded...
13 min read · Oct 18
Exponential backoff with jitter: 64 of 100 LLM calls still failed
100 LLM calls hit a rate limit at once. Backoff with 10% jitter answered 36. Retry-After answered all in 11.8 s; a client-side limiter in...
29 min read · Oct 18
iOS development on Windows: the complete guide (21 apps, no Mac)
The full no-Mac path from Windows to the App Store: 21 iPhone apps, 384 CI runs, 4-minute releases, the signing traps, and why 13 got stuck...
14 min read · Oct 18
Build a database in Rust: AI passed 866K tests, then failed ROLLBACK
Claude Code wrote a SQL engine in Rust in 12.5 minutes. It passed 866,331 SQLite test records it never saw, then failed 24 of 79 everyday...
13 min read · Oct 18
App Store review time: 64 real decisions, median 73 hours
I timed every App Review decision for 21 iPhone apps: median 73 hours, 27% inside 48 h (Apple says 90%), 0 of 21 new apps approved on the...
16 min read · Oct 18
LLM proxy benchmark: 200 duplicate calls became 1 (and a 30 s bug)
I put a Rust LLM proxy in front of the OpenAI SDK: 200 duplicate calls became 1, outage calls fell 89 to 5, and a test found a 30 s...
12 min read · Oct 17
LLM JSON output: one setting dropped valid JSON from 75% to 4%
432 real replies from 3 small LLMs in Chrome: no_repeat_ngram_size took valid JSON from 75% to 4%. The fix, a 4-step parse ladder and a...
12 min read · Oct 17
iPhone app development cost: 20 real apps, $99 in fees, 8 approved
What 20 real iPhone apps cost: $99 in Apple fees, $0 for a Mac and CI, a $30,500+ quote for the same apps, and 12 that never made it onto...
13 min read · Oct 17
Landing page grader tested on 2,077 Show HN pages: correlation 0.00
A no-AI landing page grader ran on 2,077 Show HN pages. The top failure was a missing og:image, one rule was a bug, and the score did not...
11 min read · Oct 17
crates.io download count: 80% of ours arrived with a new version
What the crates.io download count really measures: 69 Rust crates, 90 days of daily data, 80% within a day of a publish, 0 outside...
14 min read · Oct 17
Run an LLM in the browser: WebGPU did 63 tokens/s, WASM did 1.6
How to run an LLM in the browser with Transformers.js, a Web Worker and WebGPU. Real code from a live app, three models measured, and the...
12 min read · Oct 16
Bevy instancing: drawing 639,000 units with one draw call per mesh
Bevy instancing past automatic batching: units as plain data, 48-byte instances, Arc hand-off and one draw per mesh. Real Rust code and...
10 min read · Oct 16
Build an iOS app on Windows: how 21 apps shipped with no Mac
How to build an iOS app on Windows with no Mac: XcodeGen, a GitHub Actions macOS runner, signing via the App Store Connect API and...
6 min read · Oct 11
AI writes code faster than anyone can review it. What do you actually check?
AI writes code faster than anyone can review it. A practical look at what to actually check when you review AI-generated code.
2 min read · Oct 10
Coding agents keep "fixing" tests by editing them, so I made it impossible
Coding agents like Claude Code sometimes make failing tests pass by editing the tests. tamperproof, a Claude Code plugin, makes existing...
1 min read · Oct 10
My Windows wallpaper solves the geodesic equation, live
A Windows live wallpaper that steps the geodesic equation with RK4 in real time, on a torus, a knot and a Klein bottle. How the math works.
2 min read · Oct 10
I ran 20 AI coding agents on one PC. The bottleneck was the compiler.
Running 20 coding agents in parallel on one PC: the model never slowed things down, the compiler did. How content-hashed test caching fixed...
3 min read · Oct 9
Making two cartoon eyes feel alive: springs, saccades and blinks in SwiftUI
Springs, saccades and blinks in SwiftUI: how the Minder focus app makes two cartoon eyes feel alive, with Core Motion and optional face...
3 min read · Oct 9
Adding Chinese, Japanese and Korean to my Rust game engine without touching 39,000 lines
How O'BLOCK got Simplified Chinese, Japanese and Korean in a custom Rust game engine without touching 39,000 lines: glyph atlases, fonts...
3 min read · Oct 9
I stopped paying twice for the same LLM answer (and why embeddings alone can't dedupe prompts)
Retries, double clicks and parallel workers send the same prompt twice. How to cache LLM responses, and why embeddings alone cannot dedupe...
Get new guides by email.
What my AI agents tried this week, with the real numbers: what worked, what flopped, what made money. One email when there is something worth reading.
No spam, never sold. Every email has a one-click unsubscribe.