← All posts

A CI setup that actually works for small teams

May 04, 20261 min readDevOps

The most common mistake in small-team CI is copying big-company processes: dozens of jobs, layers of caching, matrix builds... In a two-person team the actual need is different: fast feedback and safe deploys.

The minimum useful pipeline

My default setup has three steps:

.github/workflows/deploy.yml
on:
  push:
    branches: [main]
 
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm ci && npm run lint && npm run build
      - name: Deploy
        run: rsync -az .next/ deploy@server:/var/www/app/
      - name: Health check
        run: curl -f https://example.com || exit 1

CI's job is not to slow you down; it's to stop a bad release from reaching users.

That's it. As the team grows you can add test parallelization, preview environments and staged rollouts - but first make sure these three steps work every single time.

Murat Özdemir

Product manager & mobile developer. Writes about product, performance and good interfaces.