Official documentation website for MediaProc CLI - built with Next.js 14, TypeScript, and Tailwind CSS.
Live Site: https://mediaproc.dev
This is the source code for the MediaProc documentation website, featuring comprehensive guides, API references, and interactive examples for the MediaProc CLI and all its plugins.
# Install dependencies
pnpm install
# Run development server
pnpm dev
# Open browser
# http://localhost:3000web/
βββ src/
β βββ app/ # Next.js app directory
β β βββ layout.tsx # Root layout
β β βββ page.tsx # Homepage
β β βββ [slug]/ # Dynamic doc pages
β βββ components/ # React components
β βββ DocLayout.tsx # Main docs layout
β βββ Sidebar.tsx # Left navigation
β βββ OnThisPage.tsx # Right TOC
β βββ Search.tsx # Search (Ctrl+K)
β βββ VersionSelector.tsx
βββ content/ # MDX documentation
β βββ guides/ # User guides
β βββ plugins/ # Plugin docs
β βββ api/ # API reference
β βββ performance.mdx # Benchmarks
β βββ faq.mdx # FAQ
β βββ community/ # Migration guides
βββ public/ # Static assets
β βββ images/
β βββ icons/
βββ tailwind.config.ts # Tailwind config
- MDX Support - Write docs in Markdown with React components
- Search - Fuzzy search with Ctrl+K keyboard shortcut
- Syntax Highlighting - Code blocks with language detection
- Table of Contents - Auto-generated from headings
- Version Selector - Switch between CLI versions
- Responsive Design - Mobile, tablet, and desktop optimized
- Dark Mode Ready - Prepared for dark theme
- TypeScript - Full type safety across the project
- Next.js 14 - App Router with server components
- Tailwind CSS - Utility-first styling
- Hot Reload - Instant updates during development
- MDX Components - Custom components in docs
- SEO Optimized - Meta tags, Open Graph, structured data
- Node.js >= 18.0.0
- pnpm (recommended) or npm
# Development
pnpm dev # Start dev server
pnpm build # Build for production
pnpm start # Run production build
pnpm lint # Run ESLint
# Type checking
pnpm type-check # Check TypeScript types-
Create MDX file in
content/directory:--- title: "Your Page Title" description: "Page description" --- # Your Content Here
-
Add to navigation in
src/components/Sidebar.tsx:const navigation = [ { title: "Your Section", links: [ { title: "Your Page", href: "/your-page" } ] } ]
-
Preview changes - Dev server hot reloads automatically
- DocLayout - Three-column layout (sidebar, content, TOC)
- Sidebar - Left navigation with sections and links
- OnThisPage - Right table of contents from headings
- Header - Top navigation with logo and version selector
- Search - Fuzzy search with keyboard shortcuts (Ctrl+K)
- VersionSelector - Dropdown to switch CLI versions
- CodeBlock - Syntax-highlighted code with copy button
- Callout - Info/warning/tip boxes
Use these in your .mdx files:
<Callout type="info">
Important information here
</Callout>
<CodeGroup>
<CodeBlock title="JavaScript">
// Your code
</CodeBlock>
<CodeBlock title="TypeScript">
// Your code
</CodeBlock>
</CodeGroup>content/
βββ getting-started/
β βββ installation.mdx # Installation guide
β βββ quick-start.mdx # Quick start tutorial
β βββ configuration.mdx # Configuration options
βββ guides/
β βββ image-processing.mdx # Image guide
β βββ video-processing.mdx # Video guide
β βββ audio-processing.mdx # Audio guide
βββ plugins/
β βββ image/ # Image plugin docs
β βββ video/ # Video plugin docs
β βββ audio/ # Audio plugin docs
βββ api/
β βββ cli-reference.mdx # CLI command reference
βββ community/
β βββ migration-sharp.mdx # Migration from ImageMagick
β βββ migration-ffmpeg.mdx # Migration from FFmpeg
β βββ contributing.mdx # Contributing guide
βββ performance.mdx # Performance benchmarks
βββ faq.mdx # Frequently asked questions
Every MDX file should include frontmatter:
---
title: "Page Title" # Required
description: "Brief description" # Required
category: "guides" # Optional
order: 1 # Optional (for sorting)
lastUpdated: "2026-01-10" # Optional
---- Use semantic Tailwind utilities
- Follow the existing color scheme
- Maintain consistent spacing (4, 6, 8, 12, 16)
- Headings:
text-2xl,text-xl,text-lg - Body:
text-base - Small:
text-sm - Code:
font-mono
- Container:
max-w-7xl mx-auto px-4 - Grid:
grid grid-cols-1 md:grid-cols-2 gap-6 - Flex:
flex items-center justify-between
The search component provides:
- Keyboard shortcut - Ctrl+K or Cmd+K
- Fuzzy matching - Smart scoring algorithm
- Multi-word search - Searches across titles and content
- Navigation - Arrow keys + Enter to select
- Exact match: 100 points
- Starts with query: 50 points
- Contains query: 30 points
- All words present: 20 points
- Individual words: 10/5/3 points (decreasing)
# Build static site
pnpm build
# Output in .next/ directory
# Deploy to Vercel, Netlify, or any static hostCreate .env.local for local development:
NEXT_PUBLIC_SITE_URL=http://localhost:3000
NEXT_PUBLIC_GOOGLE_ANALYTICS=UA-XXXXXXXXX-X- Connect repository to Vercel
- Set build command:
pnpm build - Set output directory:
.next - Deploy automatically on push
- Lighthouse Score - 95+ across all metrics
- Bundle Size - < 200KB gzipped
- First Load - < 1s on 3G
- Interactive - < 2s on 3G
# Run tests (when implemented)
pnpm test
# Type checking
pnpm type-check
# Lint
pnpm lint- Fork the repository
- Clone your fork
- Create branch -
git checkout -b docs/your-feature - Make changes - Edit or add MDX files
- Test locally -
pnpm dev - Commit -
git commit -m "docs: your changes" - Push -
git push origin docs/your-feature - Pull Request - Open PR to main repo
- Clear & Concise - Get to the point quickly
- Code Examples - Show, don't just tell
- Consistent Style - Follow existing patterns
- Proper Grammar - Use spell checker
- Screenshots - Add visuals when helpful
- Links - Reference related pages
next- ^14.0.0react- ^18.0.0react-dom- ^18.0.0
tailwindcss- ^3.4.0autoprefixer- ^10.4.0postcss- ^8.4.0
@next/mdx- ^14.0.0gray-matter- ^4.0.0remark-gfm- ^4.0.0
clsx- ^2.0.0date-fns- ^3.0.0
- Main CLI Repository - github.com/0xshariq/mediaproc-cli
- Documentation Site - mediaproc.dev
- NPM Package - @mediaproc/cli
- Contributing Guide - CONTRIBUTING.md
- Code of Conduct - CODE_OF_CONDUCT.md
MIT Β© 0xshariq
Need help? Open an issue or reach out on Twitter