Our technologyFor CTOs, tech leads, and engineers

The tools we use, and why we chose them.

The tools we default to, why we picked them, and what we refuse to build on. Reliable, widely used, and ready to hand back to your team on day one if you ever want to bring the work in-house. If you are not technical, the short version is: your team can own every piece of this long after we are gone.


Four principles

Every tool must earn its place. We remove tools that fail our criteria.

Four simple rules guide what we add or remove from the stack. They are not exciting on purpose. We avoid clever policies because they introduce unpredictable failures, and surprise problems break weekly deliveries.

Proven and widely used

We do not chase the newest framework. We pick tools that have been used in real production for years, because weekly releases depend on reliability.

One language across the stack

We use TypeScript from the database layer to the user interface. That removes a whole set of bugs before they ever reach a release.

Everything is written down

Infrastructure is written as code. Changes go through review. Decisions sit in a written log. Nothing important lives only in a dashboard.

You can always leave

Every tool we use has a way out. No vendor lock-in, no hidden platforms, and no setup that makes it expensive to bring the work in-house later.


Our default stack5 areas

Languages

One language across the whole stack

Switching between languages slows teams down. We pick one runtime and use it end to end so the team can move faster.

  • TypeScript

    Strict mode by default. Types travel from the database schema to the client component.

  • Node.js

    Runs our backends, scripts, and edge functions. Same runtime, same debugging tools.

  • Bun

    Dev scripts, test runs, and one-off tooling. Faster feedback where it counts.

Frontend

Small, reliable, predictable tools

Brand-new frameworks often do not last a year of weekly releases. Every frontend tool below has been in real production use with us for at least a year.

  • React 19

    Industry default. Every senior engineer we hire is productive on day one.

  • Next.js / TanStack Start

    SEO-heavy marketing gets Next. App-heavy builds get TanStack Start.

  • Tailwind CSS

    Utility-first styling removes the cascade problem. Easy handover, easy theming.

  • shadcn/ui

    Copy-in components, no framework lock-in. Design tokens live in your repo.

Data

Relational data you can back up and move

When there is a data issue, it should be a business problem we can explain, not an opaque failure. Nothing here is flashy. Everything here can be backed up, moved, or recovered.

  • PostgreSQL

    Our default. Mature, predictable, and every hosted provider supports it.

  • Redis

    Queues, rate-limits, and caches. Nothing that cannot be rebuilt from Postgres.

Infrastructure

Runs inside your own accounts

Your cloud bill and logins. Critical systems do not run only on our infrastructure, so you can always take the system back.

  • AWS

    ECS, RDS, S3, CloudFront. Our default home for production workloads.

  • Cloudflare

    Edge, DNS, and workers. Used for global latency and simple proxies.

  • Terraform

    Every piece of infrastructure is code. No manual console-only changes. Every resource is defined in code.

  • Docker

    One build, same container from laptop to production.

Quality and monitoring

Release quality matters as much as feature work

Releasing every week requires a steady automated process and clear reporting you can trust when something goes wrong.

  • Playwright

    End-to-end tests we actually trust. Run on every pull request.

  • Vitest

    Unit tests, fast feedback, ESM-friendly.

  • Biome / ESLint

    One style across the monorepo. Enforced in CI, not by humans.

  • Datadog / Grafana

    Picked per stack. Logs, metrics, traces, one dashboard per service.


When the project needs something different

Real-time features

When live updates are part of the product

We only reach for these when the product truly needs real-time updates. We do not push them onto projects that do not benefit.

  • Convex

    Reactive queries + serverless functions. Great for internal tools and realtime dashboards where Postgres would demand heavy plumbing.

  • Elixir / Phoenix

    Soft-realtime and high-concurrency workloads. LiveView supports soft-realtime UIs with less custom plumbing than many stacks.

When you already have a stack

Stacks we are happy to work inside

If your product is already built on these, we do not ask you to rewrite it. We bring a senior engineer who knows the tool and we start delivering in week one.

  • Django

    Batteries-included Python. DRF for APIs, Celery for jobs. We run it, we don't replace it.

  • Ruby on Rails

    Convention over configuration still ships. Hotwire and Sidekiq cover a wide range of product needs.

  • Laravel

    PHP done right. Octane + Horizon is a perfectly reasonable home.

  • Go

    For high-throughput services and CLIs. We add a senior lead without rewriting the world.

  • Express.js

    If your API is here, we modernise around it instead of starting over.

  • MongoDB

    Used when a client is already on it. We migrate to Postgres only when it pays for itself.


What we will not build on6 patterns we avoid

What we refuse to build is as important as what we ship.

These are not bans on specific languages or tools. They are about how those tools get used. If a plan falls into one of these, we will say so before we start the work.

  • The newest framework of the moment

    Every tool has to survive twelve months of weekly releases. If it cannot, we do not use it.

  • No-code as the core of your product

    Marketing pages are fine on no-code. Your main product logic is not. No-code works until the day you really need more control.

  • Splitting systems apart too early

    Splitting a product into many small services too early slows every new feature. We only split when the business really needs it.

  • Tools you cannot leave

    If another team cannot take over your system within a week, we will not build it on that tool. Portability and handover matter more than flashy features.

  • Settings hidden in dashboards

    Anything changed only through a web dashboard eventually becomes a mystery. Infrastructure should be written as code and reviewed.

  • Rewriting what already works

    A system that works is holding up your business. We improve it from the inside before we ever suggest starting from scratch.


Different technology stack? No problem.

If you use Django, Rails, Laravel, or Go, we can still ship weekly.

We work inside your existing code when that is the best option. Share a short brief and access to your code, and we will come back with a weekly plan we can start on in the first week.



Talk to the founder

Talk to the founder directly.

Fifteen minutes on a video call. If we are not the right fit for what you need, I will say so. No sales pitch, no follow-up emails.

Rosaan, Founder of Antdragon
RosaanFounder · reviews every weekly update