struct ContentView: View { var body: some View { VStack(spacing: 0) { // ← this is the fix } } }
+ compiles for both targets
// 4 months of pain
// condensed to 8 lines
142 links.
We kept 11.
A weekly dispatch for senior mobile engineers who can't afford to read everything — but can't afford to miss the one thing that matters.
Most newsletters
aggregate.
We eliminate.
Most newsletters aggregate. We eliminate.
Anyone can forward a link. Curation means reading 140 things so you only have to read 11. The rejection rate is the product.
If it's on the front page of HN, it doesn't need us.
You already saw it. We find the SwiftUI workaround buried in a three-year-old WWDC transcript, the Kotlin migration post-mortem on a company blog with 80 readers.
The .task modifier memory leak nobody's talking about
This one cost a team three weeks before they found it. The fix is four characters. Read this before your next async view implementation.
Your time bills at $180/hour. Treat it that way.
Every link in Curate has cleared a single threshold: would I spend 20 minutes of my own Saturday morning on this? If the answer is anything but immediate yes, it dies.
Annotations aren't summaries. They're arguments.
We don't tell you what the article says. We tell you why it changes the way you'll think about the next PR you open, the next architecture decision you make.
Before we earn
your inbox,
we earn your trust.
Three questions. We sort you into a reader archetype. Your first issue is shaped around how you actually think.
Pick the pattern you'd reach for.
You're building a new feature that needs to sync local state with a remote API. Your team has two weeks.
Issue #094
5 of 11 links, annotated.
The .task modifier memory leak nobody's talking about
This one cost a team three weeks before they found it. The fix is four characters. Read this before your next async view implementation — specifically if you're using it inside a List.
Migrating 200k lines to Kotlin Multiplatform: the post-mortem nobody published
The migration story Shopify's mobile team wrote up internally and almost didn't ship. Gradle hell, expect/actual gotchas, and the one architectural decision that saved the whole thing. Required reading if KMP is on your roadmap.
The accessibility pattern buried in WWDC session 412 that everyone missed
Transcript-mined. Nobody watched 48 minutes of session 412. I did. Slide 23 contains an accessibilityRepresentation modifier pattern that solves the custom component VoiceOver problem your team has been working around for two years.
Why your ViewModel is lying to you about its lifecycle
Manuel Vivas' deep-dive into SavedStateHandle edge cases that don't surface in unit tests but will d…
Maestro 1.39 ships visual assertions — E2E testing just got less painful
Not hype. I ran it against a production flow. Visual element matching catches the class of regressio…
more links in the full issue, including the Compose performance deep-dive and the indie app post-mortem.
Subscribe to read →Real engineers.
Actual signal.
"I canceled four other newsletters the week I subscribed to Curate. It's the only one where I read every single annotation before deciding whether to click."
"The KMP migration story in issue #089 saved us from making the exact mistake Shopify's team made. That's worth more than a year of conference tickets."
"I'm an indie maker. I don't have a team Slack to forward things to. Curate is the closest thing I have to a senior engineer I can ask "did you see this?""
"Monday standups used to make me anxious. Now I'm the person who brings up the thing nobody else has seen yet. Curate is my Sunday evening ritual."
Sunday evening.
12 links.
Zero noise.
Issue #095 ships this Sunday. Subscribe now and it arrives in your inbox before the week starts — annotated, curated, ready to read.