A curated gallery of open-source projects from the community.
Discover tools, libraries, and frameworks worth exploring.
npm install
npm run devOpen http://localhost:3000.
Create a .env.local file:
# GitHub API (for project submissions via PR)
GH_TOKEN=your_github_pat # PAT with repo scope
# Cloudflare Turnstile (optional — skipped if missing)
NEXT_PUBLIC_TURNSTILE_SITE_KEY=
TURNSTILE_SECRET_KEY=
# Upstash Redis rate limiting (optional — skipped if missing)
UPSTASH_REDIS_REST_URL=
UPSTASH_REDIS_REST_TOKEN=All anti-spam variables are optional. The app works without them for local development.
app/
page.tsx # Home — featured projects
projects/page.tsx # Explore all projects
actions/ # Server Actions (submit via PR)
components/
ui/ # Nav, glow-card, background, animate-in
projects/ # Grid, card, search, tag filter
submit/ # Modal + form
data/
projects.json # Project data source
lib/
types.ts # TypeScript interfaces
utils.ts # Utilities (cn)
npm run build
npm startBefore deploying:
- Set all environment variables on your hosting platform
- Create a
project-submissionlabel in your GitHub repo - Configure Cloudflare Turnstile and Upstash Redis for production
Compatible with Vercel, Netlify, or any Node.js hosting.
Users submit projects through a modal form. Each submission automatically:
- Creates a new branch with the project added to
projects.json - Opens a Pull Request for review
- Once merged, the project goes live on the next deploy
Anti-spam: Cloudflare Turnstile (bot protection) + Upstash Redis (2 submissions/IP/24h).
MIT