/ tech-stacks / Best Tech Stack for a Directory Site as a Solo Developer
tech-stacks 6 min read

Best Tech Stack for a Directory Site as a Solo Developer

The best tech stack for building a directory site as a solo developer - frameworks, databases, hosting, and tools.

Best Tech Stack for a Directory Site as a Solo Developer

Directory sites are the quiet workhorses of the internet. Product Hunt, G2, Capterra, Yelp, they're all directories at their core. For solo developers, niche directories are particularly attractive: low maintenance once built, strong SEO potential (every listing is a page Google can index), and clear monetization through featured listings or sponsored placements. The technical requirements are simple, which means you can focus on content and SEO rather than engineering.

Here's the exact stack to build one fast.

Layer Pick
Framework Astro or SvelteKit
Database PostgreSQL
Search Meilisearch
ORM Drizzle ORM
Hosting Vercel or Cloudflare Pages
Payments Stripe
Email Resend

Frontend: Astro (Content-Heavy) or SvelteKit (Interactive)

This choice depends on how interactive your directory needs to be.

Astro is the better pick if your directory is primarily a browsable catalog: tool listings, business directories, resource collections. Most pages are static content that changes infrequently. Astro generates blazing-fast static HTML, scores perfect on Core Web Vitals, and handles thousands of pages without breaking a sweat. Add interactive search with a React or Svelte island component.

SvelteKit is the better pick if your directory has heavy user interaction: reviews, ratings, user submissions, comparison features, saved lists, or real-time filtering. SvelteKit gives you a full-stack framework with server-side rendering, form actions, and client-side reactivity built in. The developer experience is excellent for a solo developer because Svelte's syntax is minimal and productive.

For SEO-focused directories where every listing should be its own indexable page, Astro has a slight edge. For directories that feel more like web apps, SvelteKit wins.

Backend: Server Routes

Both Astro and SvelteKit support server-side API routes, so you don't need a separate backend service.

Your backend handles:

  • Listing CRUD - Create and update directory entries (admin and user submissions)
  • Search - Query Meilisearch and return filtered results
  • Reviews/Ratings - Accept and display user reviews
  • Submission moderation - Queue for admin review
  • Payments - Process featured listing purchases via Stripe

Keep the backend thin. A directory's business logic is straightforward: store listings, let people find them, charge for premium placement.

Database: PostgreSQL

A directory's data model maps cleanly to relational tables: listings, categories, tags, reviews, users. PostgreSQL with Drizzle ORM gives you type-safe queries and clean migrations.

Your core schema:

  • listings - Name, description, URL, logo, featured flag, status, created_at
  • categories - Hierarchical categories (use parent_id for nesting)
  • listing_categories - Many-to-many junction table
  • tags - Flexible tagging system
  • reviews - User ratings and text reviews
  • users - Submitters and reviewers

For directories with location data, PostgreSQL's PostGIS extension handles geographic queries (find listings within 50km of a point). But only add this if your directory genuinely needs location-based search.

Host on Neon (free tier, serverless) or Supabase (free tier, includes a nice dashboard for data management).

Search: Meilisearch

Directories live and die by their search experience. Users need to find what they're looking for in seconds, with filters for category, rating, price, and whatever attributes matter in your niche.

Meilisearch is the best search engine for a solo developer building a directory:

  • Instant results - Sub-50ms search responses
  • Faceted filtering - Filter by category, tags, ratings without custom code
  • Typo tolerance - Handles misspellings gracefully
  • Easy setup - Literally curl to install, or use Meilisearch Cloud
  • Free and open source - Self-host or use the cloud tier

Sync your PostgreSQL listings to Meilisearch whenever a listing is created or updated. The search page queries Meilisearch directly from the frontend using their JavaScript SDK for instant search-as-you-type.

Don't use PostgreSQL full-text search for a directory. The UX difference between Meilisearch instant search and Postgres query-and-reload is massive.

Hosting: Vercel or Cloudflare Pages

Directories are read-heavy with mostly static content. Deploy to Vercel for zero-config deployments with SSR support, or Cloudflare Pages for edge-rendered pages globally.

If your directory has thousands of listings and you're using Astro, consider Incremental Static Regeneration. Generate pages at build time and revalidate them periodically. This gives you static performance with dynamic data freshness.

For Meilisearch, either self-host on a cheap VPS ($5-7/month on Railway or Fly.io) or use Meilisearch Cloud (free tier available).

Payments: Stripe

Directory monetization typically follows one of these models:

  1. Featured listings - $50-500 one-time to boost a listing to the top
  2. Subscription tiers - Monthly fee for enhanced listing features
  3. Sponsored categories - Pay to own a category page
  4. Lead generation - Charge per click or contact

Stripe Checkout handles all of these with minimal code. For featured listings, create a one-time Checkout Session. For subscriptions, use Stripe Subscriptions with the Customer Portal.

Nice-to-Haves

  • Resend for email notifications (new listing alerts, review notifications)
  • Cloudflare Turnstile for spam prevention on submission forms
  • Plausible for analytics (track which categories get the most traffic)
  • Schema.org markup for rich search results (LocalBusiness, Product, SoftwareApplication)
  • Sitemap generator for SEO (critical for directories with thousands of pages)
  • RSS feed for new listings (attracts subscribers and aggregators)
  • Screenshot API (like ScreenshotOne) for automatic listing thumbnails

Monthly Cost Breakdown

Service Cost
Vercel (free or Pro) $0-20/month
Neon Postgres (free tier) $0
Meilisearch Cloud (free tier) $0-30/month
Resend (free tier) $0
Stripe 2.9% + 30c per transaction
Domain $1/month
Total ~$1-51/month + Stripe fees

A directory can run profitably on under $10/month. Most of your cost is time spent curating listings, not infrastructure.

Conclusion

The best stack for a solo developer building a directory: Astro (for SEO-heavy directories) or SvelteKit (for interactive ones), PostgreSQL with Drizzle ORM, Meilisearch for instant search, Stripe for monetization, and Vercel for hosting.

The secret to a successful directory isn't technical. It's curation and SEO. Choose a niche where existing directories are either outdated, poorly organized, or nonexistent. Build comprehensive, well-categorized listings. Optimize every page for search. The tech stack above makes the engineering part trivial so you can focus entirely on content quality and search rankings, which is where directory businesses actually win or lose.