Back to themes

LocalFinds Directory

Local-business directory template. Point it at any vertical - restaurants, salons, gyms, mechanics - by editing one config file. Airtable as the CMS, deploys to Cloudflare Workers.


Cost

Paid


Created by
Matt

Production-ready local directory template on Astro 6 + Tailwind v4, Airtable as the CMS, deploys to Cloudflare Workers.


Ships as a working restaurant guide, but "restaurants" is just a config value. Edit src/site.config.ts and the same codebase becomes a salon, gym, or mechanic directory. No component touched, no route rewritten.


Directory listings live in Airtable. The build fetches every table, resolves links to URL slugs, self-hosts images, and renders static HTML. Fast, cheap, no live DB calls.

The one-config idea

Generic primitives - Item, Taxonomies, optional Tier. What they mean lives in one config file:


item: { singular: 'Place to Eat', slugBase: 'place' },
taxonomies: [
  { key: 'cuisine', label: 'Cuisine', slugBase: 'cuisine' },
  { key: 'area',    label: 'Area',    slugBase: 'area' },
],


To turn it into a hairdresser directory: Cuisine → Specialty, Place → Salon, rename matching Airtable tables. Done.

Features

  • One config file controls the entire vertical (labels, URLs, SEO copy)
  • Airtable as the CMS - non-technical-friendly
  • Filterable listings + "Open now" toggle
  • Detail pages with gallery, map, hours, action buttons
  • Map view via MapLibre + OpenFreeMap (no API keys)
  • Static search via Pagefind
  • 3 Airtable-wired forms (submit, contact, newsletter) with built-in spam protection
  • MDX blog
  • Full SEO: OG, Twitter cards, JSON-LD, sitemap
  • Build-time image self-hosting (Airtable URLs expire)
  • Optional CSV bulk-import script
  • Live demo + complete docs incl. vertical-conversion walkthrough


Live demo: https://localfinds-directory.websiterating.com/

Landing page: https://www.websiterating.com/tools/localfinds-astro-directory-template/

Documentation: https://www.websiterating.com/tools/localfinds-astro-directory-template/docs/