SaaS, not prototypes
Next.js App Router, Supabase Postgres with RLS, and Stripe billing — architecture built to hold up once real customers and their data show up.
Eagletrion is the studio Nguyen Vo builds SaaS products under — Next.js, Supabase and TypeScript, from first commit to paying customers. No handoffs, no agency layers: the person who designs it is the person who ships it.
'use server' import { createClient } from '@/lib/supabase/server' export async function createBooking(input: BookingInput) { const supabase = await createClient() const { data, error } = await supabase .from('bookings') .insert({ ...input, status: 'confirmed' }) .select() .single() if (error) throw error return data }
A one-person studio, so nothing is lost between the plan and what ships. Every product below was designed and coded by the same hands.
Next.js App Router, Supabase Postgres with RLS, and Stripe billing — architecture built to hold up once real customers and their data show up.
Tailwind-based tokens and components, kept consistent because the same person makes the design call and writes the code for it.
DSGVO compliance built into the architecture from day one — EU hosting, data-processing agreements, and auto-generated legal pages, not bolted on later.
The technologies Eagletrion works in every day — not a long list of everything once tried.
App Router, Server Actions, ISR — the framework both live products run on.
Postgres, row-level security, auth, and storage as the backend of record.
End to end — database types through to the UI, no untyped gaps.
Utility-first styling kept to a disciplined token set, not ad-hoc classes.
Subscriptions, proration, and webhook-verified state — done once, done right.
EU hosting, AVV documentation, and Impressum generation baked into the build.
Fast by default, structured data and metadata treated as part of the build.
Cursor and Claude for velocity — every line still reviewed and owned.
Zugang Online is Eagletrion's flagship — a working SaaS with real customers. Below it, the rest of the track record.
A bio-link and booking SaaS for German local businesses — salons, barbershops, studios. One page with opening hours, contact, social links and a QR code; commission-free online booking with automated reminders; a custom domain; and an auto-generated Impressum, so the legal page is never an afterthought.

A structured German-learning app, A2 to B1, with dialogue, vocabulary, grammar, writing and knowledge-test modules behind a personalized dashboard. Auth, persistent progress, and a modular architecture built to extend to other languages and CEFR levels — deployed to production with automated deploys.
Next.js · React · TypeScript · Tailwind CSS · Supabase · PostgreSQL

Stat cards, revenue and user charts, a geographic view, and an AI assistant that answers questions about the data directly — built to stay coherent as features piled on.

Search and filtering across agencies, contract types and locations, with dense job-listing cards that stay scannable — the same problem space as a modern ATS.

Compares two railway-signaling configuration files as readable field-and-value rows, old beside new. Every change carries its meaning three ways — colour, icon, and text — so a colour-blind reviewer never has to guess.
The same person carries it start to finish — that's what keeps a four-step process to four steps.
Talk to who'll use it. Turn a vague brief into a concrete plan and the one job the product has to do.
Shape the UI and the Supabase schema together, so the design is grounded in what the data can actually do.
Ship it as production Next.js: typed end to end, tested, and tuned to feel fast on real devices.
Deploy, monitor, and keep iterating against real usage — the same person who built it keeps it running.
Next.js, Supabase and TypeScript, built by the person you talk to — from the first spec to a live, GDPR-compliant product.