Lumora is a modern video messaging and collaboration platform that enables users to create instant video messages using their camera, microphone, and screen. Share them in seconds to accelerate communication and collaboration.
- 🎥 Instant Video Creation - Record with camera, microphone, and screen capture
- 📁 Workspace Management - Organize videos in workspaces and folders
- 👥 Team Collaboration - Invite team members and share content
- 💬 Comments & Feedback - Add comments and replies to videos
- 📊 Analytics - Track video views and engagement
- 🔐 Secure Authentication - Powered by Clerk authentication
- 💳 Subscription Management - Free and Pro plans with Stripe integration
- 🎨 Modern UI - Beautiful interface built with Tailwind CSS and shadcn/ui
- Frontend: Next.js 15, React 19, TypeScript
- Styling: Tailwind CSS, shadcn/ui components
- Database: PostgreSQL with Prisma ORM
- Authentication: Clerk
- Payments: Stripe
- State Management: Redux Toolkit
- Data Fetching: TanStack Query (React Query)
- Forms: React Hook Form with Zod validation
- Deployment: Vercel
Before you begin, ensure you have the following installed:
- Node.js (version 18 or higher)
- npm
- PostgreSQL database
- Git
git clone https://github.com/vagxrth/lumora-web.git
cd lumora-webnpm installCopy the example environment file and populate it with your own values:
cp .env.example .envThen edit the .env file and populate the values with your actual configuration values.
Set up your PostgreSQL database and run the Prisma migrations:
# Generate Prisma client
npx prisma generate
# Run database migrations
npx prisma db pushnpm run devOpen http://localhost:3000 with your browser to see the application.
npm run dev- Start the development servernpm run build- Build the application for productionnpm run start- Start the production servernpm run lint- Run ESLint for code linting
- Create an account at Clerk.dev
- Create a new application
- Copy the publishable key and secret key to your
.envfile - Configure the sign-in and sign-up URLs in your Clerk dashboard
- Set up a PostgreSQL database (locally or using a service like Supabase, PlanetScale, etc.)
- Update the
DATABASE_URLin your.envfile - Run the Prisma commands to set up your database schema
- Create a Stripe account at Stripe.com
- Get your publishable and secret keys from the Stripe dashboard
- Add them to your
.envfile - Configure webhook endpoints for subscription management
The easiest way to deploy your Lumora app is to use the Vercel Platform.
- Push your code to a Git repository (GitHub, GitLab, or Bitbucket)
- Import your project to Vercel
- Add your environment variables in the Vercel dashboard
- Deploy!
Make sure to:
- Add all environment variables to your Vercel project settings
- Set up your production database
- Configure your Clerk production keys
- Set up Stripe webhooks for your production domain
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request