BlockDex

Components

Registries

Free blocks

Method

BlockDex

Components

Registries

Free blocks

Method

Open API

BlockDex

Components

Registries

Free blocks

Method

Open API

Components/vanillasky/reviewStack

Review Stack

vanillasky/reviewStack
FreeBlock

Two or more real attributed reviews, ratings, or quotes that should appear as social proof together. Requires real quote/source content.

See it running

Open the demo on vanillasky

vanillasky.ai/docs/components/reviewStack
Open
This registry sends X-Frame-Options, so its page cannot be embedded here. The link is the same page the frame would have shown.

Install it

npx shadcn@latest add https://vanillasky.ai/r/reviewStack.json

Source

src/lib/scene-templates/social-review-stack.tsxvanillasky.ai/r/reviewStack.json
1/**
2 * social-review-stack — stacked review cards with staggered spring entrance.
3 *
4 * Converted from Remotion AppStoreReviews. Three review cards stacked with
5 * slight rotations, each sliding in with a spring delay. Gold star ratings,
6 * dark cards on dark background.
7 *
8 * Block structure (docs/blocks.md):
9 * background — SceneBackground (brand gradient / Pexels media + scrims)
10 * hero — ReviewStack primitive (the card stack IS the scene; no
11 * separate caption slot — review titles carry the text)
12 */
13
14import type { VariableField } from "../video-config";
15import type { SceneTemplateProps } from "./types";
16import { resolveTokens } from "../theme";
17import { SceneBackground, mediaBackgroundSchemaFields, mediaBackgroundDefaults } from "./scene-background";
18import { ReviewStack } from "../primitives/social/ReviewStack";
19
20/** Build reviews array from individual variable fields */
21function buildReviews(variables: Record<string, unknown>): { title: string; body: string; author: string }[] {
22 const reviews: { title: string; body: string; author: string }[] = [];
23 for (let i = 1; i <= 3; i++) {
24 const title = String(variables[`review${i}Title`] || "");
25 if (!title) continue;
26 reviews.push({
27 title,
28 body: String(variables[`review${i}Body`] || ""),
29 author: String(variables[`review${i}Author`] || ""),
30 });
31 }
32 return reviews;
33}
34
35export const socialReviewStackSchema: Record<string, VariableField> = {
36 review1Title: {
37 type: "string",
38 label: "Review 1 — Title",
39 default: "Life changing app",
40 required: true,
41 description: "Headline of the first review",
42 },
43 review1Body: {
44 type: "string",
45 label: "Review 1 — Body",
46 default: "Been using this for a month and can't imagine going back",
47 description: "Body text of the first review",
48 },
49 review1Author: {
50 type: "string",
51 label: "Review 1 — Author",
52 default: "Sarah M.",
53 description: "Author name for the first review",
54 },
55 review2Title: {
56 type: "string",
57 label: "Review 2 — Title",
58 default: "Best in class",
59 required: true,
60 description: "Headline of the second review",
61 },
62 review2Body: {
63 type: "string",
64 label: "Review 2 — Body",
65 default: "Finally an app that just works. No bloat, no nonsense.",
66 description: "Body text of the second review",
67 },
68 review2Author: {
69 type: "string",
70 label: "Review 2 — Author",
71 default: "Mike R.",
72// … truncated

What it pulls in

npm packages

  • react

Other registry items

  • @vanillasky/backgrounds
  • @vanillasky/motion
  • @vanillasky/theme
  • @vanillasky/typography
  • @vanillasky/video-config

Files it writes

  • src/lib/scene-templates/social-review-stack.tsx
  • src/lib/primitives/social/ReviewStack.tsx
  • src/lib/scene-templates/scene-background.tsx
  • src/lib/scene-templates/types.ts

Facts

Registry
vanillasky
Type
registry:block
Access
Free
Files written
4
Licence
MIT
First indexed
2026-08-08
Last confirmed
3 days ago

Go to the source

Docs on vanillasky vanillasky.ai VanillaSkyAi/skills on GitHub Raw registry item This item as JSON

More from vanillasky

All 33 items
Same registry, same kind — the ones you would have found next
ComponentRegistryKindAccessInstallsCommand
Bar ChartbarChartvanillaskyBlocksFree1 dep · 8 files
Before AfterbeforeAftervanillaskyBlocksFree1 dep · 7 files
Big NumberbigNumbervanillaskyBlocksFree1 dep · 8 files
Brand MessagebrandMessagevanillaskyBlocksFree1 dep · 6 files
Card ListcardListvanillaskyBlocksFree1 dep · 8 files
Chat MessengerchatMessengervanillaskyBlocksFree1 dep · 6 files
Chat WhatsappchatWhatsappvanillaskyBlocksFree1 dep · 6 files
Code EditorcodeEditorvanillaskyBlocksFree1 dep · 7 files
BlockDex

Built by

Kynth Studios

Index

Components
Registries
Method
Open API

Guides

shadcn component libraries
Best shadcn registries
Free shadcn blocks

Reference

Corpus counts
Crawl health
hello@kynth.studio
Privacy
Terms

BlockDex

BlockDex

Built by

Kynth Studios

Index

Components
Registries
Method
Open API

Guides

shadcn component libraries
Best shadcn registries
Free shadcn blocks

Reference

Corpus counts
Crawl health
hello@kynth.studio
Privacy
Terms

BlockDex

BlockDex

Built by

Kynth Studios

Index

Components
Registries
Method
Open API

Guides

shadcn component libraries
Best shadcn registries
Free shadcn blocks

Reference

Corpus counts
Crawl health
hello@kynth.studio
Privacy
Terms

BlockDex