Our Technology Stack for Web, SaaS & AI Development
We pick tools for the job, not for fashion. This is the set of tools behind our web applications, SaaS products, and AI features: React, Next.js, Astro, Node.js, PostgreSQL, AWS, and the OpenAI and Anthropic APIs.
Frontend Development
We build fast, responsive interfaces from reusable components, so changing a screen next year doesn't mean rewriting five others.
React
The core library behind our UI work. It suits screens people interact with, and plenty of developers already know it, which helps when you hire.
Next.js
Our framework for production web applications. One codebase covers pages prepared on the server, pre-built pages, and the connection points your apps need, and search engines get finished pages instead of empty ones.
Astro
Our pick for static and content-driven websites. Astro ships plain HTML with very little JavaScript by default, so pages load fast and are easy for search engines to read. When a site needs more app-like behavior, we reach for Next.js instead.
TypeScript
We use strict TypeScript on the frontend and the backend. It's the cheapest bug prevention we know: the checker catches whole categories of mistakes before your users do.
Tailwind CSS
Our default for styling. Styles sit right next to the page they belong to, so the stylesheet doesn't grow into something nobody dares to edit.
Backend Development
Backends should be boring in the best way: predictable under load, secure by default, and readable when the business logic gets complicated.
Node.js
The base of our backend stack. A lot of web work is waiting on databases, APIs, and file uploads, and Node handles that kind of waiting well.
NestJS
When many hands will touch a codebase, we use NestJS. Its strict structure keeps a large backend consistent no matter who wrote which part.
Express
For lean APIs and small, focused services, we use Express. It stays out of the way, and its add-on ecosystem covers most of what we need.
Databases
Your data outlives your code, so we default to relational databases with a carefully designed schema instead of loosely structured storage.
PostgreSQL
Our default database. Postgres is reliable, handles complex queries well, and covers JSON when a table needs flexible fields. It does most jobs well, so we only reach for something else when there's a reason.
MySQL
A solid choice when you already run it, or when a project is dominated by read traffic. We'd rather work with what you have than migrate for the sake of it.
Cloud & Infrastructure
We deploy to cloud accounts that you own, with automated pipelines and containers, so releases are repeatable and your team can run them after handoff.
AWS
Where we host most projects: EC2, S3, RDS, Lambda, and the rest. Hosting, storage, databases, and serverless functions sit under one account that you own.
GCP
Strong on load balancing, Kubernetes, and data warehousing, so it's our pick for containerized and data-heavy systems.
Azure
For teams already in the Microsoft ecosystem, we deploy to Azure and use its app services and identity tools, including Active Directory sign-in.
Docker
We package applications in Docker, so what runs on a developer's laptop behaves the same in staging and production. It ends a lot of works-on-my-machine arguments.
Git
Every project lives in Git. Small reviewed changes, with automated checks and deployments on top, keep the history readable and rollbacks easy.
AI & ML
Practical use of large language models (LLMs) in products and workflows: RAG, document processing, semantic search, and agents. We measure cost and quality instead of guessing.
OpenAI
OpenAI's GPT models and embeddings API for chat interfaces, semantic search, and pulling structured data out of messy text. We pick the model per task and keep the code provider-agnostic.
Anthropic
For long documents, code analysis, careful reasoning, and agent workflows, we use Anthropic's Claude models, again chosen per task.