JTjason.teixeira() Docs
services Book a call →
Home / Docs / What I build / Stack & integrations
What I build

Stack & integrations

The whole promise of this work is that it lands in your repo, your CI, and your conventions — so the honest answer to “does it work with our stack?” is almost always yes. Here’s the concrete version.

Everywhere on this site I say your repo, your CI, your conventions. This page makes that specific: what I demonstrably work in, and — just as important — why the parts that matter aren’t locked to any one vendor. The rule underneath all of it: the deliverables are plain, portable artifacts, so they drop into what you already run rather than forcing a migration.

#Version control & CI/CD

The eval gate and the regression suites are the two things that have to live in your pipeline. Both ship as ordinary commands — npm run eval, npx playwright test — so they wire into any runner that can execute a shell step. GitHub Actions is the default (it’s what the sample eval-gate workflow is written for), but nothing about the gate assumes it.

SystemNotes
GitHub ActionsThe default. The eval gate and Playwright suites ship as ready-to-run workflows, with the scorecard uploaded as a build artifact — see AI evaluation & quality.
GitLab CI · CircleCI · Jenkins · BuildkiteThe gate is a single command that exits non-zero below the floor, so it’s a few lines in any of these. I port the workflow to yours rather than asking you to adopt mine.
Self-hosted / air-gapped runnersRuns on your own runners with no dependency on a hosted service — the suite and its fixtures live in your repo and execute wherever your CI does.
!
Honest scope: GitHub Actions is where I’ve shipped the most, so it’s the fastest path. Anything else, I adapt to — but the portability claim rests on the gate being a plain command, not on me having a badge for every CI product. If you run something exotic, ask and I’ll tell you straight.

#LLM providers

The application and eval layers talk to a model behind a typed boundary, so the provider is a configuration choice, not an architecture decision. I pick it per engagement on capability, cost, latency — and data policy — rather than defaulting to one vendor.

ProviderNotes
OpenAIGPT models — function-calling and schema-constrained structured outputs, the same typed-boundary pattern shown in AI product engineering.
Anthropic (Claude)Long-context reasoning and tool use; a common choice where grounded, careful answers matter more than raw throughput.
DeepSeekStrong capability-per-dollar — a sensible default when a workload is cost-sensitive and the quality bar is met under eval.
Google GeminiUsed where its multimodal or long-context strengths fit the workload.
The provider is selected so your prompt and completion data is not used to train anyone’s model, and the exact vendor plus data-processing terms are named in the engagement’s SOW — never left vague. Full detail in Data & security.

#Automation platforms

For intake, triage, and routing workflows the platform is a means, not a religion — I reach for the lightest tool that fits the complexity and who has to maintain it. The short version:

Reach forWhenTrade-off
Make / ZapierSimple, linear glue between SaaS apps you already pay forFast to build; brittle past a few branches
n8n (self-host)Branching logic, your own data, or you want to own the runtimeMore control; you host and maintain it
Code (LangGraph / typed)AI in the loop, real state, retries, approval gates, testsMost robust and testable; needs an engineer to change
▸
The full trade-off — and why I’ll recommend code when the risk is real even though it’s the harder sell — is in AI workflow automation.

#The default stack, where there’s no constraint

When a build starts greenfield with no existing stack to honor, this is what I reach for — chosen for speed to production and low maintenance, not novelty. It’s the same default documented in Product & platform, and every piece is swappable for your equivalent:

stack
Frontend   Next.js (App Router) · React · TypeScript
Backend    Serverless functions · typed APIs · Zod validation
Data       Supabase / Postgres · row-level security
Payments   Stripe
Quality    Playwright + axe in CI · self-hosted fonts · strict CSP
Automation n8n / Make / LangGraph where a workflow fits
!
“Works in your stack” means exactly that: your conventions win. If your team is on Vue, Django, Rails, or a Postgres you already run, I build to it — I adapt to your codebase rather than importing mine into it. The defaults above are where I start only when there’s nothing to adapt to.
Not sure it fits your stack?
Book a call — tell me what you run and I’ll tell you straight whether it drops in.
Build your plan → 2 minor book a call →
© 2026 Jason Teixeira · Sage Ideas LLC · Documentation home · privacy · terms