<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Loren Stewart</title><description>A blog exploring web development and AI</description><link>https://www.lorenstew.art/</link><language>en-us</language><item><title>ChatGPT, Claude, and Gemini Render Markdown in the Browser. I Don&apos;t</title><link>https://www.lorenstew.art/blog/i-do-the-opposite/</link><guid isPermaLink="true">https://www.lorenstew.art/blog/i-do-the-opposite/</guid><description>The big AI chat apps ship heavy rendering libraries to every device. Cheddy Chat renders markdown server-side and streams finished HTML, eliminating 160-440KB of client JavaScript while keeping the main thread free.</description><pubDate>Mon, 23 Mar 2026 00:00:00 GMT</pubDate></item><item><title>FastAPI for TypeScript Developers</title><link>https://www.lorenstew.art/blog/fastapi-for-typescript-developers/</link><guid isPermaLink="true">https://www.lorenstew.art/blog/fastapi-for-typescript-developers/</guid><description>Python DX now rivals TypeScript. Here&apos;s how FastAPI, uv, and Pydantic make Python feel modern, with type safety and performance that matches what you&apos;re used to.</description><pubDate>Fri, 19 Dec 2025 00:00:00 GMT</pubDate></item><item><title>I Built the Same App 10 Times: Evaluating Frameworks for Mobile Performance</title><link>https://www.lorenstew.art/blog/10-kanban-boards/</link><guid isPermaLink="true">https://www.lorenstew.art/blog/10-kanban-boards/</guid><description>Started evaluating 3 frameworks for work, ended up building 10. Next-gen frameworks (Marko, SolidStart, SvelteKit, Qwik) all deliver instant 35-39ms performance. The real differentiator? Bundle sizes range from 28.8 kB to 176.1 kB compressed. Choose based on your priorities, not microscopic FCP differences.</description><pubDate>Tue, 28 Oct 2025 00:00:00 GMT</pubDate></item><item><title>React Won by Default – And It&apos;s Killing Frontend Innovation</title><link>https://www.lorenstew.art/blog/react-won-by-default/</link><guid isPermaLink="true">https://www.lorenstew.art/blog/react-won-by-default/</guid><description>React-by-default has hidden costs. Here&apos;s a case for making deliberate choices to select the right framework for the job.</description><pubDate>Tue, 16 Sep 2025 00:00:00 GMT</pubDate></item><item><title>Progressive Complexity: When Islands Should be a Continent</title><link>https://www.lorenstew.art/blog/when-islands-should-be-a-continent/</link><guid isPermaLink="true">https://www.lorenstew.art/blog/when-islands-should-be-a-continent/</guid><description>Level 4 excels for isolated rich components, but heavy coordination signals when to intentionally escalate to a unified framework.</description><pubDate>Sun, 14 Sep 2025 00:00:00 GMT</pubDate></item><item><title>Production-Ready Astro Middleware: Dependency Injection, Testing, and Performance</title><link>https://www.lorenstew.art/blog/production-ready-astro-middleware/</link><guid isPermaLink="true">https://www.lorenstew.art/blog/production-ready-astro-middleware/</guid><description>Master production-ready Astro middleware with dependency injection, testing strategies, and caching for enterprise applications.</description><pubDate>Wed, 03 Sep 2025 00:00:00 GMT</pubDate></item><item><title>Introducing hx-optimistic: Make Your HTMX Apps Feel Instant</title><link>https://www.lorenstew.art/blog/hx-optimistic/</link><guid isPermaLink="true">https://www.lorenstew.art/blog/hx-optimistic/</guid><description>Make HTMX apps feel instant with optimistic UI: instant feedback, automatic rollbacks, and no frameworks required, just simple declarative HTML.</description><pubDate>Wed, 20 Aug 2025 00:00:00 GMT</pubDate></item><item><title>A Progressive Complexity Manifesto</title><link>https://www.lorenstew.art/blog/progressive-complexity-manifesto/</link><guid isPermaLink="true">https://www.lorenstew.art/blog/progressive-complexity-manifesto/</guid><description>A manifesto for progressive web complexity. Reject the false binary between static sites and SPAs. Embrace the powerful middle ground with server-rendered HTML, HTMX, and intentional complexity escalation.</description><pubDate>Sun, 10 Aug 2025 00:00:00 GMT</pubDate></item><item><title>Bookmarkable by Design: URL-Driven State in HTMX</title><link>https://www.lorenstew.art/blog/bookmarkable-by-design-url-state-htmx/</link><guid isPermaLink="true">https://www.lorenstew.art/blog/bookmarkable-by-design-url-state-htmx/</guid><description>Forget complex state libraries. Use the URL as your single source of truth for filters, sorting, and pagination in HTMX applications</description><pubDate>Tue, 29 Jul 2025 00:00:00 GMT</pubDate></item><item><title>Architecting with Constraints: A Pragmatic Guide</title><link>https://www.lorenstew.art/blog/always-architect-with-contraints/</link><guid isPermaLink="true">https://www.lorenstew.art/blog/always-architect-with-contraints/</guid><description>Don&apos;t just reach for your favorite framework. Let&apos;s explore how a constraint-based mindset can help you choose the right tool for the job and avoid over-engineering.</description><pubDate>Wed, 02 Jul 2025 00:00:00 GMT</pubDate></item><item><title>Building a Lightweight Reactive State Manager with JavaScript Proxies</title><link>https://www.lorenstew.art/blog/reactive-state-manager-with-proxies/</link><guid isPermaLink="true">https://www.lorenstew.art/blog/reactive-state-manager-with-proxies/</guid><description>Tired of frontend frameworks and complex state management libraries? Learn how a few lines of JavaScript and the power of Proxies can automatically sync your UI with your application state.</description><pubDate>Tue, 01 Jul 2025 00:00:00 GMT</pubDate></item><item><title>Building a Modern Frontend Event System from Scratch</title><link>https://www.lorenstew.art/blog/frontend-event-system/</link><guid isPermaLink="true">https://www.lorenstew.art/blog/frontend-event-system/</guid><description>From spaghetti code to clean, decoupled code: building a powerful event system that scales with your application</description><pubDate>Wed, 18 Jun 2025 00:00:00 GMT</pubDate></item><item><title>Beyond REST: Adding Real-Time Interactivity with NestJS WebSockets</title><link>https://www.lorenstew.art/blog/nestjs-websockets-real-time/</link><guid isPermaLink="true">https://www.lorenstew.art/blog/nestjs-websockets-real-time/</guid><description>For decades, the request-response model of REST has been the backbone of the web. But what happens when the server needs to initiate a conversation? Discover how NestJS WebSockets enable real-time interactivity.</description><pubDate>Sun, 15 Jun 2025 00:00:00 GMT</pubDate></item><item><title>How to Generate Dynamic PDFs in NestJS with a Headless Browser</title><link>https://www.lorenstew.art/blog/nestjs-pdf-generation-playwright/</link><guid isPermaLink="true">https://www.lorenstew.art/blog/nestjs-pdf-generation-playwright/</guid><description>Generating a simple, unstyled PDF is one thing. But what if you need to create complex, beautifully styled documents? Learn how to leverage the power of HTML/CSS with headless browsers.</description><pubDate>Tue, 20 May 2025 00:00:00 GMT</pubDate></item><item><title>Our Fullstack Architecture: Eta, HTMX, and Lit</title><link>https://www.lorenstew.art/blog/eta-htmx-lit-stack/</link><guid isPermaLink="true">https://www.lorenstew.art/blog/eta-htmx-lit-stack/</guid><description>Why choose between a fast MPA and a rich SPA? Our fullstack approach with Eta, HTMX, and Lit delivers the best of both worlds.</description><pubDate>Sat, 03 May 2025 00:00:00 GMT</pubDate></item><item><title>Bulletproof Your API: A Deep Dive into Custom Guards and Decorators in NestJS</title><link>https://www.lorenstew.art/blog/nestjs-guards-decorators/</link><guid isPermaLink="true">https://www.lorenstew.art/blog/nestjs-guards-decorators/</guid><description>In any robust backend application, security and clean code are paramount. Learn how NestJS&apos;s powerful combination of Guards and Custom Decorators can help you build secure, maintainable APIs.</description><pubDate>Tue, 08 Apr 2025 00:00:00 GMT</pubDate></item></channel></rss>