Product documentation
The project is both a curated directory of free and open-source tools and a real-world example of a maintainable, secure $0 starting stack.
The site contains 466 services across 30 categories and 8 audience profiles. It covers development, DevOps, IT, security, data, design, productivity and business operations.
Catalog metadata was last reviewed on 2026-07-13. Provider limits and licenses change, so official provider documentation remains the source of truth.
Fuzzy search matches names, descriptions, categories and tags, including small misspellings.
Combine multiple categories, audiences, plans, tags and the live-key-test filter. Filters are saved in the URL.
Save services locally without an account, then sign in to merge and sync them across devices.
Copy the agent-access prompt, grant read-only permissions first and use the credential tester where supported.
Search is client-side, debounced and fuzzy. Selected filters use OR logic inside categories, audiences and plans; selected tags use AND logic so each result contains every chosen tag.
Saving a service does not require an account. Anonymous selections are validated against the compiled catalog and stored in a versioned browser key. The personalized page is marked noindex.
auth.uid().The service-role client is never used for My Stack writes. It is reserved for private operational functions such as distributed rate limiting.
Every service card generates a context-aware prompt containing the provider name, category, audience, tags and official links. The prompt requires official tooling and supply-chain verification.
Supported live tests use fixed read-only provider endpoints. The API validates origin and JSON content type, caps request and token sizes, refuses redirects, returns request IDs, disables caching and sends restrictive security headers.
With Supabase configured, the endpoint HMAC-hashes the client identity and calls an atomic Postgres function. The raw IP is never stored. The backing table lives in a private schema, and only service_role may execute the RPC. Configured production deployments fail closed if rate-limit storage is unavailable.
Run supabase/schema.sql to create profiles, stacks, RLS policies, the private limiter table and its atomic RPC.
NEXT_PUBLIC_SUPABASE_URL=
NEXT_PUBLIC_SUPABASE_ANON_KEY=
SUPABASE_SERVICE_ROLE_KEY=
RATE_LIMIT_SECRET=
NEXT_PUBLIC_SITE_URL=Generate RATE_LIMIT_SECRET with openssl rand -base64 32. Keep the service-role key and rate-limit secret server-only.
Catalog files live in lib/catalog-a.ts through lib/catalog-e.ts. The parser supports both the original compact rows and extended metadata.
Name|category|audiences|plan|summary|signup|docs|tags|testerId|lastVerified|source|platforms|deploymentLegacy rows receive the catalog review date and repository source automatically. Categories and tags infer additional audiences without a destructive migration.
Cloud, CI/CD, containers, infrastructure as code and platform engineering.
IT operations, backups, monitoring, identity, networking and remote access.
Notes, task management, collaboration, office and personal productivity.
Self-hosted collaboration, business operations, data, knowledge and homelab tools.
Awesome lists are discovery sources, not automatic imports. Each entry still uses official provider URLs and is reviewed for maintenance, licensing and free-use eligibility.
npm run typecheck
npm test
npm run catalog:validate
npm run catalog:stats
npm run build
npm run checkTests cover catalog parsing, fuzzy filters, URL state, stack validation, HMAC hashing, rate-limit windows and pruning. GitHub Actions and Vercel builds run the full validation pipeline.
Open the repository ↗