Skip to content

kenton/devex-flow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

devex-flow

A Golden Path starter kit demonstrating developer experience infrastructure for a Turborepo monorepo. Built as a reference implementation for standardized local development, CI/CD, and shared tooling across multiple apps.

CI

What this is

This repo models the kind of developer environment a DevEx team would own and maintain. It provides a consistent, repeatable setup so every developer starts from the same foundation: the right way is the default way.

App idea

A military operation name generator built on the classic two-word format of a random adjective paired with a noun, in the tradition of Operation Desert Storm, Operation Phantom Fury, and Operation Iron Fist. Generate a name with one click, save favorites to a database, and delete the ones that don't make the cut. The domain is intentional...built as a reference implementation while preparing for a developer experience role at a mission-driven defense tech company.

2026-03-10_08-50-31

Stack

Note: I wanted sufficient complexity to be relevant without over-engineering this demo

  • Turborepo — monorepo task orchestration with caching and parallelization
  • Next.js — web application (apps/web)
  • Prisma — ORM with PostgreSQL
  • Docker + Docker Compose — containerized local development environment
  • GitHub Actions — CI pipeline running lint, typecheck, test, and build
  • Vitest — unit testing
  • TypeScript — across all apps and packages

Structure

devex-flow/
├── apps/
│   ├── web/          # Next.js web application
│   ├── api/          # API service
│   └── cli/          # CLI tooling
├── docker-compose.yml
├── turbo.json
└── package.json

Getting started

1. Set your .env

POSTGRES_USER=
POSTGRES_PASSWORD=
POSTGRES_DB=
DATABASE_URL=postgresql://[POSTGRES_USER]:[POSTGRES_PASSWORD]@localhost:5432/[POSTGRES_DB]?schema=public

2. Install dependencies

npm install

3. Post-Install Setup

Note: Consider wrapping the following in a shell script or similar so these and other similar post-dependency install commands can be run in one shot.

Generate Prisma clients (this is an implementation detail specific to this app since it's using Prisma as the ORM)

cd apps/api && npx prisma generate && cd ../..
cd apps/web && npx prisma generate && cd ../..

Symlink .env to web and api apps

ln -sf ../../.env apps/web/.env
ln -sf ../../.env apps/api/.env

4. Start local development DB or other infrastructure (Docker is for spinning up infra)

docker compose up

5. Run all apps in development mode (Turborepo is for spinning up all apps)

turbo run dev

CI pipeline

Every push runs the full pipeline via GitHub Actions:

turbo run lint      # ESLint across all apps
turbo run typecheck # TypeScript typecheck across all apps
turbo run test      # Vitest unit tests
turbo run build     # Production build

Turborepo caching ensures only affected packages are rebuilt on each run.

Why this exists

Developer experience is a force multiplier. A well-designed Golden Path means new engineers ship on day one, good practices are defaults rather than documentation, and CI feedback is fast and trustworthy.

This repo is a working reference implementation of those principles.

About

Military operation name generator. Golden Path starter kit built with Turborepo, Next.js, Docker, and GitHub Actions CI

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors