Skip to content

Development Workflow

Git Workflow

Branch Strategy

  • main - Production code
  • develop - Development integration
  • qa - QA testing
  • feature/* - New features
  • bugfix/* - Bug fixes

Creating Branches

Use Shortcut's git integration for automatic branch naming:

bash
# Pattern: type/sc-[ticket-id]-description
git checkout -b feature/sc-123-add-event-creation

💡 Tip: Use Git Worktrees for Parallel Development

For working on multiple features simultaneously without context switching:

bash
# Create a worktree instead of switching branches
./scripts/worktree.sh feature/sc-123-add-event-creation

This creates an isolated source workspace with its own environment files and dependencies. The full-stack Docker project and its database volumes are shared across worktrees, so only one worktree can own the running stack at a time. Learn more about Git Worktrees →

Commit Messages

Start all commit messages with the Shortcut story number:

bash
[sc-123] add event creation form
[sc-456] fix date picker bug
[sc-789] update API documentation
[sc-101] upgrade dependencies

Development Process

Starting Work

  1. Pick task from Shortcut
  2. Create branch from develop
  3. Make changes
  4. Push and create PR

Code Standards

  • TypeScript for all new code
  • Run linter before committing: pnpm run lint
  • Follow existing patterns in codebase

Before Creating PR

bash
# Ensure code quality
pnpm run lint
pnpm run build

Deployment

  • Push to develop → Deploys to dev environment
  • Push to qa → Deploys to QA environment
  • Push to main → Deploys to production (requires approval)

Quick Commands

bash
# Development
pnpm run dev:stack:up             # Start the default full-stack Docker environment
pnpm run dev:infra:up             # Start infrastructure for host mode
pnpm run dev -- --filter=server   # Backend only on the host
pnpm run dev -- --filter=webapp   # Webapp only on the host

# Database
pnpm run migration:run    # Run migrations
pnpm run db:seed         # Seed data

# Code quality
pnpm run lint            # Check code
pnpm run format          # Fix formatting

Resources

Built with ❤️ by the Jubiloop team