/ build-guides / How to Build a Directory Site as a Solo Developer
build-guides 10 min read

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.

Hero image for How to Build a Directory Site as a Solo Developer

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

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

Built by Kevin

Like this? You'll like what I'm building too.

Two ways to support and get more of this work.

Desktop App

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 more
Digital Products

MY 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 Whop

Need This Built?

Kevin builds products solo, from first version to live. If you want something like this made, work with him.