Skip to content

Latest commit

Β 

History

13 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ProdMatic - Production-Ready Product Management Platform

A comprehensive product lifecycle management platform from ideation to sunset.

ProdMatic is a full-stack web application built with Next.js 14, TypeScript, and modern web technologies. It provides product managers with everything they need to manage products through their entire lifecycle: ideation β†’ discovery β†’ definition β†’ delivery β†’ launch β†’ growth β†’ maturity β†’ sunset.

πŸš€ Features

Core Functionality

  • Multi-tenant Architecture: Organizations, teams, and role-based access control
  • Product Lifecycle Management: Track products through all stages with proper workflows
  • Idea Management: Intake, scoring (RICE/WSJF/ICE), prioritization, and conversion
  • Discovery Tools: Customer interviews, personas, insights extraction
  • Definition Phase: PRD/RFC builder with approval gates and versioning
  • Delivery Management: Kanban boards, Sprint management, backlog grooming
  • Roadmap Planning: Timeline views with drag-and-drop, OKR management
  • Release Management: Release composer, changelogs, launch checklists
  • Analytics & Growth: KPI dashboards, experiment tracking, feature flags
  • Sunset Planning: EOL tracking, migration planning, data retention

Advanced Features

  • Authentication: Email/password, Google OAuth, GitHub OAuth with NextAuth
  • Real-time Updates: Server components with optimistic updates
  • File Storage: Document management and template system
  • Rich Text Editor: Markdown support for documents and PRDs
  • Data Export: CSV and PDF export for all major entities
  • Integration Stubs: GitHub, Jira, Slack integration capabilities
  • Audit Logging: Complete activity tracking and audit trails
  • Feature Flags: Gradual rollouts and A/B testing support

πŸ›  Tech Stack

Frontend

  • Framework: Next.js 14 (App Router)
  • Language: TypeScript
  • Styling: TailwindCSS + shadcn/ui components
  • Icons: Lucide React
  • State Management: React Server Components + TanStack Query
  • Forms: React Hook Form + Zod validation
  • Drag & Drop: @dnd-kit
  • Charts: Recharts
  • Animation: Framer Motion

Backend

  • Runtime: Node.js
  • Database: PostgreSQL with Prisma ORM
  • Authentication: NextAuth.js
  • Email: Resend (production) / Nodemailer (development)
  • PDF Generation: @react-pdf/renderer

Development & Deployment

  • Package Manager: npm
  • Testing: Vitest + React Testing Library + Playwright
  • Linting: ESLint + Prettier
  • Git Hooks: Husky + lint-staged
  • CI/CD: GitHub Actions
  • Deployment: Vercel-ready

πŸ“‹ Prerequisites

  • Node.js 18+ and npm
  • PostgreSQL database (local or hosted)

πŸš€ Quick Start

1. Clone and Install

git clone https://github.com/your-username/prodmatic.git
cd prodmatic
npm install

2. Environment Setup

cp .env.example .env.local

Edit .env.local with your configuration:

# Database (required)
DATABASE_URL="postgresql://postgres:password@localhost:5432/prodmatic"

# NextAuth (required)
NEXTAUTH_SECRET="your-secret-key-here"
NEXTAUTH_URL="http://localhost:3000"

# OAuth Providers (optional)
GITHUB_ID="your-github-client-id"
GITHUB_SECRET="your-github-client-secret"
GOOGLE_CLIENT_ID="your-google-client-id"
GOOGLE_CLIENT_SECRET="your-google-client-secret"

# Supabase (optional)
SUPABASE_URL="https://your-project.supabase.co"
SUPABASE_ANON_KEY="your-supabase-anon-key"

# Email (optional)
RESEND_API_KEY="your-resend-api-key"

3. Database Setup

# Generate Prisma client
npm run db:generate

# Run migrations
npm run db:migrate

# Seed with sample data
npm run db:seed

4. Start Development Server

npm run dev

Open http://localhost:3000 and sign in with:

  • Email: alice@prodmatic.com
  • Password: password123

πŸ“ Project Structure

prodmatic/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ app/                 # Next.js App Router pages
β”‚   β”‚   β”œβ”€β”€ api/            # API routes
β”‚   β”‚   β”œβ”€β”€ auth/           # Authentication pages
β”‚   β”‚   β”œβ”€β”€ orgs/           # Organization-scoped routes
β”‚   β”‚   └── [orgSlug]/      # Dynamic organization routes
β”‚   β”œβ”€β”€ components/         # Reusable UI components
β”‚   β”‚   └── ui/            # shadcn/ui components
β”‚   β”œβ”€β”€ lib/               # Utility functions and configs
β”‚   β”œβ”€β”€ server/            # Server actions and services
β”‚   β”œβ”€β”€ types/             # TypeScript type definitions
β”‚   └── test/              # Test utilities
β”œβ”€β”€ prisma/                # Database schema and migrations
β”‚   β”œβ”€β”€ schema.prisma      # Prisma schema
β”‚   └── migrations/        # Database migrations
β”œβ”€β”€ scripts/              # Utility scripts
β”‚   β”œβ”€β”€ seed.ts           # Sample data seeder
β”‚   └── update-changelog.js # Changelog management
β”œβ”€β”€ templates/            # Document templates
β”œβ”€β”€ e2e/                  # End-to-end tests
β”œβ”€β”€ docs/                 # Documentation
└── public/               # Static assets

