A modern React/Next.js application for sharing and discovering innovative ideas, built with Convex backend and Clerk authentication.
- Idea Creation: Comprehensive form for submitting innovative concepts
- Real-time Feed: Live updates of user-created ideas
- User Authentication: Secure login/signup with Clerk
- Theme Support: Dark/light mode with Tailwind CSS
- Responsive Design: Mobile-first design with consistent UI
- Frontend: Next.js 15 with React 19
- Backend: Convex for real-time database and APIs
- Authentication: Clerk for user management
- Styling: Tailwind CSS with CSS variables
- UI Components: Radix UI primitives with shadcn/ui
- Development: Turbopack for fast builds
- Form Validation: Client-side validation with error handling
- File Upload: Ready for media attachments (currently text-only)
- Database Integration: Convex schema with proper indexing
- Type Safety: Full TypeScript implementation
- Clean Build: ESLint compliant with zero warnings
- Node.js 18+
- npm or pnpm
- GitHub account with repository created
-
Clone the repository:
git clone https://github.com/Saunakghosh10/interactive.git cd interactive -
Install dependencies:
npm install
-
Environment setup:
# Create .env.local file with your keys: NEXT_PUBLIC_CONVEX_URL=your_convex_url NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_key CLERK_SECRET_KEY=your_clerk_secret -
Start Convex development server:
npx convex dev
-
Run the development server:
npm run dev
-
Build for production:
npm run build
-
Deploy Convex:
npx convex deploy
-
Deploy Next.js to Vercel:
vercel --prod
- Navigate to
/feedand click "Create Idea" - Fill out the form with title, description, and category
- Choose visibility (Public/Private)
- Submit to see your idea on the feed
- Use
/sign-upfor new accounts - Use
/sign-into log into existing accounts - All ideas are associated with authenticated users
- Browse public ideas on the main feed
- Click on any idea to view details
- Use filters and search (coming soon)
interactive/
├── app/ # Next.js app directory
│ ├── create-idea/ # Idea creation page
│ ├── feed/ # Main ideas feed
│ ├── profile/ # User profiles
│ ├── sign-in/ # Authentication
│ └── sign-up/ # Registration
├── components/ # Reusable UI components
├── convex/ # Backend queries and mutations
│ ├── ideas.ts # Idea CRUD operations
│ ├── schema.ts # Database schema
│ ├── users.ts # User operations
│ └── auth.config.ts # Authentication config
├── lib/ # Utilities and configurations
├── public/ # Static assets
├── .env.local # Environment variables (gitignored)
└── README.md # This file
npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
npm run lint # Run ESLint checks- New Components: Follow the
components/structure - Database Schema: Update
convex/schema.ts - API Endpoints: Add mutations/queries to
convex/*.ts - UI Elements: Use existing shadcn/ui components
- Environment Variables: Add to
.env.localand document
- Fork the repository
- Create a feature branch:
git checkout -b feature-name - Make your changes and commit
- Push to your fork and create a PR
This project is licensed under the MIT License.
- Convex for real-time backend infrastructure
- Clerk for seamless authentication
- Next.js for the modern React framework
- Tailwind CSS for utility-first styling
- shadcn/ui for beautiful UI components
If you have issues or questions:
- Check the Convex docs
- Check the Next.js docs
- Look at Clerk documentation
Built with ❤️ using Next.js, Convex, and modern web technologies