Skip to content

Directory

A faceted index with a listing page that compares each entry against its alternatives, a paid submission route, and a published removal rate.

6 routes6 pages · 29 blocks46 files · 6,676 lineslucide-reactAdded 14 Sept 2026

What's included

  • app/about/page.tsx
  • app/globals.css
  • app/layout.tsx
  • app/listing/[slug]/page.tsx
  • app/not-found.tsx
  • app/page.tsx
  • and 10 more files
  • 6 pages it is built from, installed with it
  • Needs lucide-react

Works with

  • React
  • Next.js
  • Tailwind CSS
  • TypeScript

npx hoverlab init directory ./my-app

Or over MCP, from your editor's agent — no account needed.

License

Free to read, copy and install, for personal and non-commercial projects. Shipping it in client work or a paid product needs Pro ($79 once). The source lands in your repo and stops being ours — no attribution, nothing to upgrade.

Was this useful?

Every screen

1,028 developer tools, none of them paid to be here

Filter by pricing model, hosting and compliance rather than by category — you already know the category. Every entry says when it was last checked.

Popular

0 results for “chair”

Nothing matches all of those.

Remove a filter above — the counts show which one is doing it.

How the list is maintained

The four numbers a directory should publish and almost none do

Freshness and independence are the only things that separate a useful directory from a link farm, and both are claims that can be checked rather than adjectives.

Index last rechecked
4 days ago

Every entry’s pricing page and status are fetched fortnightly; the date is on each listing

Removed last month
23 entries

Dead sites, acquisitions and products that stopped shipping. A directory that only grows is not maintained

Paid placements
0

Nobody can buy a position, a badge, or a place in the results. Submissions are £40 and that is the whole business model

Entries with a verified price
94%

The other 6% are marked “contact for pricing”, which is information too

Browse by category

Six sections, 1,028 entries. The counts are live and include everything, not just the entries that paid — because none of them did.

  • Databases and storage

    212 entries — managed Postgres, object storage, vector stores, and the migration tooling around them.

  • Orchestration

    144 entries — workflow engines, schedulers, queues and the durable-execution category that grew out of them.

  • Observability

    186 entries — tracing, logs, metrics, and the seven products that claim to be all three.

  • Identity and access

    97 entries — auth providers, SSO, secrets management and policy engines.

  • Developer workflow

    231 entries — CI, code review, preview environments and local development tooling.

  • Infrastructure

    158 entries — IaC, container platforms, edge runtimes and cost management.

Submit a product — £40, once

Reviewed by a person within two working days. If it does not fit, you get the money back and a sentence explaining why, rather than silence.

  • No subscription, no renewal, no upsell to “featured”
  • Refunded in full if we reject it
  • Removable on request, same day, no questions

How this directory works

Ranking, freshness, corrections and removals — the four things that decide whether a list like this is worth reading.

Spotted something wrong?

Every entry has an edit link, and factual corrections do not need an account. They are usually live within a day.

Report a problem
Can I pay to rank higher?

No, and there is no mechanism to. Results are sorted by the facet you choose and nothing else — there is no "featured" tier, no sponsored row and no badge for sale. Submission costs £40 once and that is the entire revenue of the site.

How do you keep 1,028 entries current?

A fortnightly crawl of every entry’s pricing and status page, flagged for a human when something changes materially. The date each entry was last confirmed is printed on it, so a stale one is visible rather than hidden. 23 were removed last month.

My product is listed and the details are wrong.

There is an edit link on every entry and it does not require an account or ownership proof for a factual correction — pricing, a dead link, a changed name. Changes to the description go through review, which takes about a day.

Can I have my product removed?

Yes, on request, no reason needed and no retention attempt. Email us and it is gone the same day. We think a directory nobody can leave is a hostage situation rather than a resource.

Where do the ratings come from?

Reviews left here, by accounts that have been on the site more than 30 days. They are not aggregated from elsewhere and they are not weighted — the score is the mean, the count is beside it, and a product with 27 reviews should be read differently from one with 214.

Is the data available as an API?

The whole index is downloadable as JSON under CC BY-SA, updated nightly, with no key and no rate limit worth mentioning. If you build something better with it, that is a good outcome.

Live components in your current theme — switch routes, or the phone icon to check the mobile layout. Colours are this template’s Mulberry palette, which ships in app/globals.css. Dusty purple-red at moderate chroma. Plum is the neighbouring hue, louder and rounder; this is the version that can sit behind a thousand-row index without tiring the eye.

Get it

46 files · .zip · nothing to configure · Pro

then

