Foundrly is a full-stack web application that enables users to create, share, and discover startup pitches in real time. Designed for both entrepreneurs and investors, Foundrly streamlines startup discovery by combining clean UI, dynamic content, and modern authenticationβall built using Next.js, Sanity, and NextAuth.
Key guides in this repository:
- Getting Started
- Architecture Overview
- API Reference
- Deployment Guide
- Troubleshooting Guide
- More topics: badges, notifications, analytics, Docker, Vercel, and AI integration are covered in the root-level guides (e.g.,
BADGE_SYSTEM_GUIDE.md,ENHANCED_BADGE_SYSTEM_GUIDE.md,NOTIFICATION_SYSTEM_GUIDE.md,PUSH_NOTIFICATIONS_GUIDE.md,STARTUP_ANALYTICS_GUIDE.md,DOCKER_*_GUIDE.md,GROK_API_SETUP.md,GROQ_API_SETUP.md).
# Set up environment variables
cp .env.example .env.local-
Startup Pitch Creation: Create detailed startup pitches with markdown support
-
Startup Submission Forms: Forms with validation and image support
-
Messaging System: Direct messaging between users
-
Suggested Users: Discover new users to follow
-
Sentry Integration: Performance and error tracking
-
Content Moderation: Review and manage reported content
-
Strike System: Progressive discipline for rule violations
-
Admin Actions: Direct content management and user moderation
- Framework: Next.js 15 (canary)
- UI Library: React 18
- Language: TypeScript
- Styling: Tailwind CSS
- CMS: Sanity v3
- Authentication: NextAuth.js v5 (beta) with GitHub provider
- File Storage: Vercel Blob (prod) / Local filesystem (dev)
- Observability: Sentry
- UI Components: Radix UI
- Icons: Lucide React
- Node.js 18.17+ (or Node 20+)
- npm or yarn
- Sanity account (for CMS)
-
Clone the repository:
git clone https://github.com/yourusername/foundrly.git cd foundrly -
Install dependencies:
npm install
-
Set up environment variables:
cp .env.example .env.local
-
Configure your environment variables in
.env.local:NEXT_PUBLIC_SANITY_PROJECT_ID=your_project_id NEXT_PUBLIC_SANITY_DATASET=production SANITY_API_TOKEN=your_api_token NEXTAUTH_SECRET=your_nextauth_secret NEXTAUTH_URL=http://localhost:3000 BLOB_READ_WRITE_TOKEN=your_blob_token
Run the development server:
```bash
npm run dev
```
Open http://localhost:3000 with your browser to see the result.
Image uploads work out of the box in local development. Files are stored in the public/uploads/ directory.
For production deployment on Vercel:
-
Enable Vercel Blob Storage:
- Go to your Vercel project dashboard
- Navigate to Storage β Blob
- Create a new Blob store
- Copy the
BLOB_READ_WRITE_TOKENto your environment variables
-
Set Environment Variables:
- Add
BLOB_READ_WRITE_TOKENto your Vercel project environment variables - Redeploy your application
- Add
The application automatically detects the environment and uses:
- Local storage for development
- Vercel Blob storage for production
npm run build
npm start- Browse a live feed of startup pitches.
- Log in using GitHub to manage your own startup submissions.
- View any user's profile and see what startups they've shared.
- Use the search bar to filter ideas based on relevance and category.
Authentication is handled via NextAuth with GitHub as the provider. When users log in, their profile is auto-created in Sanity if not already present. Sessions are maintained across pages and API routes using server-side sessions.
Each user has a dedicated profile page displaying:
- Name
- Username
- Avatar
- Bio
- All submitted startups
Static site generation with dynamic data fetching is used to optimize performance and SEO.
Logged-in users can submit startup pitches through a dedicated form. Fields include:
- Title
- Description
- Category
- Image URL
- Rich-text pitch body
Validation is enforced both on the client and server. All data is synced with Sanity CMS in real time.
Sentry is integrated to track:
- Errors and exceptions
- Latency and performance bottlenecks
- API failures
This helps maintain app health in both development and production environments.
To deploy on Vercel:
- Push the code to GitHub:
git init git add . git commit -m "Initial commit" git branch -M main git remote add origin https://github.com/yourusername/foundrly.git git push -u origin main
- Connect the GitHub repo to Vercel.
- Add all required environment variables in the Vercel dashboard.
foundrly/
βββ app/ # Next.js app directory
β βββ api/ # API routes
β βββ (root)/ # Main pages
β βββ studio/ # Sanity studio
βββ components/ # React components
β βββ ui/ # UI components
βββ lib/ # Utility functions
βββ hooks/ # Custom React hooks
βββ sanity/ # Sanity configuration
βββ public/ # Static assets
This is an active project, and contributions are welcome.
If you'd like to suggest improvements, fix bugs, or add new features:
- Fork the repo
- Create a new branch
- Submit a pull request
For large-scale ideas, please open an issue first to discuss it.
This project is licensed under the MIT License.
- Pitch Generator (AI-powered): Instantly generate full startup pitches from your idea or description
- Semantic search (vector similarity, natural language)
- Pitch analysis (scoring, strengths/weaknesses, market insights)
- Personalized recommendations (user behavior, vector matching)
- Enhanced content moderation (AI-powered analysis)
- Vector database integration (Pinecone)