<!DOCTYPE html><html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1"><meta name="description" content="Writing by Matt Donders — dev notes, app launches, and occasional thoughts."><link rel="canonical" href="https://mattdonders.com/blog/"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="alternate" type="application/rss+xml" title="Matt Donders" href="/rss.xml"><!-- Open Graph --><meta property="og:title" content="Blog — Matt Donders"><meta property="og:description" content="Writing by Matt Donders — dev notes, app launches, and occasional thoughts."><meta property="og:url" content="https://mattdonders.com/blog/"><meta property="og:type" content="website"><meta property="og:site_name" content="Matt Donders"><meta property="og:image" content="https://mattdonders.com/og-default.png"><!-- Twitter Card --><meta name="twitter:card" content="summary_large_image"><meta name="twitter:creator" content="@mattdonders"><meta name="twitter:title" content="Blog — Matt Donders"><meta name="twitter:description" content="Writing by Matt Donders — dev notes, app launches, and occasional thoughts."><meta name="twitter:image" content="https://mattdonders.com/og-default.png"><title>Blog — Matt Donders</title><link rel="stylesheet" href="/_astro/_slug_.BTz1-RFe.css">
<style>.page-description[data-astro-cid-5tznm7mj]{font-size:1.05rem;max-width:55ch;margin-top:.75rem}.empty-state[data-astro-cid-5tznm7mj]{padding:3rem 0;color:var(--text-subtle);font-family:var(--font-mono);font-size:.9rem}.post-list[data-astro-cid-5tznm7mj]{display:flex;flex-direction:column}.post-row[data-astro-cid-5tznm7mj]{display:flex;align-items:flex-start;justify-content:space-between;gap:2rem;padding:1.75rem 0;border-bottom:1px solid var(--border);text-decoration:none;transition:padding-left .15s ease}.post-row[data-astro-cid-5tznm7mj]:first-child{border-top:1px solid var(--border)}.post-row[data-astro-cid-5tznm7mj]:hover{padding-left:.5rem}.post-row-main[data-astro-cid-5tznm7mj]{flex:1;min-width:0}.post-title[data-astro-cid-5tznm7mj]{font-size:1.15rem;font-weight:600;color:var(--text);margin-bottom:.35rem;transition:color .15s ease}.post-row[data-astro-cid-5tznm7mj]:hover .post-title[data-astro-cid-5tznm7mj]{color:var(--accent)}.post-description[data-astro-cid-5tznm7mj]{font-size:.9rem;color:var(--text-muted);margin:0 0 .75rem}.post-tags[data-astro-cid-5tznm7mj]{display:flex;flex-wrap:wrap;gap:.4rem}.post-date[data-astro-cid-5tznm7mj]{font-family:var(--font-mono);font-size:.775rem;color:var(--text-subtle);white-space:nowrap;flex-shrink:0;padding-top:.2rem}@media(max-width:600px){.post-row[data-astro-cid-5tznm7mj]{flex-direction:column;gap:.5rem}}
</style></head> <body> <div class="page-wrapper"> <header class="site-header" data-astro-cid-3ef6ksr2> <div class="container header-inner" data-astro-cid-3ef6ksr2> <a href="/" class="site-logo" aria-label="Matt Donders" data-astro-cid-3ef6ksr2> <span class="logo-name" data-astro-cid-3ef6ksr2>matt<span class="logo-dot" data-astro-cid-3ef6ksr2>.</span>donders</span> </a> <nav class="site-nav" aria-label="Main navigation" data-astro-cid-3ef6ksr2> <a href="/" class="nav-link" data-astro-cid-3ef6ksr2> Home </a><a href="/projects" class="nav-link" data-astro-cid-3ef6ksr2> Projects </a><a href="/about" class="nav-link" data-astro-cid-3ef6ksr2> About </a><a href="/blog" class="nav-link active" data-astro-cid-3ef6ksr2> Blog </a> </nav> <a href="https://github.com/mattdonders" class="btn btn-outline header-cta" target="_blank" rel="noopener noreferrer" data-astro-cid-3ef6ksr2> <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" data-astro-cid-3ef6ksr2> <path d="M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z" data-astro-cid-3ef6ksr2></path> </svg>
GitHub
</a> </div> </header>  <main>  <section class="section" data-astro-cid-5tznm7mj> <div class="container" data-astro-cid-5tznm7mj> <div class="section-header" data-astro-cid-5tznm7mj> <span class="section-label" data-astro-cid-5tznm7mj>// writing</span> <h1 data-astro-cid-5tznm7mj>Blog</h1> <p class="page-description" data-astro-cid-5tznm7mj>
Dev notes, app launch write-ups, and occasional thoughts.
</p> </div> <div class="post-list" data-astro-cid-5tznm7mj> <a href="/blog/launching-two-ios-apps" class="post-row" data-astro-cid-5tznm7mj> <div class="post-row-main" data-astro-cid-5tznm7mj> <h2 class="post-title" data-astro-cid-5tznm7mj>Launching two iOS apps in one week</h2> <p class="post-description" data-astro-cid-5tznm7mj>I built and shipped Home Stretch and Tooth Fairy Tracker — two native iOS apps — in a single sprint. Here&#39;s how it went.</p> <div class="post-tags" data-astro-cid-5tznm7mj> <span class="tag" data-astro-cid-5tznm7mj>ios</span><span class="tag" data-astro-cid-5tznm7mj>swiftui</span><span class="tag" data-astro-cid-5tznm7mj>apps</span><span class="tag" data-astro-cid-5tznm7mj>launch</span> </div> </div> <time class="post-date" datetime="2026-03-06T00:00:00.000Z" data-astro-cid-5tznm7mj> Mar 6, 2026 </time> </a><a href="/blog/new-site-and-building-with-ai" class="post-row" data-astro-cid-5tznm7mj> <div class="post-row-main" data-astro-cid-5tznm7mj> <h2 class="post-title" data-astro-cid-5tznm7mj>New site, new stack, and building faster with AI</h2> <p class="post-description" data-astro-cid-5tznm7mj>I replaced a WordPress site I hadn&#39;t touched in years with a custom Astro site in an afternoon - and Claude did most of the heavy lifting.</p> <div class="post-tags" data-astro-cid-5tznm7mj> <span class="tag" data-astro-cid-5tznm7mj>meta</span><span class="tag" data-astro-cid-5tznm7mj>ai</span><span class="tag" data-astro-cid-5tznm7mj>cloudflare</span><span class="tag" data-astro-cid-5tznm7mj>astro</span> </div> </div> <time class="post-date" datetime="2026-02-21T00:00:00.000Z" data-astro-cid-5tznm7mj> Feb 21, 2026 </time> </a> </div> </div> </section>  </main> <footer class="site-footer" data-astro-cid-sz7xmlte> <div class="container footer-inner" data-astro-cid-sz7xmlte> <span class="footer-copy" data-astro-cid-sz7xmlte>
&copy; 2026 Matt Donders. Built with
<a href="https://astro.build" target="_blank" rel="noopener noreferrer" data-astro-cid-sz7xmlte>Astro</a>
&amp; hosted on
<a href="https://pages.cloudflare.com" target="_blank" rel="noopener noreferrer" data-astro-cid-sz7xmlte>Cloudflare Pages</a>.
</span> <nav class="footer-nav" aria-label="Footer navigation" data-astro-cid-sz7xmlte> <a href="https://github.com/mattdonders" class="footer-link" target="_blank" rel="noopener noreferrer" data-astro-cid-sz7xmlte> GitHub </a><a href="https://twitter.com/mattdonders" class="footer-link" target="_blank" rel="noopener noreferrer" data-astro-cid-sz7xmlte> Twitter / X </a><a href="/blog" class="footer-link" data-astro-cid-sz7xmlte> Blog </a> </nav> </div> </footer>  </div> </body></html> 