Engineering System
How Bagtyyar builds and ships software with production-minded discipline.
The differentiator is not feature delivery — it is how the work is delivered. This page describes the repeatable engineering system behind every project in this portfolio: testing, Docker, CI/CD, architecture decisions, Railway deployment, migration discipline, and transparent milestone reporting.
Delivery Pillars
Testing Discipline
OKEvery project includes unit, integration, and end-to-end tests. TypeScript strict mode catches type-level regressions at build time. Vitest runs fast feedback on business logic, and Playwright smoke tests verify the public, admin, and private-room flows from the user's perspective.
Dockerized Environments
OKAll services run in Docker — the database, the application, and CI steps. A single `docker compose up` starts a production-like environment with zero manual setup. The Dockerfile is multi-stage, producing the same image that Railway deploys to production.
CI/CD Pipeline
OKGitHub Actions is the quality gate: Prisma validation, migration checks, seed verification, typechecking, unit tests, production build, Docker build, smoke tests, private-room checks, and accessibility scans. Railway deploys the Dockerized Next.js standalone app from main after the gate passes.
Maintainable Architecture
OKThe codebase uses feature-first organization with thin routes. Business logic lives in `src/features/*` or `src/lib/*`, not inside page files. Next.js App Router pages compose tested feature modules, keeping the surface area small and the behavior easy to change.
Architecture Decision Records
OKEvery significant technical decision is documented as an ADR in `docs/adr/`. Each record describes the context, the decision, and the trade-offs — so a new engineer (or my future self) can understand why the system is shaped the way it is, not just what was built.
Milestone Tracking
ActiveProjects ship in visible milestones — completed, current, and upcoming work is public. The Build Log captures dated progress updates, and private client rooms expose curated milestone views so clients always know where their project stands.
Railway pipeline
Production runs on Railway as a Docker container. The app uses Next.js standalone output, Railway-managed PostgreSQL, and runtime environment variables for secrets and canonical URLs. On startup, the container runs prisma migrate deploy before node server.js, so schema changes follow the same migration path in CI and production.
The current production domain is bagtyyar.dev. Railway owns deployment and runtime hosting; GitHub Actions owns the quality gate before code reaches main.