YTShorts is a modern web application for creating, uploading, and sharing YouTube-style short videos. Built with Next.js, Prisma, Clerk authentication, and a beautiful UI powered by shadcn/ui components.
- 🔑 Secure authentication with Clerk
- 🎬 Upload and manage short videos easily
- 🗂 User dashboard to view and manage your own shorts
- 🖼️ Modern, responsive UI for all devices
- 🌗 Light/Dark theme toggle for your comfort
- 🔍 Search functionality to find shorts quickly
- 🛠️ Built with Next.js App Router, TypeScript, and Prisma ORM
Follow these steps to get YTShorts running locally:
git clone https://github.com/your-username/ytshorts.git
cd ytshortsnpm installCreate a .env file in the root directory and add your database and Clerk credentials:
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=
CLERK_SECRET_KEY=
DATABASE_URL=
-- {imagekit.io}
NEXT_PUBLIC_PUBLIC_KEY=
PRIVATE_KEY=
NEXT_PUBLIC_URL_ENDPOINT=Run Prisma migrations to set up your database schema:
npx prisma migrate devGenerate the Prisma client:
npx prisma generatenpm run devOpen http://localhost:3000 in your browser to see your app in action!
Click to expand project structure
<pre>
├── app/ # Next.js app directory │ ├── api/ # API routes (auth, upload, etc.) │ ├── upload/ # Upload page │ └── page.tsx # Home page ├── components/ # Reusable UI and feature components │ ├── header/ # Navbar and header components │ ├── shorts/ # ShortCard component │ └── ui/ # UI primitives (button, input, etc.) ├── lib/ # Prisma client and utilities ├── prisma/ # Prisma schema and migrations ├── public/ # Static assets ├── .env # Environment variables ├── package.json # Project metadata and scripts └── README.md # Project documentation
- ✍️ Sign up / Sign in: Use Clerk authentication to create an account and access your dashboard.
- ⬆️ Upload Shorts: Go to the upload page and submit your video in seconds.
- 👀 View Shorts: See your uploaded shorts on your dashboard and share with others.
- 🔎 Search: Use the search bar to quickly find shorts by title or description.
- 🌗 Theme Toggle: Switch between light and dark mode for a personalized experience.
- ⚡ Next.js (App Router)
- 🗄️ Prisma ORM
- 🔐 Clerk authentication
- 🎨 shadcn/ui components
- 🧑💻 TypeScript
- 🐘 PostgreSQL
We welcome contributions from everyone! To get started:
- 🍴 Fork the repository
- 🏗️ Create your feature branch (
git checkout -b feature/my-feature) - 💡 Commit your changes (
git commit -am 'Add new feature') - 🚀 Push to the branch (
git push origin feature/my-feature) - 📝 Open a pull request
Feel free to open issues for bugs, feature requests, or questions!
This project is licensed under the MIT License.
