Feature Architecture
Overview
Feature architecture is how a product capability is organized across UI, data, and behavior.
Why It Matters
Features become easier to ship when the boundaries between their parts are intentional.
Core Concepts
- Keep feature code cohesive.
- Separate feature-specific logic from shared infrastructure.
- Design for the life cycle of the feature.
Mental Models
Think in slices: route, state, API, components, tests, and rollout.
Best Practices
- Group related code together.
- Keep feature state close to feature consumers.
- Extract shared code only when it repeats.
Common Mistakes
- Spreading one feature across many folders without a reason.
- Pulling too much into shared layers.
- Ignoring feature flags and rollout needs.
Trade-offs
Feature-local code is easier to change, but shared abstractions can reduce duplication when the pattern is stable.
Decision Framework
flowchart TD
A[New feature] --> B[Local only?]
B -->|Yes| C[Keep feature-contained]
B -->|No| D[Extract shared layer]
Examples
- Keep a settings flow inside one feature folder until multiple products need the same pattern.
Checklists
- Is the feature still easy to navigate?
- Is shared code actually shared?
- Are rollout and rollback covered?
Senior Engineer Notes
Senior engineers try to keep features boring to change. When the shape is obvious, delivery is faster.