How we build
The technology behind your product — and why we choose it.
There's no single best tool. Every layer of a product has a few strong options, each better at a different job. Here's what we default to, and when we reach for something else instead.
-
Right tool per job
We match each layer's strengths to your product's real needs — team, budget, and how it's actually used.
-
One TypeScript spine
Where we can, one language runs from screen to database, so mistakes are caught before they ship.
-
Ship, then scale
Start lean and reach real users; adopt the heavier, enterprise-grade pieces only when scale demands them.
-
You own your data
We favour open, portable foundations over lock-in that gets expensive later.
Mobile apps
Android & iOS, from one codebase
Building for both app stores without doubling the work — and picking the framework that fits your product, not the trend of the month.
Choosing the framework
This decides your codebase, your talent pool, and your performance ceiling. In 2026 the capability gaps have narrowed — for most apps it's a fit-to-team decision, not a raw-power one.
-
React Native + Expo
TypeScript Avian pickNative apps written in React & TypeScript — one codebase, both stores.
- Largest talent pool; shares code with our web work
- Builds iOS in the cloud — no Mac required
consumer & content appsweb + mobile teams -
Flutter
DartGoogle's toolkit draws every pixel itself for identical UI everywhere.
- Pixel-perfect custom UI, 120fps animation
- Strong in fintech & design-led products
design-driven appsnew language -
Kotlin Multiplatform
nativeShare business logic as genuinely native binaries on each platform.
- Fully native performance & device access
- Reuses an existing Android codebase
strong Android teamsperformance-critical -
Native — Swift + Kotlin
2 codebasesEach platform in its own language — maximum control and platform feel.
- Deepest hardware use — AR, camera, health
- Day-one access to new OS features
flagship apps2× cost -
Capacitor / Ionic
web → appWrap an existing web app or PWA in a native container.
- Reuse a web app instantly — fastest to the stores
- Native features available through plugins
ship an existing PWAweb-view feel
Why we pickFor a brand-new app we default to React Native / Expo — the huge talent pool, code-sharing with our web work, and Mac-free cloud builds fit how we work and keep you flexible. We reach for Flutter when the product lives or dies on pixel-exact UI, native or Kotlin Multiplatform when hardware depth dominates, and Capacitor to get an existing web app into the store fast.
Inside the app
The building blocks that make the app fast and consistent: how it looks, how it remembers things, and how it talks to your server without lag.
-
NativeWind
UI Avian pick — stylingA utility-based design system — the same language as web Tailwind.
consistent design fast -
Zustand
state Avian pick — stateA tiny, no-boilerplate store for what's on screen. (Redux when a big team needs the structure.)
simple & fast -
TanStack Query
server data Avian pick — dataHandles fetching, caching and refresh so the app feels instant and stays in sync.
snappy, always fresh
Getting it to the stores
How the app is built, released, and updated after launch — including the trick that lets us build iOS apps without ever owning a Mac.
-
Expo EAS
build & ship Avian pickCloud builds for both stores, plus over-the-air updates for quick fixes.
- Builds iOS & Android in the cloud — no Mac
- Ship small fixes in minutes, skipping store review
every app we build -
Store accounts
one-timeThe unavoidable publishing costs, so there are no surprises.
- Google Play — $25 once
- Apple Developer — $99 / year
budget upfront
Web development
Websites & web apps that perform
From a fast marketing site to a full product dashboard — built to load quickly, rank well, and stay easy to change.
Choosing the foundation
This decides how fast the site loads, how well it ranks, and how easily it changes later. We match the foundation to what the site actually is — a brochure, a product, or a store.
-
Next.js + React
TypeScript Avian pick — web appsThe framework for real web applications — logins, dashboards, live data.
- Fast, SEO-friendly server rendering
- Shares its language with our mobile stack
dashboards & portalsstores with accounts -
Astro / static
HTML-first Avian pick — content sitesShips almost no JavaScript, so marketing & content sites load instantly.
- Top performance & SEO out of the box
- Cheap or free to host
marketing sitesblogs & docs -
Hand-built HTML/CSS
zero-buildFor small, fast, low-maintenance sites — like this very website.
- Nothing to break, nothing to update
- Loads in a blink, hosts anywhere
one-page siteslanding pages -
Headless CMS
self-editA friendly editor so your team updates content without calling us.
- Non-technical editing, still a fast site
- Sanity, Payload or WordPress as the source
content teamsfrequent updates
Why we pickIf the site is really an application — logins, data, dashboards — we use Next.js, so web and mobile share one language and one backend. If it's content — marketing, blog, docs — we use Astro or hand-built HTML for the fastest possible load and near-zero hosting cost. A headless CMS goes on top whenever your team needs to edit it themselves.
Styling & polish
How the site is designed and built to feel considered on every screen — laptop, tablet and phone — and usable by everyone.
-
Tailwind CSS
design system Avian pickA utility toolkit that keeps spacing, colour and type consistent everywhere.
consistent & responsive -
shadcn / Radix
components Avian pickAccessible, well-behaved components — menus, dialogs, forms — done right.
accessible by default -
Performance & SEO
built inFast loads, clean metadata, and dark mode — treated as part of the build, not an add-on.
ranks & loads well
Hosting & delivery
Where the site runs and how it reaches your visitors quickly and reliably, matched to the type of site.
-
Vercel
Next.js Avian pick — appsPush code, it deploys itself — with a global network and automatic scaling.
web apps -
Cloudflare / GitHub Pages
free tier Avian pick — staticFree, fast, global hosting for content and marketing sites — this site included.
content siteslow cost
Databases & data
Where your data lives, safely
Choosing the right store for the shape of your data, then keeping it fast, backed up, and secure as you grow.
Choosing the database
The rule that matters: the shape of your data decides more than any benchmark — pick the store that fits, and everything downstream gets easier.
-
PostgreSQL
relational Avian pickThe dependable all-rounder — tables and relationships, plus JSON, search and maps.
- Handles both structured and flexible data
- A widely-adopted choice for new projects in 2026
almost everythingstores, SaaS, reporting -
MySQL
relationalThe classic, with a huge ecosystem around WordPress and PHP.
- Fast on simple, read-heavy workloads
CMS & PHP stacks -
MongoDB
documentFor data shaped like free-form documents that change often.
- Flexible schema, high write volume
unstructured dataevent logs -
SQLite / Turso
edgeTiny and cheap, easy to give every client their own private database.
- Great for multi-tenant and edge apps
per-client setupslow cost
Why we pickPostgreSQL is our default — it covers both relational and document-style needs, so you rarely outgrow it. We use Turso/SQLite for lightweight, per-client setups, and reach for MongoDB only when the data is genuinely free-form.
Talking to it safely
The layer between the code and the database — where we prevent whole categories of bugs and security holes, and where the data is actually hosted.
-
Prisma
type-safe Avian pickTyped, safe database access with clean, tracked schema changes (migrations).
- Catches data mistakes before they ship
- Safe, reversible schema updates
most projects -
Drizzle
lightweightA leaner, SQL-close alternative for edge and speed-sensitive apps.
edge / serverless -
Neon / Supabase
managed Avian pick — hostingFully-managed Postgres — no servers to run, with a region close to India.
- Automatic scaling and backups
managed hosting
Keeping it safe
Data is the part of a business you can't afford to lose or leak. We treat protection as standard, not an upsell.
-
Backups
automaticPoint-in-time recovery, so a bad day is never a lost day.
-
Migrations
trackedEvery schema change is versioned and reversible — no risky manual edits.
-
Security
by defaultEncrypted connections, injection-safe queries, and least-privilege access.
Business systems
Inventory, commerce & dashboards
The systems that run a business day to day — stock and inventory, online storefronts with admin, invoicing, and the dashboards that tie them together.
-
Inventory & stock
Track stock across products, sizes and colours, with low-stock alerts and purchase orders — so you always know what you have and what to reorder.
-
Online store + admin
A branded storefront with a full back office — orders, catalogue, customers and dispatch, all in one place.
-
Invoicing & estimation
Quotes and invoices with GST/tax handled, payment status tracking, and clean PDFs — the paperwork that keeps cash flowing, minus the manual work.
-
Dashboards & reporting
One clear view of the numbers that matter — live KPIs, revenue trends and searchable records. See it live in our work.
-
Booking & reminders
Appointment scheduling with automatic WhatsApp and SMS reminders to reduce no-shows — the kind of tool that fits clinics, salons and local service businesses.
-
Portals & integrations
Client and staff portals, plus connections between the tools you already use — so data flows automatically instead of being re-typed.
How we build themThese run on the same foundation as everything above — a Next.js app, a PostgreSQL database, secure logins and role-based access — so your business system is fast, safe, and yours to grow. Want proof you can click? Two of our live demos already run this way — see them in our work.
In short
Best for what, at a glance
Our default picks across every layer, and when we reach for something else instead.
| The decision | Avian default | We reach for something else when… |
|---|---|---|
| Mobile framework | Expo / React Native | Flutter for pixel-exact UI · native for deep hardware · Capacitor to ship an existing web app |
| Inside the app | NativeWind · Zustand · TanStack Query | Redux when a large team needs the extra structure |
| Web foundation | Next.js for apps · Astro for content | Hand-built HTML for tiny sites · a CMS when you edit it yourself |
| Web hosting | Vercel · Cloudflare Pages | Matched to whether it's an app or a static site |
| Database | PostgreSQL | Turso for per-client setups · MongoDB for free-form data |
| Data access | Prisma | Drizzle for edge and speed-critical apps |
| Backend & login | Supabase or a Next.js API | Firebase for offline-first mobile · Auth0 when enterprise sign-on is required |
| Shipping mobile | Expo EAS | Cloud builds for both stores — no Mac needed |
Start a conversation
Tell us what's slowing you down.
We'll tell you, honestly, if we can help — usually within one business day.