Home Lab
atroui/home-labFreeBlock
Free tools / lab band with editable TOOLS catalog.
Install it
npx shadcn@latest add https://atroui.com/r/home-lab.jsonSource
1import { ArrowRight, ArrowUpRight } from "lucide-react"2import Link from "next/link"34/**5 * Edit TOOLS to swap the lab catalog. Matches docs Home Lab band.6 */7const CONTENT = {8 stamp: "Free tools",9 headlineBefore: "Proof between",10 headlineAccent: "client sprints",11 headlineAfter: ".",12 lede: "No signup. No watermark. Feel the craft before you hire it.",13 allHref: "/tools",14 allLabel: "All tools",15}1617const TOOLS = [18 {19 name: "OG Image Generator",20 tagline: "Viral OG images in seconds",21 description:22 "Turn a single prompt into a polished 1200×630 Open Graph image.",23 href: "/og",24 status: "live" as const,25 highlights: ["1200×630", "One-prompt generate", "Instant download"],26 featured: true,27 },28 {29 name: "Thumbnail Generator",30 tagline: "Click-worthy thumbnails on demand",31 description:32 "YouTube, LinkedIn, and blog thumbnails from a prompt or a link.",33 href: "/thumbnail",34 status: "live" as const,35 highlights: ["YouTube 16:9", "LinkedIn", "Blog covers"],36 featured: false,37 },38 {39 name: "Smart PDF Tools",40 tagline: "Understand, extract, and transform PDFs",41 description: "Summarize, extract tables, and convert - built for makers.",42 href: "/tools#smart-pdf",43 status: "soon" as const,44 highlights: ["Summarize", "Extract tables", "Clean exports"],45 featured: false,46 },47 {48 name: "Link-to-Preview",49 tagline: "Beautiful preview cards from any URL",50 description: "Paste any link, get a designer-grade preview card.",51 href: "/tools#link-scraper",52 status: "soon" as const,53 highlights: ["Embed HTML", "Fast OG scrape", "Themeable"],54 featured: false,55 },56]5758function statusLabel(status: "live" | "beta" | "soon") {59 if (status === "live") return "Live"60 if (status === "beta") return "Beta"61 return "Soon"62}6364export function HomeLab() {65 const featured = TOOLS.find((t) => t.featured) ?? TOOLS[0]!66 const rest = TOOLS.filter((t) => t !== featured)6768 return (69 <section className="border-t border-border-subtle">70 <div className="border-b border-border-subtle">71 <div className="mx-auto flex max-w-7xl flex-col gap-6 border-x border-border-subtle px-6 py-12 sm:flex-row sm:items-end sm:justify-between sm:px-10 sm:py-16">72 <div className="max-w-2xl">73 <p className="text-[11px] font-semibold tracking-[0.14em] text-muted-foreground uppercase">74 {CONTENT.stamp}75 </p>76// … truncated
What it pulls in
npm packages
Files it writes
More from atroui
All 82 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Analytics Provideranalytics-provider | atroui | Blocks | Free | 1 dep | |
| AR Portfolioar-portfolio | atroui | Blocks | Free | 1 dep | |
| Before / Afterbefore-after-slider | atroui | Blocks | Free | no deps | |
| Calendly Embedcalendly-embed | atroui | Blocks | Free | 1 dep | |
| Changelogchangelog | atroui | Blocks | Free | no deps | |
| Command Menucommand-menu | atroui | Blocks | Free | 4 deps | |
| Contact Formcontact-form | atroui | Blocks | Free | 2 deps | |
| Contextual CTAcontextual-cta | atroui | Blocks | Free | 2 deps |
