diff --git a/app/components/demo/HomeCtaDemo.vue b/app/components/demo/HomeCtaDemo.vue
new file mode 100644
index 0000000..a958e00
--- /dev/null
+++ b/app/components/demo/HomeCtaDemo.vue
@@ -0,0 +1,25 @@
+
+
+
+
+
diff --git a/app/registry/blocks/home-cta/HomeCta.vue b/app/registry/blocks/home-cta/HomeCta.vue
new file mode 100644
index 0000000..0790cc0
--- /dev/null
+++ b/app/registry/blocks/home-cta/HomeCta.vue
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+ {{ title }}
+
+
+ {{ description }}
+
+
+
+
+
+
+
diff --git a/app/registry/blocks/home-cta/index.ts b/app/registry/blocks/home-cta/index.ts
new file mode 100644
index 0000000..afe2aa3
--- /dev/null
+++ b/app/registry/blocks/home-cta/index.ts
@@ -0,0 +1 @@
+export { default as HomeCta, type HomeCtaLink, type HomeCtaProps } from "./HomeCta.vue";
diff --git a/content/docs/2.components/9.home-cta.md b/content/docs/2.components/9.home-cta.md
new file mode 100644
index 0000000..3d26d5b
--- /dev/null
+++ b/content/docs/2.components/9.home-cta.md
@@ -0,0 +1,84 @@
+---
+title: HomeCta
+description: Render a centered marketing CTA section with an integrated starfield background.
+category: marketing
+---
+
+::component-preview
+---
+name: HomeCtaDemo
+---
+::
+
+## Installation
+
+```bash
+npx shadcn-vue@latest add "https://ui.stackhacker.io/r/home-cta.json"
+```
+
+## Usage
+
+```vue
+
+
+
+
+
+```
+
+## App-Owned Marketing
+
+`HomeCta` owns the centered section layout, starfield background, and CTA button rendering. Your app owns the message, routes, analytics, conversion logic, auth state, campaign state, and any experiment logic around the section.
+
+Pass links as plain data. Use `target: '_blank'` for external links; the component adds `rel="noopener noreferrer"` by default unless you provide a custom `rel` value.
+
+## Examples
+
+### Default
+
+::component-preview
+---
+name: HomeCtaDemo
+---
+::
+
+## API Reference
+
+### Props
+
+| Prop | Type | Default | Description |
+|------|------|---------|-------------|
+| `title` | `string` | — | Main CTA headline supplied by your app. |
+| `description` | `string` | — | Supporting CTA copy supplied by your app. |
+| `links` | `HomeCtaLink[]` | `[]` | CTA links supplied by your app. |
+| `class` | `string` | — | Additional CSS classes for the section. |
+
+### Types
+
+```ts
+interface HomeCtaLink {
+ label: string
+ href: string
+ target?: HTMLAnchorElement['target']
+ rel?: string
+ variant?: 'default' | 'destructive' | 'outline' | 'secondary' | 'ghost' | 'link'
+}
+```
diff --git a/scripts/registry-verify.ts b/scripts/registry-verify.ts
index 7742e1f..40fa0ac 100644
--- a/scripts/registry-verify.ts
+++ b/scripts/registry-verify.ts
@@ -103,6 +103,10 @@ const expectedItems: Record = {
dependencies: ["@lucide/vue"],
registryDependencies: ["button", "collapsible"],
},
+ "home-cta": {
+ dependencies: [],
+ registryDependencies: ["button"],
+ },
};
if (registryIndex) {