Find the right tools for your entire workflow.
Live site · Submit a tool · Browse issues
Toools is an open-source tool stack curation platform — not just a directory. Start from a workflow (Stacks) or browse individual tools (Browse), then land on rich detail pages to compare pricing, signals, and alternatives before visiting the official site.
Two entry points, one decision loop:
Home → Stacks (by workflow) ──→ Stack detail (stages + editor picks) ──┐
→ Browse (by tool) ──→ Tool listing (search + filters) ──┤
▼
Tool detail (decision hub)
→ Visit website via tracked link
Scenario first, tools second. Popular Stacks like Indie Developer Toolkit and Content Creator Suite map each stage of a workflow to curated recommendations with editor notes — so you pick a path before picking individual apps.
- Curated workflows — Multi-stage tool chains for indie devs, creators, startups, and open-source maintainers
- Stage recommendations — Each stage links to approved tools with pricing and trust signals
- Editor notes — Short rationale for why specific tools fit a stage
- Cross-linking — Tool detail pages show Part of these Stacks; category pages nudge users toward full workflows
- Search & filters — Name, description, tags, category, pricing, platform, open-source, and featured status; sort by popularity, recency, or clicks
- Editor's Picks — Hand-curated featured tools ranked by GitHub stars, Product Hunt votes, and views
- Rich tool pages — About, use cases, pros & cons, alternatives, and an At a Glance sidebar (pricing, platforms, open source, signals, freshness)
- Trust signals — GitHub stars, Product Hunt votes, featured badges, view/click counts, and source links on cards and detail pages
- Click tracking — Outbound visits go through
/api/tools/[slug]/outto increment click counts before redirecting
- Community submissions — Structured GitHub Issue template and in-app guide at toools.dev/submit
- Bulk import pipeline — Scripts to seed from Product Hunt and GitHub Awesome lists, plus trust-signal backfill
- Dark mode — System-aware theme toggle
| Layer | Choices |
|---|---|
| Framework | Next.js 16 (App Router) |
| UI | React 19 + Base UI + shadcn/ui |
| Language | TypeScript |
| Database | PostgreSQL via Prisma 7 |
| Styling | Tailwind CSS 4 |
| Typography | Geist Sans & Mono |
| Icons | Lucide |
- Node.js 20+
- A PostgreSQL database (e.g. Neon, local Postgres, or Vercel Postgres)
git clone https://github.com/korbinjoe/toools.git
cd toools
npm installCreate a .env file in the project root:
DATABASE_URL="postgresql://user:password@host:5432/toools"
NEXT_PUBLIC_BASE_URL="http://localhost:3000"| Variable | Required | Description |
|---|---|---|
DATABASE_URL |
Yes | PostgreSQL connection string |
NEXT_PUBLIC_BASE_URL |
No | Public site URL (defaults to https://toools.dev) |
Import and backfill scripts accept additional optional variables — see Data import scripts below.
npx prisma migrate deploy
npx prisma db seed
npx tsx prisma/seed-stacks.tsRecommended for the full product experience (Stacks pages and cross-links):
npx tsx prisma/seed-tool-enrichments.ts # use cases, pros, cons on select toolsnpm run devOpen http://localhost:3000 in your browser.
| Command | Description |
|---|---|
npm run dev |
Start development server |
npm run dev:webpack |
Start dev server with Webpack (instead of Turbopack) |
npm run build |
Generate Prisma client and build for production |
npm run start |
Start production server |
npm run lint |
Run ESLint |
npm run backfill:signals |
Backfill trust signals (PH votes, GitHub stars, sources) |
npx prisma db seed |
Seed the database with curated tools |
npx prisma studio |
Open Prisma's database GUI |
These scripts live in scripts/ (and prisma/ for stack seeds) and require DATABASE_URL in your environment.
Product Hunt import
npx tsx scripts/import-producthunt.tsAuthentication — set one of:
PRODUCTHUNT_TOKEN— bearer token from producthunt.com/v2/oauth/applicationsPRODUCTHUNT_API_KEY+PRODUCTHUNT_API_SECRET— client credentials (token fetched automatically)
Optional: PH_POSTS_PER_TOPIC (default 100), PH_AUTO_APPROVE=true.
GitHub Awesome lists import
npx tsx scripts/import-awesome-lists.tsOptional: GITHUB_TOKEN for higher API rate limits, AWESOME_AUTO_APPROVE=true to auto-approve imports.
Trust signal backfill
For tools imported before trust-signal fields were added:
npx tsx scripts/backfill-trust-signals.ts
# or
npm run backfill:signalsOptions: --dry-run, --skip-awesome, --skip-github-stars, --skip-producthunt, --limit N. Requires GITHUB_TOKEN (recommended) and/or Product Hunt credentials for full backfill.
Other utilities
npx tsx scripts/sync-categories.ts # Sync category definitions
npx tsx scripts/recategorize.ts # Re-run category matching on existing tools
npx tsx scripts/fix-icons.ts # Backfill missing favicons
npx tsx scripts/db-stats.ts # Print database statistics
npx tsx prisma/seed-stacks.ts # Seed tool stacks and stage recommendations
npx tsx prisma/seed-tool-enrichments.ts # Seed use cases, pros, and conssrc/
├── app/
│ ├── page.tsx # Home — hero, Popular Stacks, Editor's Picks, Recently Added
│ ├── stacks/ # Workflow listing and stage-based stack detail
│ ├── tools/ # Browse listing (search, filters) and decision-focused detail
│ ├── categories/ # Category browse (with Stacks cross-links)
│ ├── submit/ # Community submission guide
│ └── api/ # Click tracking redirect, featured tools API
├── components/ # Stack cards, tool signals, filters, layout
└── lib/ # Database client, stacks data, signal helpers
prisma/
├── schema.prisma # Tool, Category, Tag, Stack, Stage models
├── migrations/ # SQL migrations
├── seed.ts # Seed data (~100 curated tools)
├── seed-stacks.ts # Nine curated workflows with stage recommendations
└── seed-tool-enrichments.ts # Use cases, pros, cons for select tools
scripts/ # Import and maintenance scripts
openspec/ # Design proposals and change specs
Site navigation: Stacks · Browse · Categories · Submit
The easiest way to contribute is to open a tool submission issue. Fill in the template with the tool name, URL, tagline, description, category, and pricing. Maintainers review and approve submissions. You can also start from the in-app submit page at toools.dev/submit.
- Fork the repository
- Create a feature branch (
git checkout -b feat/my-feature) - Make your changes and ensure
npm run lintpasses - Open a pull request with a clear description of what changed and why
Bug reports and feature suggestions are welcome via GitHub Issues.
The app is designed to deploy on Vercel with a managed PostgreSQL instance. Set DATABASE_URL in your deployment environment, then run migrations and seeds against the production database:
DATABASE_URL="postgresql://..." npx prisma migrate deploy
DATABASE_URL="postgresql://..." npx prisma db seed
DATABASE_URL="postgresql://..." npx tsx prisma/seed-stacks.ts
DATABASE_URL="postgresql://..." npx tsx prisma/seed-tool-enrichments.tsSee openspec/changes/vercel-deployment/ for detailed deployment notes.
This project is open source. See the repository for license details.