Skip to content

Latest commit

Β 

History

17 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ Startup Pitch Platform

πŸš€ Startup Pitch Platform

A modern platform where entrepreneurs showcase their startup ideas, connect with innovators, and build a thriving community

GitHub stars GitHub forks GitHub watchers

Next.js React TypeScript Tailwind CSS Sanity NextAuth License

Features β€’ Demo β€’ Tech Stack β€’ Screenshots β€’ Getting Started

⭐ Star this repo if you find it useful!


πŸ“Έ Screenshots

Homepage

Homepage Modern hero section with gradient background and search functionality


✨ Features

πŸš€ Pitch Management

  • Submit Pitches: Submit your startup ideas with rich markdown editor, images, and categories
  • Browse & Discover: Explore innovative pitches with powerful search and category filtering
  • View Analytics: Track engagement with view counters for each pitch
  • Editor Picks: Admins can highlight top startup ideas via Sanity Studio
  • Category Filtering: Browse pitches by categories (AI, Fintech, Healthcare, etc.)

πŸ’¬ Content & Editing

  • Markdown Support: Rich text editing with markdown preview and syntax highlighting
  • Image Upload: Add images or video links to showcase your startup
  • Real-time Updates: Live content synchronization using Sanity Live
  • Edit & Delete: Manage your pitches with edit and delete functionality

πŸ‘€ User Experience

  • User Profiles: Personal profile pages showcasing all your submitted pitches
  • GitHub Authentication: Seamless login experience using GitHub OAuth
  • Search Functionality: Powerful search to find and filter pitches efficiently
  • Responsive Design: Perfect experience on mobile, tablet, and desktop
  • Modern UI: Glassmorphism design with gradient effects and smooth animations

🎨 Design Features

  • Glassmorphism UI: Modern frosted glass effect design
  • Gradient Hero Sections: Eye-catching gradient backgrounds with animations
  • Smooth Animations: Fade-in and slide-up animations for better UX
  • Responsive Cards: Beautiful startup cards with hover effects
  • Dark/Light Theme Ready: Flexible color system for future theme support

πŸ”’ Security & Performance

  • Type Safety: Full TypeScript support with Sanity type generation
  • Error Monitoring: Sentry integration for production error tracking
  • Server Components: Next.js 15 App Router with React Server Components
  • API Routes: RESTful API endpoints for authentication and data fetching
  • Optimized Performance: Code splitting, lazy loading, and optimized bundle size

πŸ› οΈ Tech Stack


🌐 Demo

Live Demo: Visit the application

Note: Make sure to set up all environment variables for the demo to work properly.


πŸ—οΈ Architecture Overview

This application is built with a modern, scalable architecture:

  • Frontend: Next.js 15 with App Router, React 19 Server Components, TypeScript
  • Backend: Next.js API Routes (serverless functions)
  • CMS: Sanity Headless CMS with Live Content API
  • Authentication: NextAuth 5.0 with GitHub OAuth provider
  • State Management: React Hooks + Server Components
  • Styling: Tailwind CSS with custom design system
  • Error Tracking: Sentry for production monitoring

πŸš€ Getting Started

Prerequisites

Make sure you have the following installed:

  • Node.js 18.x or higher (Download)
  • npm 10.x or higher (comes with Node.js)
  • Git (Download)

Installation

  1. Clone the repository
git clone https://github.com/emreyn1/pitchupyourstartup.git
cd pitchupyourstartup
  1. Install dependencies
npm install
  1. Set up environment variables

Create a .env.local file in the root directory:

# Sanity CMS
NEXT_PUBLIC_SANITY_PROJECT_ID=your_project_id
NEXT_PUBLIC_SANITY_DATASET=production
NEXT_PUBLIC_SANITY_API_VERSION=2024-10-14
SANITY_TOKEN=your_sanity_token

# NextAuth
AUTH_SECRET=your_auth_secret
AUTH_GITHUB_ID=your_github_client_id
AUTH_GITHUB_SECRET=your_github_client_secret

# Sentry (Optional)
NEXT_PUBLIC_SENTRY_DSN=your_sentry_dsn
SENTRY_ORG=your_sentry_org
SENTRY_PROJECT=your_sentry_project
SENTRY_AUTH_TOKEN=your_sentry_auth_token
  1. Set up Sanity
# Login to Sanity
npx sanity login

# Deploy Sanity Studio
npx sanity deploy
  1. Run the development server
npm run dev

Open http://localhost:3000 in your browser to view the application.

Environment Variables Setup

For detailed instructions on setting up each service:


🎯 How to Use

Getting Started

  1. Visit the Application: Open the live demo or run locally
  2. Sign In: Click "Sign In with GitHub" to authenticate
  3. Browse Pitches: Explore existing startup pitches on the homepage
  4. Search: Use the search bar to find specific pitches
  5. Submit Pitch: Click "Create Pitch" to submit your startup idea
  6. View Profile: Click on your profile to see all your submitted pitches

Key Features

  • Submit Pitches: Create detailed pitches with markdown editor, images, and categories
  • Browse & Filter: Explore pitches by category or search for specific keywords
  • User Profiles: View all pitches submitted by any user
  • Real-time Updates: See new pitches as they're submitted (Sanity Live)
  • Editor Picks: Admins can highlight top pitches via Sanity Studio
  • View Tracking: Each pitch tracks views to measure engagement

πŸš€ Performance

  • Fast Loading: Optimized bundle size, code splitting, lazy loading
  • Server Components: React Server Components for better performance
  • Image Optimization: Next.js Image component for optimized images
  • Real-time Updates: Efficient live content updates with Sanity Live
  • Type Safety: Full TypeScript support for reliability
  • Error Handling: Comprehensive error handling with Sentry integration

