You
12 Sep, 09:02The second chair from ORD-88410 arrived with a cracked base plate. I would rather fit a replacement plate myself than wait for a whole chair.
base-plate.jpg
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.
TKT-11842
Sam Okafor replies within 3 h 34 min. That is a commitment, not an estimate. If it passes, the ticket escalates automatically and you do not have to ask.
The second chair from ORD-88410 arrived with a cracked base plate. I would rather fit a replacement plate myself than wait for a whole chair.
base-plate.jpg
Sorry about that. A plate is going out today and should reach you Monday — four M6 bolts under the seat pan, and the allen key in the box fits. Fitting it yourself does not affect the warranty.
Great. Can you confirm the plate is for the tall variant, not the standard one?
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.
Principal engineer — platform, performance and the unglamorous parts
Print or save as PDF
Ten years building systems that other engineers depend on, mostly by removing things. I am at my best on a team that has outgrown its first architecture and has to keep shipping while it changes. Looking for a principal or staff role where the hard problem is technical rather than political.
Mar 2023 — Present · Remote
Series B logistics platform, 40 engineers, one Rails monolith and four Go services.
Jun 2019 — Feb 2023 · Dublin
Patient records for 60 clinics. Regulated, audited, and slow to change by design.
Sep 2016 — May 2019 · Dublin
TypeScript · Go · Postgres · React · Next.js · Terraform · OpenTelemetry · WCAG 2.2 AA · Incident command
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 support-ticket-thread code-showcase hero-split resume-documentThese 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 support-ticket-thread code-showcase hero-split resume-document
*
* Packages the sections need: lucide-react
*
* Rebuild or edit this layout: https://hoverlab5.netlify.app/builder?b=support-ticket-thread,code-showcase,hero-split,resume-document
*/
import * as React from 'react'
import { SupportTicketThread } from '@/components/support-ticket-thread'
import { CodeShowcase } from '@/components/code-showcase'
import { HeroSplit } from '@/components/hero-split'
import { ResumeDocument } from '@/components/resume-document'
export default function ComposedPage() {
return (
<main className="min-h-screen bg-background text-foreground">
<SupportTicketThread />
<CodeShowcase />
<HeroSplit />
<ResumeDocument />
</main>
)
}