πŸ§ͺ Testing

# Unit tests
npm run test

# Unit tests with UI
npm run test:ui

# E2E tests
npm run test:e2e

# Type checking
npm run typecheck

# Linting
npm run lint

# Code formatting
npm run format

πŸ“‹ Sample Data

The seed script creates:

  • 4 demo user accounts with different roles
  • 2 sample organizations (TechCorp Solutions, Demo Company)
  • 3 sample products with complete lifecycle data
  • Ideas, epics, features, sprints, and releases
  • OKRs, KPIs, experiments, and feedback

Demo Accounts:

  • Admin: alice@prodmatic.com / password123
  • Product Manager: bob@prodmatic.com / password123
  • Developer: carol@prodmatic.com / password123
  • Stakeholder: david@prodmatic.com / password123

πŸš€ Deployment

πŸ“– For comprehensive deployment instructions, see DEPLOYMENT_GUIDE.md

Quick Start Options

Option 1: Vercel + Supabase (Recommended)

  1. Deploy to Vercel: Connect GitHub repo, configure env vars, auto-deploy
  2. Database: Use Supabase PostgreSQL or your preferred provider
  3. Domain: Configure custom domain and SSL

Option 2: Docker Deployment

# Build and run with Docker Compose
docker-compose -f docker-compose.prod.yml up -d

# Run migrations
docker-compose exec app npx prisma migrate deploy

Option 3: Cloud Platforms

  • AWS: App Runner, ECS Fargate, or EC2
  • Google Cloud: Cloud Run or Compute Engine
  • Azure: Container Instances or App Service

Essential Environment Variables

For production deployments, reference the comprehensive environment template:

# Core (Required)
DATABASE_URL=postgresql://user:pass@host:port/db
NEXTAUTH_SECRET=your-32-char-secret
NEXTAUTH_URL=https://your-domain.com

# Email (Required for notifications)
RESEND_API_KEY=your-resend-key

# OAuth (Optional)
GITHUB_ID=your-github-client-id
GITHUB_SECRET=your-github-secret

⚠️ See the Deployment Guide for detailed instructions, security configuration, monitoring setup, and troubleshooting.

πŸ“‹ Use the Deployment Checklist to ensure nothing is missed during production deployment.

πŸ”§ Configuration

Authentication Providers

Configure OAuth providers in src/lib/auth.ts. Supported providers:

  • Email/Password (built-in)
  • Google OAuth
  • GitHub OAuth

Database Schema

The Prisma schema includes 25+ entities covering:

  • User management and authentication
  • Multi-tenant organization structure
  • Complete product lifecycle entities
  • Analytics and reporting data
  • Integration and webhook support

πŸ“Š Analytics & Monitoring

Built-in Features

  • User activity tracking
  • Product lifecycle metrics
  • KPI dashboard and visualization
  • Experiment tracking and A/B testing
  • Comprehensive audit logging

Health Check

Endpoint available at /api/health for monitoring.

πŸ›‘οΈ Security

  • Authentication: Secure session management with NextAuth
  • Authorization: Role-based access control (RBAC)
  • Data Validation: Zod schemas for all inputs
  • Audit Logging: Complete activity tracking
  • Multi-tenant Security: Organization-level data isolation

πŸ“ Changelog

We maintain a detailed changelog following Keep a Changelog format.

Updating the Changelog

# Add new changelog entry
npm run changelog:add [version] [type] "[description]"

# Example: Bug fix
npm run changelog:add 1.0.1 fixed "Fixed authentication redirect issue"

# Example: New feature
npm run changelog:add 1.1.0 added "Added dashboard analytics feature"

Change Types: added, changed, deprecated, removed, fixed, security

See CHANGELOG.md for full version history and docs/CHANGELOG_GUIDE.md for detailed guidelines.

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Commit changes: git commit -m 'Add amazing feature'
  4. Update the changelog: npm run changelog:add 1.x.x added "Amazing feature description"
  5. Push to branch: git push origin feature/amazing-feature
  6. Open a Pull Request

Development Guidelines

  • Follow TypeScript best practices
  • Write tests for new features
  • Use conventional commit messages
  • Ensure code passes linting and formatting
  • Update documentation and changelog

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ“š Documentation

πŸ†˜ Support

  • Documentation: Check the /docs folder for detailed guides
  • Issues: Report bugs and request features on GitHub Issues
  • Changelog: See CHANGELOG.md for version history

πŸ—ΊοΈ Current Status

ProdMatic v1.0.0 is a complete, production-ready product management platform with:

βœ… Complete Feature Set

  • Full product lifecycle management
  • Multi-tenant architecture with RBAC
  • Comprehensive testing infrastructure
  • CI/CD pipelines and deployment automation
  • Extensive documentation and sample data

βœ… Production Ready

  • Scalable architecture
  • Security best practices
  • Performance optimizations
  • Monitoring and analytics
  • Comprehensive error handling

πŸ§‘β€πŸ’» Full-Snack Developer

Nuzli L. Hernawan


Built with ❀️ for product teams everywhere

About

ProdMatic - Production-Ready Product Management Platform. A comprehensive product lifecycle management platform from ideation to sunset πŸš€

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages