GitHunt

๐ŸŽฌ Markdown to Video

Transform your Markdown into stunning videos with a custom syntax that brings your content to life. Markdown to Video is a powerful Next.js-based web application that converts Markdown content into professional-quality videos with rich animations, transitions, and interactive scenes.

Markdown to Video Showcase

โœจ Features

  • Custom Markdown Syntax: Write videos using an intuitive extended Markdown syntax with custom directives
  • Rich Scene Types: Support for text, code, images, terminal, diffs, charts, mockups, QR codes, countdowns, progress bars, and more
  • FFmpeg Integration: Export videos directly to MP4 or other formats using FFmpeg
  • Real-time Preview: See your video content as you edit it with live scene previews
  • Advanced Animations: Multiple animation types including typewriter, slide, fade, bounce, and custom effects
  • Particle Effects: Add confetti, snow, rain, sparkles, and fireworks to your scenes
  • Code Syntax Highlighting: Beautiful syntax highlighting for multiple programming languages
  • Scene Transitions: Smooth transitions between scenes (fade, slide, wipe, zoom, magic effects)
  • Terminal & Diff Support: Render terminal commands and code diffs with syntax highlighting
  • Chart Rendering: Create interactive charts (bar, line, pie, donut) embedded in videos
  • Video Variables: Define and reuse variables throughout your markdown
  • Project Management: Save and manage projects via Redis backend
  • Keyboard Shortcuts: Boost productivity with comprehensive keyboard shortcuts
  • Find & Replace: Quickly edit content across your markdown
  • Theme Support: Light and dark theme with customizable color schemes
  • Responsive Design: Fully responsive interface that works on all devices
  • Share & Embed: Generate shareable links and embed videos

๐Ÿ—๏ธ Project Structure

app/
  โ”œโ”€โ”€ layout.tsx              # Root layout
  โ”œโ”€โ”€ page.tsx                # Landing page
  โ”œโ”€โ”€ editor/
  โ”‚   โ””โ”€โ”€ page.tsx            # Video editor interface
  โ”œโ”€โ”€ api/
  โ”‚   โ””โ”€โ”€ projects/route.ts   # API endpoint for project management
  โ””โ”€โ”€ globals.css
components/
  โ”œโ”€โ”€ landing/                # Landing page components
  โ”œโ”€โ”€ ui/                     # Reusable UI components (50+ Radix UI based)
  โ””โ”€โ”€ video-editor/
      โ”œโ”€โ”€ markdown-editor.tsx     # Markdown input editor
      โ”œโ”€โ”€ scene-preview/          # Video scene renderer
      โ”‚   โ”œโ”€โ”€ scenes/             # Different scene type renderers
      โ”‚   โ”œโ”€โ”€ components/         # Preview helpers
      โ”‚   โ””โ”€โ”€ utils/              # Rendering utilities
      โ”œโ”€โ”€ timeline.tsx            # Timeline scrubber
      โ”œโ”€โ”€ export-modal/           # Video export with FFmpeg
      โ”œโ”€โ”€ templates-panel.tsx     # Template selection
      โ”œโ”€โ”€ theme-selector.tsx      # Theme customization
      โ””โ”€โ”€ keyboard-shortcuts.tsx  # Shortcuts reference
lib/
  โ”œโ”€โ”€ parser/
  โ”‚   โ”œโ”€โ”€ index.ts            # Main markdown parser
  โ”‚   โ”œโ”€โ”€ parsers/            # Specialized parsers for different scenes
  โ”‚   โ”œโ”€โ”€ constants.ts        # Scene types and directives
  โ”‚   โ”œโ”€โ”€ timeline.ts         # Timeline parsing
  โ”‚   โ””โ”€โ”€ utils.ts            # Helper utilities
  โ”œโ”€โ”€ types.ts                # TypeScript type definitions
  โ”œโ”€โ”€ use-video-store.ts      # Zustand video state management
  โ”œโ”€โ”€ redis.ts                # Redis client for project persistence
  โ”œโ”€โ”€ github.ts               # GitHub API integration
  โ”œโ”€โ”€ templates.ts            # Template definitions
  โ””โ”€โ”€ utils.ts                # General utilities
public/
  โ”œโ”€โ”€ og-image.png            # Open Graph image for sharing
  โ””โ”€โ”€ site.webmanifest        # PWA manifest

๐Ÿš€ Getting Started

Prerequisites

  • Node.js 18+ or higher
  • pnpm, npm, or yarn

Installation

  1. Clone the repository:

    git clone https://github.com/Avik-creator/markdown_video.git
    cd markdown-to-video
  2. Install dependencies:

    pnpm install
  3. Set up environment variables (optional for local development):

    cp .env.template .env.local
  4. Run the development server:

    pnpm dev
  5. Open the application:
    Visit http://localhost:3000 in your browser

๐Ÿ› ๏ธ Technologies Used

  • Framework: Next.js 16 - React framework with SSR
  • UI Components: Radix UI - Unstyled, accessible component library
  • Styling: Tailwind CSS 4 - Utility-first CSS framework
  • State Management: Zustand - Lightweight state manager
  • Markdown Parsing: Custom parser with extended syntax support
  • Video Rendering: FFmpeg.wasm - Browser-based video encoding
  • Screenshot to Canvas: HTML2Canvas Pro - DOM to canvas rendering
  • Form Handling: React Hook Form with Zod validation
  • Charts: Recharts - React chart library
  • Animations: Framer Motion - React animation library
  • Database: Upstash Redis - Serverless Redis for project persistence
  • Icons: Lucide React - SVG icon library
  • Toast Notifications: Sonner - Toast notification system
  • Themes: Next.js Themes - Theme switching

๐Ÿ“„ License

๐Ÿš€ Getting Started

Prerequisites

  • Node.js 18+ or higher
  • pnpm, npm, or yarn

Installation

  1. Clone the repository:

    git clone https://github.com/Avik-creator/markdown_video.git
    cd markdown-to-video
  2. Install dependencies:

    pnpm install
  3. Set up environment variables (optional for local development):

    cp .env.example .env.local
  4. Run the development server:

    pnpm dev
  5. Open the application:
    Visit http://localhost:3000 in your browser

๐Ÿ“ฆ Available Scripts

  • pnpm dev - Start the development server with hot reload
  • pnpm build - Build the application for production
  • pnpm start - Start the production server
  • pnpm lint - Run ESLint to check code quality

๐Ÿค Contributing

Contributions are welcome! To contribute:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

๐Ÿ“„ License

This project is licensed under the Creative Commons Attribution-NonCommercial 4.0 International License.

You are free to:

  • โœ… Use for personal projects
  • โœ… Modify and adapt the code
  • โœ… Share with others (with attribution)

You are NOT allowed to:

  • โŒ Use for commercial purposes
  • โŒ Sell or profit from this project

For details, see the LICENSE file or visit CC BY-NC 4.0.

๐Ÿ‘ Acknowledgments

Built with amazing open-source libraries:

๐Ÿ“ง Support

For questions, issues, or suggestions, please open an issue on GitHub.


Made with โค๏ธ by Avik Mukherjee

Avik-creator/markdown_video | GitHunt