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> )}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> )}142 properties · sorted by newest listed
£615,000
NewFour-bedroom Victorian terrace
Hampton Road, Redland
4 bed2 bath1,540 sq ft
£385,000
Two-bedroom garden flat
Chandos Road, Cotham
2 bed1 bath780 sq ft
£549,950
ReducedWarehouse conversion, top floor
Wapping Wharf, Harbourside
3 bed2 bath1,180 sq ft
£472,500
Three-bedroom semi with studio
Kellaway Avenue, Bishopston
3 bed1 bath1,090 sq ft
£289,000
Under offerOne-bedroom period conversion
Pembroke Road, Clifton
1 bed1 bath540 sq ft
£895,000
Five-bedroom detached, corner plot
Downs Park East, Westbury Park
5 bed3 bath2,310 sq ft
Paused on step 3 of 5 · 211s · $0.14 spent so far
Read the deploy manifest — Done
infra/deploy.yaml, 240 lines
Resolve the image tag — Recovered
Registry timed out; used the digest pinned in the lockfile instead.
Recovered — what the later steps used came from the fallback, not from the registry.
Apply the migration — Failed
Blocked. The migration wants a lock the reporting job is holding.
Restart the workers — Waiting
Not started — blocked by the step above.
Verify the health check — Waiting
Not started.
What the tool returned
ERROR: could not obtain lock on relation "orders" (SQLSTATE 55P03)
detail: process 4417 holds AccessExclusiveLock
hint: retrying will queue behind the same lockWhat the agent thinks that means
The nightly reporting job took an exclusive lock on orders at 02:00 and has not released it. Retrying as-is will queue behind the same lock and time out again. Either wait for that job, or run the migration with a lock timeout and accept a partial apply.
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 listing-map-split agent-run-failureThese 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 4 Hoverlab blocks.
*
* Install the sections this file imports:
* npx hoverlab add code-showcase listing-map-split agent-run-failure
*
* Packages the sections need: lucide-react
*
* Rebuild or edit this layout: https://hoverlab5.netlify.app/builder?b=code-showcase,code-showcase,listing-map-split,agent-run-failure
*/
import * as React from 'react'
import { CodeShowcase } from '@/components/code-showcase'
import { ListingMapSplit } from '@/components/listing-map-split'
import { AgentRunFailure } from '@/components/agent-run-failure'
export default function ComposedPage() {
return (
<main className="min-h-screen bg-background text-foreground">
<CodeShowcase />
<CodeShowcase />
<ListingMapSplit />
<AgentRunFailure />
</main>
)
}