A Next.js 15 platform where entrepreneurs can submit their startup ideas for virtual pitch competitions, browse other pitches, and gain exposure through a clean minimalistic design for a smooth user experience.
- GitHub Authentication: Secure login system using NextAuth.js with GitHub provider
- Pitch Submission: Entrepreneurs can submit their startup ideas with rich markdown support
- Browse Pitches: Clean interface to explore and discover startup pitches
- Search Functionality: Find specific startups or filter by categories
- User Profiles: Dedicated space for entrepreneurs to showcase their ventures
- Responsive Design: Seamless experience across all devices
- Frontend: Next.js 15 (App Router)
- Authentication: NextAuth.js v5 (Beta)
- Styling: Tailwind CSS with Typography plugin
- CMS: Sanity.io
- UI Components:
- Radix UI for accessible components
- Lucide React for icons
- Class Variance Authority for component variants
- Content: Markdown support with markdown-it
YCDirectory/
βββ app/ # Next.js app router pages
βββ components/ # Reusable UI components
βββ lib/ # Utility functions and queries
βββ public/ # Static assets
βββ sanity/ # Sanity CMS configuration
βββ studio-yc-directory/ # Sanity Studio
-
Clone the repository
git clone [repository-url]
-
Install dependencies
npm install
-
Set up environment variables Create a
.env.local
file based on.example.env
:NEXT_PUBLIC_SANITY_PROJECT_ID= NEXT_PUBLIC_SANITY_DATASET= SANITY_WRITE_TOKEN=
-
Run the development server
npm run dev
The platform uses NextAuth.js for authentication with GitHub as the provider. Features include:
- Secure user sessions
- GitHub OAuth integration
- Custom user profiles stored in Sanity
- JWT token handling
Sanity.io is used as the headless CMS, providing:
- Structured content models for startups and authors
- Real-time content updates
- Rich text editing with markdown support
- Custom studio configuration
- Clean, minimalistic design
- Responsive layouts
- Accessible components using Radix UI
- Custom component variants with CVA
- Typography optimized for readability
npm run dev
: Start development servernpm run build
: Build for productionnpm run start
: Start production servernpm run lint
: Run ESLintnpm run typegen
: Generate Sanity schema types
- Next.js 15
- React (Canary)
- NextAuth.js v5 Beta
- Sanity v3
- Tailwind CSS
- Radix UI components
- Lucide React icons
- Class Variance Authority
- Markdown-it
- Sanity Markdown Plugin
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.