Loading the builder…
Builder
Pick sections from 307 blocks, drag them into order, and theme the lot in one go. What renders below is the actual component, not a picture of it — the same one the 126 pages in the catalog are built from. When it looks right, run it or take the source.
The layout and the theme both live in the address bar, so this page is shareable as a link and needs no account. Every edit is a normal navigation, which makes the back button an undo.
Hover a section to move, duplicate or remove it. Drag it to reorder.
No install step, no configuration file, no build plugin.
import { PricingTiers } from '@/components/pricing-tiers'import { FaqAccordion } from '@/components/faq-accordion' export default function Page() { return ( <main> <PricingTiers /> <FaqAccordion /> </main> )}Everything you need to launch — auth, billing, analytics and a dashboard your customers will actually understand.
What each one actually does, rather than a wall of logos.
Design
Match a frame against the catalog and get back the components that already look like it.
Editor
Install a component from the editor over MCP, without opening a browser.
Framework
App Router by default — every block is a server component unless it needs not to be.
Styling
Utility classes and CSS variables, so a copied block inherits your theme rather than fighting it.
Registry
A registry the CLI can install from, including a base preset carrying tokens and fonts.
Tooling
Generated stories per artifact, so a copied block lands with its states already documented.
Framework
The effects already work anywhere. Blocks and pages as single-file components are in progress.
CMS
Content-driven pages with the copy lifted out into a schema you can edit.
Everything you need to launch — auth, billing, analytics and a dashboard your customers will actually understand.
Showing 8 of 1,284 matching “active in the last year”
8 rows selected on this page
All 8 rows on this page are selected.
| Select the 8 rows on this page | Member | Plan | Last seen |
|---|---|---|---|
Ama Boateng ama@meridianfoods.com | Team | 2 minutes ago | |
Deniz Kaya deniz@halden.co | Pro | 1 hour ago | |
Rafael Ortiz rafael@northwind.dev | Free | 3 days ago | |
Yuki Tanaka yuki@brightloom.jp | Team | 6 days ago | |
Nadia Haddad nadia@cedarworks.io | Pro | 2 weeks ago | |
Tom Sørensen tom@fjordlabs.no | Free | 1 month ago | |
Priya Raman priya@sundara.in | Team | 1 month ago | |
Elise Marchand elise@atelier9.fr | Free | 3 months ago |
Every block in the catalog, filtered by what it is. Click to append to the end of the page, or drag one into the outline to place it.
Writes each block to components/, which is where the page below imports them from.
npx hoverlab add code-showcase hero-split integration-grid data-table-bulk-actionsThese sections import lucide-react — everything else they use is React and Tailwind.
Sets the component name and the filename. Optional.
Saves as app/composed-page.tsx
/**
* ComposedPage — composed from 5 Hoverlab blocks.
*
* Install the sections this file imports:
* npx hoverlab add code-showcase hero-split integration-grid data-table-bulk-actions
*
* Packages the sections need: lucide-react
*
* Rebuild or edit this layout: https://hoverlab5.netlify.app/builder?b=code-showcase,hero-split,integration-grid,hero-split,data-table-bulk-actions
*/
import * as React from 'react'
import { CodeShowcase } from '@/components/code-showcase'
import { HeroSplit } from '@/components/hero-split'
import { IntegrationGrid } from '@/components/integration-grid'
import { DataTableBulkActions } from '@/components/data-table-bulk-actions'
export default function ComposedPage() {
return (
<main className="min-h-screen bg-background text-foreground">
<CodeShowcase />
<HeroSplit />
<IntegrationGrid />
<HeroSplit />
<DataTableBulkActions />
</main>
)
}