Journal
Notes on craft.
Short essays on building native apps, working with Swift, and exploring the open web.
RSS- 5 min read
The email I was waiting for: Souffle is on the App Store
Three weeks after four rejection reasons, the right email finally arrived. How the appeal was accepted, what the whole journey taught me, and where to download Souffle.
souffleiosappleapp-storeindiedev - 6 min read
Zero server: why Souffle knows nothing about you
No account, no tracking, no backend. How and why Souffle runs entirely on your iPhone — and what that actually changes.
souffleprivacyiosswiftdataindiedev - 7 min read
Anatomy of the PatolabsOG contract
229 lines of Solidity, an ERC-721 with on-chain SVG art, a 1-per-tier invariant enforced on transfers, and a few design decisions worth explaining.
soliditynfterc721baseweb3foundrydev - 7 min read
Patolabs OG: NFTs to unlock my betas
1,000 NFTs on Base, three tiers, 100% on-chain art, and a single purpose: giving early adopters verified access to all Patolabs TestFlight betas.
patolabsnftbaseweb3solidityindiedev - 5 min read
I submitted my first app. Apple rejected it.
Four rejection reasons in a single email. US tax forms, medical disclaimers, organization accounts, and background audio. What I wish I'd known before clicking Submit.
souffleiosappleapp-storeindiedev