Brownfield Project

A brownfield project involves working with an existing codebase that has established patterns, dependencies, and technical decisions already in place. For vibe coders, brownfield work is more challenging than greenfield because AI must understand and respect existing conventions rather than starting fresh.

Example

You join a team with a three-year-old Rails application. Adding a new feature means AI must understand the existing architecture, follow established patterns, work with the current database schema, and integrate with existing code — not just generate something from scratch.

Most real-world development is brownfield. While greenfield gets the attention, learning to vibe code effectively in existing codebases is where the practical value lies.

Brownfield vs Greenfield

BrownfieldGreenfield
Existing codebaseStart from zero
Must match patternsFreedom to choose
Inherited technical debtClean slate
AI needs more contextAI can scaffold freely
Most real-world workNew projects only

Challenges of Brownfield Vibe Coding

  1. Context loading — AI needs to understand existing patterns before generating code
  2. Convention matching — Generated code must fit the existing style
  3. Dependency awareness — AI must work with existing libraries, not introduce new ones
  4. Legacy constraints — Older patterns may conflict with what AI considers "best practice"

Making AI Work in Brownfield

Provide Context

  • Share relevant existing files with AI
  • Explain project conventions explicitly
  • Use Cursor Rules to document patterns

Set Constraints

  • "Follow the existing pattern in user-controller.ts"
  • "Use the same styling approach as the dashboard component"
  • "Don't add new dependencies"

Review Carefully

  • AI might "improve" code by changing conventions
  • Watch for inconsistent naming or style
  • Verify new code integrates with existing systems

The Brownfield Advantage

Brownfield projects have working infrastructure, tested patterns, and proven architecture. AI doesn't need to make these decisions — it just needs to follow them. When you provide good context, AI can be remarkably effective at extending existing codebases.