<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Dawloom Blog</title><description>Technical writing from the Dawloom team, grounded in projects we actually shipped.</description><link>https://dawloom.com/</link><item><title>How to vet an offshore development team before you send money</title><link>https://dawloom.com/blog/how-to-vet-an-offshore-development-team-before-you-send-money/</link><guid isPermaLink="true">https://dawloom.com/blog/how-to-vet-an-offshore-development-team-before-you-send-money/</guid><description>How to vet offshore teams: review client histories, open repositories, trial tasks, and red flags. Concrete verification steps before you hire or pay.</description><pubDate>Tue, 11 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Should you build your mobile app in C# instead of Flutter or React Native?</title><link>https://dawloom.com/blog/should-you-build-your-mobile-app-in-c-instead-of-flutter-or-react-native/</link><guid isPermaLink="true">https://dawloom.com/blog/should-you-build-your-mobile-app-in-c-instead-of-flutter-or-react-native/</guid><description>Choosing between .NET MAUI, Flutter, and React Native? Learn when MAUI loses (no C# hire, animation-heavy UI) and where it wins (existing .NET backend).</description><pubDate>Tue, 11 Aug 2026 00:00:00 GMT</pubDate></item><item><title>The AI SDKs we reach for in 2026, and when</title><link>https://dawloom.com/blog/ai-sdks-we-reach-for/</link><guid isPermaLink="true">https://dawloom.com/blog/ai-sdks-we-reach-for/</guid><description>OpenAI, Anthropic, the Vercel AI SDK, and OpenRouter each solve a different shape of AI project. Here&apos;s how we actually choose between them on client work.</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Auth: when we build it and when we buy it</title><link>https://dawloom.com/blog/auth-build-or-buy/</link><guid isPermaLink="true">https://dawloom.com/blog/auth-build-or-buy/</guid><description>A decision guide on OAuth sign-in and provider-managed two-factor authentication versus owning your own credential store, grounded in what compliance and account recovery actually cost.</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Background jobs that don&apos;t fall over</title><link>https://dawloom.com/blog/background-jobs-that-dont-fall-over/</link><guid isPermaLink="true">https://dawloom.com/blog/background-jobs-that-dont-fall-over/</guid><description>The patterns that keep scheduled and queued work reliable, idempotency, retries with backoff, dead letters, and keeping the job runner out of the web process.</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Bun in production: where it is ready and where it is not</title><link>https://dawloom.com/blog/bun-in-production/</link><guid isPermaLink="true">https://dawloom.com/blog/bun-in-production/</guid><description>A plain look at what Bun&apos;s runtime, installer, bundler, and test runner handle today, and the specific corners where Node still deserves the job.</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item><item><title>What five hundred deliveries taught us about client communication</title><link>https://dawloom.com/blog/client-communication-lessons/</link><guid isPermaLink="true">https://dawloom.com/blog/client-communication-lessons/</guid><description>Habits drawn from hundreds of small remote projects rather than one big client story. Short updates instead of long silences, demos instead of descriptions, bad news early, and scheduling that&apos;s honest about the timezone gap.</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Custom POS or Square: an honest build-vs-buy guide</title><link>https://dawloom.com/blog/custom-pos-or-square/</link><guid isPermaLink="true">https://dawloom.com/blog/custom-pos-or-square/</guid><description>Off-the-shelf point of sale software has gotten genuinely good. Here&apos;s where Square and Lightspeed still win outright, and the specific operational shapes where a custom build earns its cost.</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Desktop auto-updates: strategies that survive contact with users</title><link>https://dawloom.com/blog/desktop-auto-update-strategies/</link><guid isPermaLink="true">https://dawloom.com/blog/desktop-auto-update-strategies/</guid><description>A closer look at how Electron and Tauri handle update delivery, code signing, and failure, checked against their official docs.</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Expo or bare React Native in 2026</title><link>https://dawloom.com/blog/expo-vs-bare-react-native/</link><guid isPermaLink="true">https://dawloom.com/blog/expo-vs-bare-react-native/</guid><description>Where the Expo layer earns its keep, where config plugins and the Expo Modules API cover you, and the narrow case that still justifies dropping to bare React Native.</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item><item><title>How we scope fixed-price projects after nine years of freelancing</title><link>https://dawloom.com/blog/fixed-price-scoping-after-nine-years/</link><guid isPermaLink="true">https://dawloom.com/blog/fixed-price-scoping-after-nine-years/</guid><description>What years of delivered freelance projects taught us about writing down what&apos;s excluded, tying milestones to deliverables instead of dates, and the questions that surface hidden complexity before code starts.</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Go, Node, or Bun for your backend</title><link>https://dawloom.com/blog/go-node-or-bun-for-your-backend/</link><guid isPermaLink="true">https://dawloom.com/blog/go-node-or-bun-for-your-backend/</guid><description>A scenario-based look at Go, Node.js, and Bun for backend work, covering team fluency, concurrency, deployment shape, and ecosystem depth.</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item><item><title>How to get your business recommended by ChatGPT</title><link>https://dawloom.com/blog/how-to-get-recommended-by-chatgpt/</link><guid isPermaLink="true">https://dawloom.com/blog/how-to-get-recommended-by-chatgpt/</guid><description>The mechanical side of AI answer engine optimization. Robots.txt, structured data, llms.txt, and markdown for crawlers, built into dawloom.com and checkable on this page right now.</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Keeping Shopify in sync with an inventory system</title><link>https://dawloom.com/blog/keeping-shopify-in-sync/</link><guid isPermaLink="true">https://dawloom.com/blog/keeping-shopify-in-sync/</guid><description>A one-way push to Shopify works until the first order lands from the other side. Here&apos;s the architecture for a sync that stays honest, push on change or cron, listen for what comes back, and reconcile what neither side reports.</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item><item><title>MCP servers: what they are and when a business actually needs one</title><link>https://dawloom.com/blog/mcp-servers-when-a-business-needs-one/</link><guid isPermaLink="true">https://dawloom.com/blog/mcp-servers-when-a-business-needs-one/</guid><description>What the Model Context Protocol standardizes, what an MCP server can expose, and the honest signs a business should or shouldn&apos;t build one yet.</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Multi-tenant SaaS: row, schema, or database isolation</title><link>https://dawloom.com/blog/multi-tenant-isolation-models/</link><guid isPermaLink="true">https://dawloom.com/blog/multi-tenant-isolation-models/</guid><description>Three ways to keep one tenant&apos;s data away from another, what each one costs to operate, and how we weigh the tradeoff when a client asks.</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Next.js or Astro? We used one for a client&apos;s SaaS and the other for this site</title><link>https://dawloom.com/blog/nextjs-or-astro-how-we-choose/</link><guid isPermaLink="true">https://dawloom.com/blog/nextjs-or-astro-how-we-choose/</guid><description>A framework comparison grounded in two live Dawloom builds. FurnitureAxis runs on Next.js, dawloom.com runs on Astro, and the reasons are not interchangeable.</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item><item><title>The 15-day cooldown that would have stopped this week&apos;s npm attack</title><link>https://dawloom.com/blog/npm-attack-fifteen-day-cooldown/</link><guid isPermaLink="true">https://dawloom.com/blog/npm-attack-fifteen-day-cooldown/</guid><description>keyv and cacheable&apos;s maintainer account was hijacked on August 4, and the worm that followed reached 434 packages. Here&apos;s the one pnpm setting that blocks it, and the prompt we used to roll it out.</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item><item><title>OpenAI Agents SDK vs Claude Agent SDK: a closer look</title><link>https://dawloom.com/blog/openai-agents-sdk-vs-claude-agent-sdk/</link><guid isPermaLink="true">https://dawloom.com/blog/openai-agents-sdk-vs-claude-agent-sdk/</guid><description>Both SDKs run an agent loop, but they&apos;re built around different problems. One coordinates and hands off between agents. The other hands you Claude Code&apos;s own execution harness as a library.</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item><item><title>React Native or .NET MAUI: we ship both, here is how we choose</title><link>https://dawloom.com/blog/react-native-vs-dotnet-maui/</link><guid isPermaLink="true">https://dawloom.com/blog/react-native-vs-dotnet-maui/</guid><description>An honest comparison of React Native and .NET MAUI for cross-platform mobile, grounded in FurnitureAxis&apos;s Expo companion app and what each framework&apos;s own docs say about how it actually runs.</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item><item><title>What a real estate portal needs that a WordPress theme can&apos;t do</title><link>https://dawloom.com/blog/real-estate-portal-vs-wordpress-theme/</link><guid isPermaLink="true">https://dawloom.com/blog/real-estate-portal-vs-wordpress-theme/</guid><description>Listings ingestion, real filters, map performance, and lead routing all break a theme&apos;s assumptions eventually. Here&apos;s where that line actually sits, and when a theme is still the right call.</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Why we show linked reviews instead of testimonials</title><link>https://dawloom.com/blog/real-reviews-not-testimonials/</link><guid isPermaLink="true">https://dawloom.com/blog/real-reviews-not-testimonials/</guid><description>Our reviews page links straight to Fiverr and Freelancer profiles instead of running curated quotes, and we don&apos;t add review schema to it either. Here&apos;s why both choices are deliberate.</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item><item><title>What a realtime voice agent actually consists of</title><link>https://dawloom.com/blog/realtime-voice-agent-stack/</link><guid isPermaLink="true">https://dawloom.com/blog/realtime-voice-agent-stack/</guid><description>Booking and intake lines aren&apos;t one AI model answering a phone. They&apos;re five separate pieces, transport, model, tool calls, guardrails, and a handoff path, and each one is a real decision.</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Replatforming an online store without losing your rankings</title><link>https://dawloom.com/blog/replatforming-without-losing-seo/</link><guid isPermaLink="true">https://dawloom.com/blog/replatforming-without-losing-seo/</guid><description>A migration checklist for ecommerce replatforms, covering URL mapping, 301s, canonical tags, sitemap cutover, structured data parity, and what to watch in Search Console after launch.</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Search: Postgres full-text, Algolia, or Meilisearch</title><link>https://dawloom.com/blog/search-postgres-algolia-or-meilisearch/</link><guid isPermaLink="true">https://dawloom.com/blog/search-postgres-algolia-or-meilisearch/</guid><description>Database-native search covers more than people assume, right up until typo tolerance and faceting become the job. Where that line sits, and what it costs to keep an index in sync once you cross it.</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Serialized inventory: why furniture retail can&apos;t run on stock counts</title><link>https://dawloom.com/blog/serialized-inventory-why-counts-fail/</link><guid isPermaLink="true">https://dawloom.com/blog/serialized-inventory-why-counts-fail/</guid><description>Quantity fields work for interchangeable stock. Big-ticket furniture retail needs a record per physical unit, and here&apos;s why the difference matters once returns and repairs enter the picture.</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Server Actions or API routes in Next.js</title><link>https://dawloom.com/blog/server-actions-vs-api-routes/</link><guid isPermaLink="true">https://dawloom.com/blog/server-actions-vs-api-routes/</guid><description>Server Actions cover most mutations in a Next.js app, but webhooks, third-party callers, and non-React clients still need a real route. Here&apos;s how we decide.</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Should this feature be AI? The checklist we run</title><link>https://dawloom.com/blog/should-this-feature-be-ai/</link><guid isPermaLink="true">https://dawloom.com/blog/should-this-feature-be-ai/</guid><description>A five-question checklist for deciding whether a feature actually needs a model, or whether plain code and a database query would serve the client better.</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Static, server-rendered, or islands: a guide for people who buy software</title><link>https://dawloom.com/blog/static-ssr-or-islands-explained-for-buyers/</link><guid isPermaLink="true">https://dawloom.com/blog/static-ssr-or-islands-explained-for-buyers/</guid><description>A plain-language explainer of the three rendering models, grounded in two live Dawloom builds, so you know what a proposal is asking you to pay for.</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Stripe subscriptions: the patterns we reuse</title><link>https://dawloom.com/blog/stripe-subscription-patterns/</link><guid isPermaLink="true">https://dawloom.com/blog/stripe-subscription-patterns/</guid><description>How we structure Stripe billing integrations, webhooks as the source of truth, idempotent handlers, the customer portal instead of a custom billing screen, and test clocks for the renewal that only happens once a quarter.</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Svelte 5 runes vs React hooks: we write both every week</title><link>https://dawloom.com/blog/svelte-5-runes-vs-react-hooks/</link><guid isPermaLink="true">https://dawloom.com/blog/svelte-5-runes-vs-react-hooks/</guid><description>A mental-model comparison of Svelte 5&apos;s runes and React&apos;s hooks, grounded in two things we actually maintain: this site&apos;s one Svelte island and FurnitureAxis&apos;s React 19 frontend.</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Tauri or Electron in 2026: how we decide for desktop apps</title><link>https://dawloom.com/blog/tauri-or-electron-in-2026/</link><guid isPermaLink="true">https://dawloom.com/blog/tauri-or-electron-in-2026/</guid><description>An honest, technically grounded comparison of Tauri and Electron for shipping desktop apps, and the questions we actually ask clients before picking one.</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item><item><title>The monorepo question for small teams</title><link>https://dawloom.com/blog/the-monorepo-question/</link><guid isPermaLink="true">https://dawloom.com/blog/the-monorepo-question/</guid><description>A monorepo solves one problem well, sharing types between apps without a publish step. For a small team, that&apos;s usually the whole decision.</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item><item><title>TypeScript strict mode on a hundred-model codebase</title><link>https://dawloom.com/blog/typescript-strict-mode-at-scale/</link><guid isPermaLink="true">https://dawloom.com/blog/typescript-strict-mode-at-scale/</guid><description>What the strict compiler flag actually turns on, what it costs to enable late, and why we leave it on for a Prisma schema that has grown past a hundred models.</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item><item><title>The signs your spreadsheet just became an ERP</title><link>https://dawloom.com/blog/when-the-spreadsheet-becomes-an-erp/</link><guid isPermaLink="true">https://dawloom.com/blog/when-the-spreadsheet-becomes-an-erp/</guid><description>Four moments when a shared spreadsheet stops behaving like a spreadsheet and starts needing what a real system provides, plus what a first system should actually be.</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Why Postgres is our default database</title><link>https://dawloom.com/blog/why-we-default-to-postgres/</link><guid isPermaLink="true">https://dawloom.com/blog/why-we-default-to-postgres/</guid><description>One Postgres instance quietly replaces a document store, a search service, a queue, and a tenant-isolation layer. Here&apos;s what it actually covers, and where it stops.</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Why this site loads in under a second, and what that has to do with ChatGPT</title><link>https://dawloom.com/blog/why-this-site-loads-in-under-a-second/</link><guid isPermaLink="true">https://dawloom.com/blog/why-this-site-loads-in-under-a-second/</guid><description>How we built dawloom.com with Astro, almost no JavaScript, and a Cloudflare Worker that watches AI crawlers. The same decisions we make for client projects, applied to our own.</description><pubDate>Tue, 04 Aug 2026 00:00:00 GMT</pubDate></item><item><title>We had a purple logo. Here&apos;s why we walked away from it.</title><link>https://dawloom.com/blog/why-we-changed-our-colors/</link><guid isPermaLink="true">https://dawloom.com/blog/why-we-changed-our-colors/</guid><description>The honest story of the Dawloom rebrand, from a purple brand kit to warm cream and ink, and what studying sites we admire taught us about standing out in the AI era.</description><pubDate>Tue, 04 Aug 2026 00:00:00 GMT</pubDate></item></channel></rss>