Home / Blog

The SaaS Stack Behind Seztech: Next.js, Prisma, MySQL & AWS

By Ajay Pandey · April 2026 · 10 min read

Running three production SaaS products — Byvano, DeskTrust, and RxCompliant — on a small team requires a tech stack that maximizes developer productivity without sacrificing reliability. Here is exactly what we use and why.

The Core Stack

All three products share the same foundational technologies:

Why Next.js App Router

We chose Next.js because it eliminates the need for a separate backend. API routes live alongside frontend pages, reducing deployment complexity. The App Router (introduced in Next.js 13) gives us React Server Components for SEO-critical marketing pages and client components for interactive dashboard UIs.

The trade-off: App Router has a steeper learning curve than Pages Router, and some edge cases (like mixing server/client components) can be confusing. But the productivity gains are worth it.

Prisma as ORM

Prisma gives us type-safe database queries with excellent migration support. The schema file serves as documentation — you can read our data model and understand the entire application. We use for performance-critical queries (bulk updates, analytics aggregation) and Prisma Client for everything else.

One lesson: Prisma's @updatedAt directive does not trigger when you update a row to the same value. We discovered this when our employee monitoring heartbeat system was failing — the fix was switching to raw SQL for status updates that need to always refresh the timestamp.

Hosting: Hostinger VPS + AWS EC2

We run Byvano and RxCompliant on a Hostinger VPS (cost-effective for mid-traffic SaaS) and DeskTrust on AWS EC2 (needed for the real-time screenshot processing workload). Both use PM2 for process management and Nginx as reverse proxy.

Monthly hosting cost for all three products: under 0. That is one of the advantages of Next.js — the entire stack (frontend + API + SSR) runs as a single Node.js process, so you do not need separate frontend and backend servers.

AI Integration

We use AI across all three products:

Our approach to AI costs: always use the cheapest model that meets the quality bar. For DeskTrust transcription, Gemini Flash is fast and cheap. For RxCompliant prescription analysis, we need Claude's superior document understanding.

Desktop Agent (DeskTrust-Specific)

DeskTrust's desktop agent is a Node.js application that runs on employee computers (Windows, macOS, Linux). It captures screenshots, detects active windows, monitors idle/lock state, and uploads data to the server. The agent includes auto-update capability — it checks the server for new versions on startup and self-updates.

Key technical decisions for the agent:

Deployment Pipeline

Our deployment is simple: git pull && npm run build && pm2 restart. No CI/CD pipeline, no Docker, no Kubernetes. For a team our size, this is the right level of complexity. We will add CI/CD when we need it, not before.

What We Would Do Differently

If starting over, we would:

  1. Use TypeScript from day one on all projects (RxCompliant uses it, the others do not)
  2. Set up a shared component library between the three products
  3. Implement proper CI/CD earlier (even just GitHub Actions for linting and tests)
  4. Use PostgreSQL instead of MySQL (Prisma works better with Postgres features like JSON queries)

Built with This Stack

See the products we built: Byvano, DeskTrust, RxCompliant