πŸ”’ Security Features

  • βœ… GitHub OAuth: Secure authentication with GitHub OAuth 2.0
  • βœ… Input Validation: Form validation and sanitization
  • βœ… Error Handling: Comprehensive error handling with user-friendly messages
  • βœ… Type Safety: Full TypeScript support for type-safe development
  • βœ… Environment Variables: Secure handling of sensitive data
  • βœ… Error Monitoring: Sentry integration for production error tracking

πŸ“ Project Structure

pitchupyourstartup/
β”œβ”€β”€ app/                          # Next.js App Router
β”‚   β”œβ”€β”€ (root)/                   # Main route group
β”‚   β”‚   β”œβ”€β”€ page.tsx             # Homepage
β”‚   β”‚   β”œβ”€β”€ startup/             # Startup routes
β”‚   β”‚   β”‚   β”œβ”€β”€ [id]/           # Dynamic startup detail page
β”‚   β”‚   β”‚   └── create/         # Create pitch page
β”‚   β”‚   └── user/               # User routes
β”‚   β”‚       └── [id]/           # User profile page
β”‚   β”œβ”€β”€ api/                     # API routes
β”‚   β”‚   └── auth/                # NextAuth API routes
β”‚   β”œβ”€β”€ layout.tsx              # Root layout
β”‚   └── globals.css             # Global styles
β”œβ”€β”€ components/                   # React components
β”‚   β”œβ”€β”€ ui/                     # ShadCN UI components
β”‚   β”œβ”€β”€ Navbar.tsx              # Navigation bar
β”‚   β”œβ”€β”€ StartupCard.tsx         # Startup card component
β”‚   β”œβ”€β”€ StartupForm.tsx         # Pitch submission form
β”‚   β”œβ”€β”€ SearchForm.tsx          # Search functionality
β”‚   └── UserStartups.tsx        # User pitches list
β”œβ”€β”€ lib/                         # Utility functions
β”‚   β”œβ”€β”€ actions.ts              # Server actions
β”‚   β”œβ”€β”€ utils.ts                # Helper functions
β”‚   └── validation.ts           # Form validation
β”œβ”€β”€ sanity/                      # Sanity CMS configuration
β”‚   β”œβ”€β”€ schemaTypes/            # Content schemas
β”‚   β”‚   β”œβ”€β”€ startup.ts         # Startup schema
β”‚   β”‚   β”œβ”€β”€ author.ts          # Author schema
β”‚   β”‚   └── index.ts           # Schema exports
β”‚   β”œβ”€β”€ lib/                    # Sanity utilities
β”‚   β”‚   β”œβ”€β”€ client.ts          # Sanity client
β”‚   β”‚   β”œβ”€β”€ queries.ts         # GROQ queries
β”‚   β”‚   └── live.ts            # Live content updates
β”‚   └── structure.ts           # Studio structure
β”œβ”€β”€ hooks/                       # Custom React hooks
β”‚   └── use-toast.ts            # Toast notifications
β”œβ”€β”€ public/                      # Static assets
β”‚   └── logo.png                # Project logo
β”œβ”€β”€ auth.ts                      # NextAuth configuration
β”œβ”€β”€ next.config.ts              # Next.js configuration
β”œβ”€β”€ tailwind.config.ts          # Tailwind CSS configuration
└── tsconfig.json               # TypeScript configuration

πŸ§ͺ Development

Available Scripts

# Development server
npm run dev

# Production build
npm run build

# Start production server
npm start

# Lint code
npm run lint

# Generate Sanity types
npm run typegen

Type Generation

Sanity types are automatically generated before build:

npm run typegen

This generates TypeScript types from your Sanity schemas in sanity/types.ts.


πŸš€ Deployment

Deploy to Vercel (Recommended)

The easiest way to deploy this Next.js app is using Vercel:

  1. Push your code to GitHub
git add .
git commit -m "Ready for deployment"
git push origin main
  1. Import to Vercel

    • Go to Vercel Dashboard
    • Click "Add New Project"
    • Import your GitHub repository
    • Configure project settings:
      • Framework Preset: Next.js
      • Build Command: npm run build
      • Output Directory: (leave empty)
  2. Add Environment Variables

    • Add all environment variables from your .env.local file
    • Make sure to add them for all environments (Production, Preview, Development)
  3. Deploy!

    • Click "Deploy"
    • Wait for the build to complete
    • Your app will be live at https://your-project.vercel.app

Environment Variables on Vercel

For detailed Vercel deployment instructions:


πŸ“ Important Notes

  • Sanity CMS: Content is managed via Sanity Studio. Make sure to deploy Sanity Studio separately.
  • GitHub OAuth: You need to create a GitHub OAuth App and configure callback URLs for each domain.
  • Environment Variables: All environment variables must be set for the application to work properly.
  • Type Generation: Sanity types are generated automatically before build. Run npm run typegen manually if needed.

πŸ”’ Privacy & Security

  • βœ… GitHub OAuth: Secure authentication with GitHub OAuth 2.0
  • βœ… No Tracking: No analytics or tracking by default
  • βœ… Secure Storage: Environment variables stored securely
  • βœ… Input Validation: Form validation and sanitization
  • βœ… Error Monitoring: Sentry integration for production error tracking (optional)

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“„ License

This project is open source and available under the MIT License.


πŸ™ Acknowledgments

Built with amazing open-source technologies:


⭐ Like this project? Give it a star!

Star History Chart

Star this repo to show your support! ⭐


Built with ❀️ using Next.js, React, and TypeScript

Features β€’ Demo β€’ Getting Started β€’ License

About

A modern startup pitch platform where entrepreneurs showcase ideas, connect with innovators, and build community. Next.js 15 + React 19 + Sanity CMS

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages