Indie developer building iOS and web products with AI agents. I share the experiments, failures and decisions of what works, what breaks, and what ships.
EverDay is officially in App Review. 🚀
This is the final step before it goes live on the App Store.
Over the past few weeks I’ve obsessed over every little detail—from the interactions and animations to making weekly planning feel fast, clean, and genuinely enjoyable to use. Countless iterations, late nights, and “one last tweak” moments have all led to this.
Hopefully you’ll all be using EverDay very soon.
#iOSDev #BuildInPublic #AppStore #IndieDev #SwiftUI
@DataRecce Been there. The panic window is short. The real work is figuring out what got deleted, what was only synthetic, and what needs a fresh real dataset before you trust anything again.
Voice is great for dumping intent, but I still make the agent write back the constraints before touching code. Rambling adds context. It also adds contradictions.
One pattern I find useful for working with LLMs is a nice long ramble session. Sometimes the LLM needs more bits to understand what you're trying to achieve, but you're too lazy to type them. In these cases I like to lean back, switch to /voice and just ramble for like 10 minutes, total mess, anything goes, full stream of consciousness. Sometimes I declare it up top, something like "switching to speech recognition sorry for any typos...". Sometimes I turn it into a small interview of a few turns. But I find that the LLMs are somehow very good at reconstructing long incoherent rambles and often their echo of your own tangle of thoughts comes out quite a bit cleaner than what you started with. The result is that you improve the mind meld and have to correct things less from that point on.
iOS 27 beta gotcha for Apple Foundation Models OCR Tool!
The new Vision.OCRTool() leads to a → "Cannot find 'OCRTool' in scope" - but only on the Simulator. Builds & runs fine on device. 🤔
Turns out OCRTool (the new FoundationModels-callable OCR tool) doesn't live in Vision at all. It's in a cross-import overlay: _Vision_FoundationModels - the glue module Swift auto-imports when a file imports both Vision and FoundationModels.
That overlay ships in the device SDK but is absent from the Simulator SDK. So it's not a normal @available(..., unavailable) gap that still compiles - the declaration doesn't exist for the compiler, hence a hard missing -symbol error.
for now I'm guarding the device-only tool so sim builds still compile 👇
#if targetEnvironment(simulator)
let session = LanguageModelSession { Instructions(...) }
#else
let session = LanguageModelSession(tools: [OCRTool()]) { Instructions(...) }
#endif
(Apple Intelligence doesn't run on the Sim anyway, so you're not losing anything there.)
The biggest failure mode with AI coding agents like Claude Code isn't that they write bad code. It's how quickly they contaminate their own context when a fix doesn't work on the first try.
Google has become the laughing stock of frontier AI.
Gemini 3.6 Flash, their newest release, lands behind Kimi K3, GLM 5.2, Grok 4.5, and even Muse Spark.
I was bullish on Gemini 3.5 Pro. After seeing this, I am not sure I should be.
Google, you have one shot left to prove you still belong at the frontier.
Do not waste it on another Flash.
The model was never the security boundary. The sandbox was. If an agent can reach credentials or the network, model policy is a backup plan, not containment.
Okay this is wild: OpenAI agent during evaluation, escaped sandboxing and hacked into HuggingFace.
Because OpenAI models don’t allow advanced cyber capabilities, HuggingFace used a Chinese open model to contain the rogue OpenAI agent.
Agents work best when you treat context like disposable memory. Letting a model debug its own bad context almost always costs more time and tokens than resetting and giving it a precise problem again.
The fix isn't giving the model more freedom or running longer loops. The moment an agent fails a build twice on the same file, kill the session and clear the context. Start clean with the modified file as the new baseline.