There are two different answers to “what’s your stack,” depending on which stack you’re asking about. One is what we build client work in. The other is what runs our own site, which we treat as a working example rather than a marketing page.
What we build client work in
The frameworks and languages we use on client projects are documented on /stack/: React, Next.js, Svelte, Astro, React Native, .NET MAUI, Tauri, Electron, .NET, Node, Bun, Go, and Python. Which one we pick depends on the project, and the stack pages explain when each one makes sense.
The AI-specific side of our work, models, agent frameworks, and integration patterns, lives on /ai/: OpenAI, Anthropic, the Vercel AI SDK, OpenRouter, and MCP servers. That page covers what we reach for when a client project needs AI features.
Our own site is the reference build
dawloom.com is built with Astro 7 and Svelte 5 islands, and it ships as static files served from Cloudflare Workers rather than rendering pages on request. It deploys automatically from GitHub on every push, so what’s live is always what’s in the repository. On mobile, it scores around 97 on Lighthouse performance.
We lint and format it with oxlint and oxfmt, mainly because they’re fast enough that we don’t think about them. Analytics run through PostHog, and that includes server-side tracking of which pages AI crawlers request and what they get back, which we’ve used to find pages worth writing before anyone asked for them directly. Every page on the site is also available as plain markdown to AI agents that request it, on top of the normal HTML. We wrote up the reasoning behind both of those decisions in why this site loads in under a second and how to get recommended by ChatGPT.
Supply chain protection
Packages install through pnpm with a 15-day minimum release age. A freshly published version can’t reach our machines until the ecosystem has had two weeks to catch it if it’s poisoned. Dependency install scripts stay blocked unless we approve them one by one. The reasoning is written up in the npm attack post.
We use AI tools daily, and we don’t hide it
Claude Code is part of how we write software here, alongside the rest of the AI tooling covered on /ai/. We’re open about that.
Our rule is that AI can speed up the work, but a person here owns all of it. Every claim we publish and every line we ship is something a person here has checked and is willing to stand behind. If a tool wrote the first draft of a paragraph or a function, that’s fine. If nobody on the team verified it before it went out, that’s not.
Default infrastructure for client projects
Absent a reason to do otherwise, we default to PostgreSQL as the database. Hosting is Cloudflare unless the client already has a preference or a constraint that points somewhere else. And the client owns every account involved, the hosting, the database, the domain, the third-party services, starting on day one. How that ownership gets set up and confirmed is covered on how projects run.
We write these defaults down so you can check them before you hire us.