cd directory
npm install
npm run dev

The archive contains the whole project — routes, blocks, theme tokens, Tailwind and PostCSS config, tsconfig and a .gitignore. One runtime dependency, and no Hoverlab dependency at all: it is your code from the moment it unzips.

For AI

The component, its props, the design tokens it expects and the command that installs it — as one prompt. Paste it into Claude, Cursor, v0 or ChatGPT and what they build around it will match the rest of the catalog instead of inventing its own system.

See the prompt

Routes

PathPageFile
/Directory Indexapp/page.tsx
/listing/[slug]Directory Listingapp/listing/[slug]/page.tsx
/searchSearch Resultsapp/search/page.tsx
/submitSingle Offerapp/submit/page.tsx
/aboutAbout Page 02app/about/page.tsx
404404 Pageapp/not-found.tsx

What you get

project root(8 files)

  • GETTING-STARTED.md
  • gitignore
  • next.config.ts
  • package.json
  • postcss.config.mjs
  • README.md
  • tailwind.config.ts
  • tsconfig.json

app/(8 files)

  • about/page.tsx
  • globals.css
  • layout.tsx
  • listing/[slug]/page.tsx
  • not-found.tsx
  • page.tsx
  • search/page.tsx
  • submit/page.tsx

components/(30 files)

  • applied-filters-bar.tsx
  • article-header.tsx
  • booking-scheduler.tsx
  • comparison-table.tsx
  • cookie-consent.tsx
  • cta-inline-card.tsx
  • cta-split-panel.tsx
  • faq-two-column.tsx
  • feature-icon-grid.tsx
  • feature-rows.tsx
  • footer-mega.tsx
  • footer-minimal.tsx
  • hero-editorial.tsx
  • hero-price-anchor.tsx
  • hero-search.tsx
  • job-listing-board.tsx
  • navbar-simple.tsx
  • not-found-404.tsx
  • pricing-value-split.tsx
  • product-info-accordion.tsx
  • product-spec-split.tsx
  • recent-search-list.tsx
  • review-distribution-band.tsx
  • review-list.tsx
  • search-facet-panel.tsx
  • search-faceted-results.tsx
  • search-results-panel.tsx
  • stats-benchmark-band.tsx
  • testimonial-spotlight.tsx
  • theme-provider.tsx

Every file is listed. The 29 files in components/ are the blocks the pages import — each one has its own page if you want to read it on its own.

Project files

Everything except the blocks. Opens on app/globals.css — the file that makes the rest look right, since every block styles itself with bg-card and text-muted-foreground rather than literal colours.

app/globals.css
@tailwind base;
@tailwind components;
@tailwind utilities;

/**
 * Design tokens — the Mulberry palette.
 *
 * Dusty purple-red at moderate chroma. Plum is the neighbouring hue, louder and rounder; this is the version that can sit behind a thousand-row index without tiring the eye.
 *
 * This file is the reason a pasted block looks right. Every block and page
 * styles itself with semantic classes — `bg-card`, `text-muted-foreground`,
 * `border-border` — rather than literal colours, so they inherit whatever
 * you define here instead of fighting it. Change a value below and every
 * section in the project moves with it. Change the hue on `--primary` and
 * `--ring` together and you have rebranded the site.
 *
 * Values are bare HSL channels, not `hsl(...)` calls. That is what lets
 * Tailwind compose them with an alpha suffix: `bg-primary/10` expands to
 * `hsl(var(--primary) / 0.1)`, which is impossible if the variable already
 * carries its own function wrapper.
 *
 * Every foreground/background pair below clears WCAG AA (4.5:1) in both
 * themes. If you retune one, check the pair rather than trusting the eye —
 * mid-lightness accents are the ones that fail.
 */

@layer base {
  :root {
    --background: 318 27% 99%;
    --foreground: 318 45% 9%;
    --card: 0 0% 100%;
    --card-foreground: 318 45% 9%;
    --popover: 0 0% 100%;
    --popover-foreground: 318 45% 9%;
    --primary: 318 55% 34%;
    --primary-foreground: 0 0% 100%;
    --secondary: 318 27% 96%;
    --secondary-foreground: 318 40% 20%;
    --muted: 318 18% 96%;
    --muted-foreground: 318 12% 42%;
    --accent: 336 55% 95%;
    --accent-foreground: 336 50% 22%;
    --destructive: 0 72% 45%;
    --destructive-foreground: 0 0% 100%;
    --border: 318 18% 90%;
    --input: 318 18% 90%;
    --ring: 318 55% 34%;

    --radius: 0.625rem;
  }

  .dark {
    --background: 318 40% 5%;
    --foreground: 318 15% 97%;
    --card: 318 32% 8%;
    --card-foreground: 318 15% 97%;
    --popover: 318 32% 8%;
    --popover-foreground: 318 15% 97%;
    --primary: 318 65% 72%;
    --primary-foreground: 318 45% 8%;
    --secondary: 318 25% 15%;
    --secondary-foreground: 318 15% 97%;
    --muted: 318 25% 15%;
    --muted-foreground: 318 12% 68%;
    --accent: 336 30% 18%;
    --accent-foreground: 336 40% 92%;
    --destructive: 0 62% 52%;
    --destructive-foreground: 0 0% 100%;
    --border: 318 22% 19%;
    --input: 318 22% 19%;
    --ring: 318 65% 72%;
  }
}

