Modern web-based review interface for content management with integrated translation and audio processing pipeline.
Get up and running in 5 minutes!
# 1. Install dependencies
npm install
# 2. Run development server
npm run dev
# 3. Open browser
open http://localhost:3000That's it! The app will use the default content directory (./content).
Need custom setup? See Setup below or check docs/setup/pipeline.md for full pipeline configuration.
- 📋 Review queue with filtering and search
- ✅ Accept/reject content with feedback
- 📝 Inline category editing
- 📊 Review statistics dashboard
- 📜 Review history tracking
- ⌨️ Keyboard shortcuts for navigation
- 🎨 Modern UI with Tailwind CSS
- Framework: Next.js 14+ (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- State Management: TanStack Query
- Form Handling: React Hook Form + Zod
- UI Components: shadcn/ui
npm installThe app stores content in the local content/ directory or Supabase.
Option A: Environment Variable (Optional)
Create a .env.local file to customize the content directory:
CONTENT_DIR=/absolute/path/to/contentOption B: Default Path
By default, the app uses ./content in the review-web directory:
/path/to/review-web/
├── content/
└── src/
npm run devOpen http://localhost:3000 in your browser.
GET /api/review/pending- List pending content for review- Query params:
category,page,limit,search
- Query params:
GET /api/review/[id]- Get single content with navigationPOST /api/review/[id]/submit- Submit review decision- Body:
{ action: "accept" | "reject", feedback: string, newCategory?: string }
- Body:
PATCH /api/review/[id]/category- Update content category- Body:
{ category: string }
- Body:
GET /api/review/stats- Get review statisticsGET /api/review/history- Get review history- Query params:
reviewer,decision,page,limit
- Query params:
- Project setup with TypeScript and Tailwind
- API routes for review operations
- Review queue page UI
- Content detail/review page UI
- Basic keyboard shortcuts
- Testing with real data
- Authentication with NextAuth.js
- Multi-user support
- Advanced filtering and search
- Review analytics dashboard
- Dark mode toggle
- Real-time collaboration
- Commenting and discussions
- Pipeline status integration
- Admin panel
review-web/
├── src/
│ ├── app/
│ │ ├── api/review/ # API routes
│ │ ├── review/ # Review pages
│ │ ├── layout.tsx # Root layout
│ │ └── page.tsx # Home (redirects to /review)
│ ├── components/
│ │ ├── ui/ # shadcn/ui components
│ │ └── review/ # Custom review components
│ ├── lib/
│ │ ├── ContentManager.ts # Content CRUD operations
│ │ ├── ContentSchema.ts # Schema utilities
│ │ └── utils.ts # Helper functions
│ ├── hooks/ # Custom React hooks
│ └── types/
│ └── content.ts # TypeScript types
├── package.json
├── tsconfig.json
├── tailwind.config.ts
└── next.config.js
npm run build
npm run startChoose your deployment platform:
-
Fly.io (Recommended) - Full-stack deployment with Supabase
- See DEPLOYMENT.md or docs/deployment/flyio.md
- Supports all features including API routes and pipeline
- Free tier available
-
GitHub Pages - Static deployment with GitHub Actions
- See docs/deployment/github-pages.md
- Pipeline runs via GitHub Actions
- Free for public repositories
- Quick Start - Get running in 5 minutes
- Pipeline Setup - FFmpeg, rclone, Google Cloud configuration
- Deployment Guide - Deploy to Fly.io with Supabase
- GitHub Pages Setup - Alternative static deployment
- API Reference - Complete API documentation
See CONTRIBUTING.md for contribution guidelines.
MIT License