š Features
- 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
š ļø Tech Stack
- 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
šļø Project Structure
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
š Getting Started
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
š Authentication
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
š Content Management
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
šØ UI/UX Features
- Clean, minimalistic design
- Responsive layouts
- Accessible components using Radix UI
- Custom component variants with CVA
- Typography optimized for readability
š ļø Development Scripts
npm run dev
: Start development server
npm run build
: Build for production
npm run start
: Start production server
npm run lint
: Run ESLint
npm run typegen
: Generate Sanity schema types
š¦ Dependencies
Core
- Next.js 15
- React (Canary)
- NextAuth.js v5 Beta
- Sanity v3
UI/Styling
- Tailwind CSS
- Radix UI components
- Lucide React icons
- Class Variance Authority
Content
- Markdown-it
- Sanity Markdown Plugin
š¤ Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
š License
This project is licensed under the MIT License - see the LICENSE file for details.