Auth: when we build it and when we buy it
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.
Frameworks, backends, databases, and the build choices behind fast web products.
Web developmentA 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.
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.
A plain look at what Bun's runtime, installer, bundler, and test runner handle today, and the specific corners where Node still deserves the job.
A scenario-based look at Go, Node.js, and Bun for backend work, covering team fluency, concurrency, deployment shape, and ecosystem depth.
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.
Three ways to keep one tenant's data away from another, what each one costs to operate, and how we weigh the tradeoff when a client asks.
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.
keyv and cacheable's maintainer account was hijacked on August 4, and the worm that followed reached 434 packages. Here's the one pnpm setting that blocks it, and the prompt we used to roll it out.
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.
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.
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's how we decide.
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.
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.
A mental-model comparison of Svelte 5's runes and React's hooks, grounded in two things we actually maintain: this site's one Svelte island and FurnitureAxis's React 19 frontend.
A monorepo solves one problem well, sharing types between apps without a publish step. For a small team, that's usually the whole decision.
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.
One Postgres instance quietly replaces a document store, a search service, a queue, and a tenant-isolation layer. Here's what it actually covers, and where it stops.
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.
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.
Tell us what you need. An engineer replies, not a sales team.