Premium AI tools directory template for Next.js — discover, browse, and showcase AI software.. Discover AI tools that move you forward. Full setup guides live in the repo docs/ folder.
Toolistry is a premium AI tools directory template — not a turnkey SaaS. Use three status labels consistently. Full matrix: docs/FEATURE_STATUS.md.
Toolistry is an AI tools directory template by USG Studio, delivered as a source ZIP. Unzip it, install dependencies, and browse curated real-tool demo listings from JSON. Add Supabase and billing keys when you need auth or payments.
# unzip, then install
cd toolistry
npm install
cp .env.example .env.local
npm run dev
Detailed guide: docs/SETUP.md
IMPORTANT — DEMONSTRATION CONTENT ONLY. The AI tool listings, third-party logos, OG images, screenshots, and related example content are for demonstration, testing, and development only. They are not licensed by USG Studio for production use. Replace them before launch. Policy: docs/DEMO_CONTENT_POLICY.md. Checklist: docs/PRODUCTION_CHECKLIST.md.
Commercial use, deep customization, client projects, and monetized End Products are allowed. Reselling the original template (or a superficial reskin) is not. Third-party fonts, icons, and packages keep their own licenses. Summary: docs/LICENSING.md. Full draft: LICENSE.
Copy .env.example to .env.local. Without keys, the public directory still works from JSON.
NEXT_PUBLIC_SITE_URLSite origin (sitemap, auth redirects, billing returns)NEXT_PUBLIC_SUPABASE_*Auth — see docs/SUPABASE.mdBILLING_PROVIDER + secretsPayments — see docs/BILLING.mdAuth is wired to Supabase Auth when NEXT_PUBLIC_SUPABASE_* keys are set. Without keys, browse still works and auth returns 503 AUTH_NOT_CONFIGURED. Admin requires an user_roles admin row (see docs/SUPABASE.md).
/api/auth/registerSupabase sign-up (or 503 if unconfigured)/api/auth/loginSupabase sign-in (or 503 if unconfigured)/api/auth/logoutSupabase sign-out/api/auth/refreshSession claims check/auth/callbackEmail / OAuth code exchangeApply supabase/migrations/20261013120000_init_directory_skeleton.sql then bootstrap admin with sql/supabase-bootstrap-admin.sql.
Set BILLING_PROVIDER to polar (default), stripe, or lemon_squeezy, plus that provider’s keys. Without keys, checkout returns 503 BILLING_NOT_CONFIGURED. Guide: docs/BILLING.md.
/pricingUpgrade UI/api/billing/checkoutCreate checkout session/api/billing/portalCustomer portal/api/billing/webhookProvider webhooksKeep the design system (tokens + components/ui). Change product UI, brand, categories, and JSON freely. Full path: docs/SETUP.md.
lib/brand.tspublic/toolistry-logo.pngapp/globals.csslib/categories.tslib/tools-data.json (replace before production)docs/FEATURE_STATUS.mddocs/LICENSING.mddocs/DEMO_CONTENT_POLICY.mddocs/SUPABASE.mddocs/BILLING.mddocs/WORKERS.mdLocal Node or Cloudflare Workers via vinext. Rename the Worker in wrangler.jsonc before production. After go-live, update Supabase Auth URLs and billing webhooks. Guide: docs/WORKERS.md.
# Node
npm run build && npm run start
# Workers
npm run preview:vinext
npm run deploy:vinext
Set NEXT_PUBLIC_SITE_URL for sitemap and robots. Run npm run validate:production-content -- --production before launch. License: LICENSE.