@layer base {
  * {
    @apply border-border;
  }

  body {
    @apply bg-background text-foreground antialiased;
  }

  /**
   * Global motion opt-out.
   *
   * Blocks guard their own animations with Tailwind's `motion-safe:`, but
   * third-party CSS and anything you add later will not. This is the
   * backstop: it neutralises every animation and transition on the page
   * for users who have asked the OS for reduced motion, rather than
   * relying on each author to remember.
   */
  @media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
      animation-duration: 0.01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: 0.01ms !important;
      scroll-behavior: auto !important;
    }
  }
}

More Marketing

Open the full page for this template

Marketing Site

A pricing page that answers the objection

Landing page, pricing page, 404. The smallest thing you can put in front of a product and have it look deliberate.

3 routes3 pages13 blocksVermilion
Pro
Open the full page for this template

Content Site

The article at a real measure

A publication that happens to belong to a company: blog index, article, careers and a 404. The site for when the writing is the product — or the marketing.

4 routes4 pages10 blocksInk
Pro
Open the full page for this template

Docs Site

The three-column docs frame

The three-column docs frame — sidebar, article, on-this-page rail — plus a changelog and a 404. The part of the product a search for an error message should find.

3 routes3 pages6 blocksAzure
Pro
Open the full page for this template

Help Centre

Search that answers before the ticket

The support surface, as four routes that agree with each other: searchable answers, the docs, what changed, and a status page carrying the same incident the help page announces.

5 routes5 pages13 blocksRose
Pro
Open the full page for this template

Developer Portfolio

The terminal that introduces you

An engineer’s site rather than a designer’s: a terminal hero, thirty legible lines of real code on the home page, the projects, the writing and a CV that prints.

8 routes8 pages26 blocksPhosphor
Open the full page for this template

Personal Résumé

A CV that prints properly

A minimal personal site whose home page is the CV itself — printable, indexable, and therefore the copy that actually gets maintained. Five routes, warm paper, square corners.

6 routes6 pages17 blocksLinen
Pro
Open the full page for this template

Crypto Exchange

The live price rail

A regulated exchange, front to back: a moving price rail, a public markets screen, the custody facts, the fee schedule and the risk warning as a section rather than as small print.

8 routes8 pages30 blocksVault
Pro
Open the full page for this template

Conference Site

The agenda across three tracks

An event site built around a date: the ticket price step-up above the hero, a two-day programme across three tracks, speakers, venue and a code of conduct.

7 routes7 pages25 blocksMarquee
Pro
Open the full page for this template

Restaurant

The menu, typeset as a bill of fare

A dining room’s whole site: hours and phone above the fold, the menu typeset as a bill of fare, a real reservation flow, the room and the way to find it.

7 routes7 pages24 blocksLaurel
Pro
Open the full page for this template

Estate Agency

Map and results, scrolling apart

Property search with results already in it, a listing page that puts tenure and EPC above the prose, the agents, and a valuation route for the other half of the business.

6 routes6 pages23 blocksHeath
Pro
Open the full page for this template

Job Board

Salary on every row, grouped by craft

A two-sided board where candidates get the whole site and employers get one section and a price. Listings grouped by craft, each with a real salary range and the interview process published.

6 routes6 pages28 blocksFoundry
Open the full page for this template

Open Source Project

The install command, before anything else

A project site for a library: install command above the hero, the API in twenty lines, docs, changelog, roadmap, community, and who funds it said plainly.

7 routes7 pages21 blocksCarbon
Pro
Open the full page for this template

Streaming Service

The watch screen, on the marketing page

A subscription video service: catalogue rails, a real watch screen with chapters and a transcript, one plan at one price, and the account behind it.

6 routes6 pages20 blocksNocturne