How to Build a Directory Site as a Solo Developer
Step-by-step guide to building a directory site by yourself. Tech stack, timeline, costs, and practical advice.
What You're Building
A directory site is a curated collection of tools, services, businesses, or resources organized by category. Think Product Hunt, Indie Hackers, or niche directories like "Best AI Tools" or "Remote Job Boards." Directories are one of the best solo developer projects because they're simple to build, great for SEO, and have multiple proven monetization paths.
I built a directory site for AI tools and it was one of the faster projects I've shipped. The tech is straightforward. The real work is curating quality listings and building traffic.
Difficulty & Timeline
| Aspect | Detail |
|---|---|
| Difficulty | Easy |
| Time to MVP | 2-3 weeks |
| Ongoing Maintenance | Low to Medium |
| Monetization | Paid listings, featured placements, affiliate links |
Recommended Tech Stack
SvelteKit or Next.js for the frontend, PostgreSQL for storing listings, and Meilisearch for fast search and filtering. Host on Vercel or Cloudflare Pages. The whole thing can run on free tiers until you have real traffic.
If you want to go even simpler, Astro with a JSON file as your "database" works for directories under 500 listings. No backend needed at all.
When you scaffold the project, install the current stable releases so you start from a version the docs actually describe. As of late May 2026 the latest published versions are SvelteKit @sveltejs/kit 2.61.1, Next.js 16.2.6, and Astro 6.4.2 on npm. PostgreSQL 18 (latest minor 18.4) is the current major line. Meilisearch ships as the self-hostable v1.45.1 engine. Pin these in package.json rather than chasing whatever a stale tutorial used.
# SvelteKit (interactive scaffold)
npx sv create my-directory
# Next.js
npx create-next-app@16 my-directory
# Astro
npm create astro@latest my-directory
Versions and Free Tiers (Checked May 2026)
| Tool | Latest version | Free option | Source-verified figure |
|---|---|---|---|
| Next.js | 16.2.6 | Open source (MIT) | ~40.1M npm downloads/week, ~139.6k GitHub stars |
| Astro | 6.4.2 | Open source (MIT) | ~3.0M npm downloads/week, ~59.7k GitHub stars |
| SvelteKit | 2.61.1 | Open source (MIT) | ~2.0M npm downloads/week, ~20.5k GitHub stars |
| Meilisearch | v1.45.1 | Free self-host; Cloud from $20/mo | ~57.8k GitHub stars; ~462.7k weekly downloads on the JS client |
| PostgreSQL | 18.4 | Free, open source | ~21.0k stars on the GitHub mirror |
Download numbers are for the npm week of 2026-05-22 to 2026-05-28. They are a rough proxy for ecosystem size and how much Stack Overflow help you will find, not a quality ranking.
What the Free Hosting Tiers Actually Cover
Vercel's Hobby plan is free for personal, non-commercial projects and includes 1,000,000 function invocations, 1,000,000 edge requests, 4 CPU-hours of Active CPU, and 100 deployments per day per month. The default function duration cap is 10 seconds. Note the fair-use restriction to non-commercial use, so the moment your directory sells paid listings you are expected to move to the Pro plan at $20 per user per month.
Cloudflare Pages' Free plan allows 500 builds per month and up to 20,000 files per site. Static asset requests and bandwidth are unlimited on every tier, which is unusual and genuinely useful for a content-heavy directory. If you add Pages Functions for dynamic routes, those requests count against the Workers Free quota instead.
For a directory that is mostly static listing pages with occasional search calls, both free tiers are comfortable until you are well past the point where the site is paying for itself. Verify the current numbers before you commit, since hosting limits change often.
Step-by-Step Plan
Phase 1: Foundation (Week 1)
Pick your niche first. "Best AI Tools" is saturated. "Best AI Tools for Real Estate Agents" has far less competition and a clear audience. The narrower your niche, the easier it is to rank on Google and attract listings.
Build the listing schema. Each listing needs a name, URL, description, category, tags, and a featured image at minimum. Add pricing info, pros/cons, and a rating if it makes sense for your niche. Set up the database and create a simple admin interface for adding listings.
I'd also recommend building a submission form from day one. Let people submit their tools to your directory. It saves you research time and makes tool creators feel invested in your platform.
Phase 2: Core Features (Week 2)
Build the browse and search experience. Category pages, tag filtering, and a search bar are the core navigation patterns. Meilisearch makes this trivially easy. It handles typo tolerance, faceted search, and instant results with minimal configuration.
Each listing needs its own page with a unique URL. This is critical for SEO. A page at /tools/notion that has a detailed description, screenshots, pricing info, and alternatives will rank well for searches like "Notion review" or "Notion alternatives."
Add sorting options. Newest, most popular, highest rated, alphabetical. These seem small but they keep users browsing longer.
Phase 3: Polish & Launch (Week 3)
Seed your directory with at least 50-100 listings. An empty directory is useless. Spend a few days manually researching and adding quality listings. I know it's tedious. Do it anyway. Nobody will submit their tool to an empty directory.
Add basic analytics to track which listings get the most clicks. This data becomes valuable when you start selling featured placements.
Launch by reaching out to the tools you've listed. Email them saying "Hey, I listed your tool on [your directory]. Check it out." Many will share it with their audience, giving you free traffic.
Monetization Strategy
Directories have some of the cleanest monetization in the solo developer world.
Paid listings. Charge $49-199 for a permanent listing with extra visibility. Some directories charge monthly ($29-99/month) for ongoing featured placement. This is the primary revenue driver for most directory sites.
Featured placements. Charge $99-499/month for homepage placement, category page banners, or "Editor's Pick" badges. These are premium advertising spots that tool companies will pay for.
Affiliate links. Link to tools using your affiliate link. If someone signs up through your directory, you get a commission. This works especially well for SaaS tools with generous affiliate programs (many pay 20-30% recurring).
I've seen solo-run directory sites making $2,000-10,000/month from a combination of these three streams. The overhead is almost zero once it's running.
Common Mistakes to Avoid
Launching empty. I said it above, but it's worth repeating. Seed with 50+ listings minimum. Nobody trusts a directory with 12 entries.
Ignoring SEO from the start. Directory sites live and die by organic search traffic. Every listing page should have unique meta descriptions, proper heading structure, and content beyond just a name and link. Write 2-3 sentences of original description for each listing.
Making submission too complicated. Your submission form should take under 2 minutes to fill out. Name, URL, description, category. That's it. You can ask for more details after you've reviewed the submission.
Not curating quality. A directory with 10,000 junk listings is worse than one with 200 quality listings. Review every submission. Remove dead links monthly. Quality is your competitive advantage over AI-generated directories that scrape the web indiscriminately.
Is This Worth Building?
For the effort involved, directory sites offer one of the best return on investment for solo developers. They're fast to build, naturally attract backlinks (tool creators link to their listing), and have multiple revenue streams that don't require a huge audience.
The main risk is competition. "Best X Tools" directories are everywhere. But niche directories still have plenty of opportunity. "Best Tools for Veterinary Clinics" or "Directory of Indie Game Asset Packs" have almost no competition. Find a niche where people are searching but nobody has built a quality directory yet, and you've got a winner.
Common Errors and Fixes
These are the snags that actually cost solo builders time when wiring up this stack, with fixes grounded in the official docs.
Vercel function times out on search or import jobs. The Hobby plan defaults to a 10 second function duration cap, and bulk-seeding listings or proxying a slow search call can blow past it. On Hobby you can configure the duration up to 60 seconds; move heavier jobs to a background queue or a build-time step instead of a request-time function. Confirm your current limit on the Vercel limits docs.
Vercel pauses your project for "commercial use." The Hobby plan is restricted to non-commercial, personal use under Vercel's fair-use guidelines. The day your directory starts charging for listings, that is commercial use, and you are expected to upgrade to Pro at $20 per user per month. Budget for it rather than getting surprised by a paused deployment.
Cloudflare Pages build fails after a burst of commits. The Free plan allows 500 builds per month. If a noisy auto-deploy or a CI loop chews through that, builds stop until the window resets. Disable preview builds for non-main branches or batch your commits.
Cloudflare Pages upload rejected for too many files. A Pages site can hold up to 20,000 files on the Free plan. A directory that generates one static HTML file per listing plus per-page assets can approach this faster than you expect at scale. Consolidate assets or move to on-demand rendering before you hit the ceiling.
Meilisearch search returns nothing after seeding. New documents are not searchable until indexing finishes, and attribute settings such as filterableAttributes must be declared before faceted filtering works. Add an index settings step to your seed script and poll the task status before you assume the data is live. The self-hosted engine is free, so test this locally against the same v1.45.1 build you deploy.
Tutorial commands break against your installed version. Most "directory site" tutorials were written against older majors. Next.js is on 16.2.6, Astro on 6.4.2, and SvelteKit on 2.61.1 as of this writing, and APIs like routing conventions and config file shapes have shifted between majors. Read the release notes for your exact version instead of trusting a year-old blog post.
Sources
- SvelteKit version (
@sveltejs/kit2.61.1): https://registry.npmjs.org/@sveltejs/kit/latest (checked 2026-05-30) - SvelteKit weekly downloads: https://api.npmjs.org/downloads/point/last-week/@sveltejs/kit (checked 2026-05-30)
- SvelteKit GitHub stars: https://github.com/sveltejs/kit (checked 2026-05-30)
- Next.js version (16.2.6): https://registry.npmjs.org/next/latest (checked 2026-05-30)
- Next.js weekly downloads: https://api.npmjs.org/downloads/point/last-week/next (checked 2026-05-30)
- Next.js GitHub stars: https://github.com/vercel/next.js (checked 2026-05-30)
- Astro version (6.4.2): https://registry.npmjs.org/astro/latest (checked 2026-05-30)
- Astro weekly downloads: https://api.npmjs.org/downloads/point/last-week/astro (checked 2026-05-30)
- Astro GitHub stars: https://github.com/withastro/astro (checked 2026-05-30)
- Meilisearch engine release (v1.45.1) and stars: https://github.com/meilisearch/meilisearch (checked 2026-05-30)
- Meilisearch JS client version and downloads: https://registry.npmjs.org/meilisearch/latest (checked 2026-05-30)
- Meilisearch pricing (self-host free, Cloud from $20/mo): https://www.meilisearch.com/pricing (checked 2026-05-30)
- PostgreSQL latest version (18.4): https://www.postgresql.org/ (checked 2026-05-30)
- PostgreSQL GitHub mirror stars: https://github.com/postgres/postgres (checked 2026-05-30)
- Vercel Hobby plan limits and pricing: https://vercel.com/docs/plans/hobby (checked 2026-05-30)
- Cloudflare Pages Free plan limits: https://developers.cloudflare.com/pages/platform/limits/ (checked 2026-05-30)
Like this? You'll like what I'm building too.
Two ways to support and get more of this work.
HEARTH
A privacy-first Life OS for your desktop. Journal, tasks, and notes that stay on your machine. Coming soon, direct download from this site.
Read moreMY TOOLKITS
Receipts-first toolkits for shipping after hours, building Claude agents, publishing on Amazon, and more. The exact methods I used, not theory.
Browse on WhopRelated Articles
Treating Video As Code With Remotion And fal
How I turned a script into a finished video with code instead of a timeline app, and why determinism is the real win for a solo dev.
Build Versus Buy For A Custom AI Feature
How to decide between an off-the-shelf AI tool and a custom AI feature, weighing control, cost, differentiation, and data with a clear framework.
Can One Developer Build Your Whole MVP
An honest look at whether a single full-stack developer can ship your whole MVP, when it works beautifully, and when you should bring in more people.