Skip to content

Product Requirements Documents (PRD)

Version: 1.0.0 | Last Updated: 2025-01-06 | Status: Active

Overview

Product Requirements Documents (PRDs) define the features, functionality, and user experience of MBPanel products. Each PRD captures the "what" and "why" of product decisions.

What is a PRD?

A PRD is a living document that: - Defines feature requirements from the user's perspective - Outlines success metrics and acceptance criteria - Provides context for engineering implementation - Serves as the single source of truth for product decisions

Active PRDs

In Development

Proposed

Completed

PRD Template

To create a new PRD, use this template:

# PRD-XXX: [Feature Name]

**Status:** Proposed | In Development | Beta | GA | Deprecated
**Version:** 1.0.0
**Created:** YYYY-MM-DD
**Updated:** YYYY-MM-DD
**Author:** @product-manager
**Engineers:** @engineer1, @engineer2

## Problem Statement
[What problem are we solving and for whom?]

## Goals
[What are we trying to achieve?]

## Success Metrics
[How will we measure success?]

## User Stories
[As a [user], I want [feature], so that [benefit]]

## Functional Requirements
[Detailed feature requirements]

## Non-Functional Requirements
[Performance, security, usability requirements]

## UX/UI Requirements
[Interface and interaction design]

## API Requirements
[Required API endpoints and data structures]

## Out of Scope
[What explicitly will NOT be included]

## Dependencies
[What other features/systems does this depend on?]

## Alternatives Considered
[What other approaches did we consider?]

## Open Questions
[What do we still need to decide?]

## Timeline
[Key milestones and delivery dates]

## References
- [Related ADR-XXX](../architecture/adr/xxx.md)
- [Related ADD-XXX](../architecture/add/xxx.md)
- [Design Mockups](link)

PRD Lifecycle

stateDiagram-v2
    [*] --> Proposed: Initial draft
    Proposed --> InDevelopment: Approved, ready for eng
    InDevelopment --> Beta: MVP ready for testing
    Beta --> GA: Stable, released to all users
    GA --> Deprecated: Replaced by new feature
    InDevelopment --> Proposed: Cancelled
    Beta --> InDevelopment: Feedback requires changes

PRD Status Definitions

Status Description
Proposed Initial draft, under review
In Development Approved, engineering has started
Beta Feature complete, limited rollout
GA Generally available to all users
Deprecated No longer recommended, will be removed

Writing Good PRDs

Problem Statement

Start with the user problem, not the solution: - ✅ "Users struggle to manage backups across 50+ sites" - ❌ "We need a bulk backup management feature"

Success Metrics

Define quantifiable metrics: - ✅ "Reduce time to manage 50 sites from 2 hours to 15 minutes" - ✅ "Improve backup completion rate from 85% to 98%" - ❌ "Make the feature better"

User Stories

Use standard format:

As a [role],
I want [feature],
So that [benefit].

Example:

As a site administrator,
I want to schedule automatic weekly backups,
So that I don't lose data if something goes wrong.

Out of Scope

Explicitly state what's NOT included to prevent scope creep:

Out of Scope:
- Backup migration from third-party providers
- Point-in-time recovery
- Backup analytics and reporting

PRD vs ADD vs Implementation

Aspect PRD ADD Implementation
Focus User-facing requirements Technical design Code-level details
Audience Product, Engineering Engineering Engineering
Content What & Why How Code
Timeline Before development During design During implementation

Approval Process

  1. Draft - Product Manager creates initial PRD
  2. Review - Engineering, Design, Operations review
  3. Approval - Stakeholders sign off
  4. Handoff - Engineering creates ADD if needed
  5. Implementation - Engineering builds feature
  6. Validation - Product validates against acceptance criteria

Metadata

PRD metadata is tracked in .meta/index.json:

{
  "active_prds": [
    {
      "id": "PRD-001",
      "title": "Multi-Site Management",
      "status": "In Development",
      "priority": "P1",
      "assignee": "@engineering-lead",
      "target_date": "2025-02-01"
    }
  ],
  "completed_prds": [
    {
      "id": "PRD-000",
      "title": "Initial MVP",
      "status": "GA",
      "release_date": "2024-12-01"
    }
  ]
}