Skip to content

DirectorySkills

Social post quotes: 1440, made in this run
Run 1Social post quotes“Make a "wall of love" section from these posts about our app. They are in brief.md.”
Runs in
  • Claude Code
  • Codex
  • Cursor
  • Gemini CLI
  • GitHub Copilot
  • OpenCode
Generates with
Your agent's model
Tested with
Claude Code 2.1.322Claude Sonnet 5.51 real run, 12 Nov
Needs
Node 20+Chrome
Licence
Recaply licence

Social Post Quotes

Customer quotes laid out as a masonry wall of social-style posts with names, handles, dates and like counts.

$9.99once, yours to keep

Builds testimonials styled as a wall of social posts into your own project: a masonry wall of white post cards on soft grey, each with a portrait, display name, @handle and date, the post text with highlighted mentions and tags, and reply and like counts. Plain HTML, CSS and JavaScript, or matched to React, Next.js, Vue, Svelte, Astro or Tailwind when the project uses them. Comes with a working reference and a check that screenshots it at phone, tablet and desktop widths and flags sideways overflow, text under 12px, missing alt text and names, low contrast, no focus styles, motion that ignores reduced motion, leftover sample words and emoji icons. Use when a product with lots of public praise wants to show it as posts, or someone asks for tweet-style, social feed or wall-of-love testimonials.

By RecaplyUpdated 12 Nov

Install Social Post Quotes

After the download, ask your agent to add it, or run the line yourself.

Read https://recaply.co/skills/social-post-quotes/install.md and follow it to install the social-post-quotes skill from social-post-quotes.zip.

Paste it into your agent. It reads our install steps, finds the ZIP you downloaded and adds the skill for you.

New to skills? How to install a skill

Similar skills

All 735 skills

Who Social Post Quotes is for

What you get

  • One HTML file with its CSS inside: no build step, no framework
  • Testimonials styled as a wall of social posts
  • Checked at phone and desktop widths

Good fit

  • When a product with lots of public praise wants to show it as posts

Not for

  • An app with a backend, sign-in or a database
  • Copying another company's site

About this skill

You say

Make a "wall of love" section from these posts about our app. They are in brief.md.

It said back

I've built the wall of love as a plain HTML page with all eight posts. The check passes at 390, 768 and 1440 px, with no sideways overflow, small text or contrast problems. I looked at the 390 and 1440 screenshots and nothing is cut off or overlapping. I didn't open check/768.png.

Files (in work1/): index.html, style.css, script.js.

Show more

What it did in run 1

  1. social-post-quotes
  2. ./brief.md
  3. *
  4. ./.claude/skills/social-post-quotes/reference/index.html
  5. ./.claude/skills/social-post-quotes/reference/style.css
  6. ./.claude/skills/social-post-quotes/reference/script.js
  7. cat > /tmp/gen.mjs <<'EOF' import fs from 'node:fs'; const posts=[ ["Ruth Odhiambo","ruthspends","2026-01-03","3 Jan","12","248","Pocketplan is the first budget app I kept using <mark>past January</mark>."], ["Gareth Lloyd","garethl","2026-02-12","12 Feb","8","191","Saved <mark>£1,200</mark> this year without trying."], ["Mei Chen","meicounts","2026-02-28","28 Feb","5","134","The <mark>'safe to spend today'</mark> number is the only one I look at now."], ["Jordan Ellis","jordanmakes","2026-03-19","19 Mar","3","87","Split bills with my flatmates in about <mark>four taps</mark>. No more spreadsheet."], ["Amara Nwosu","amaranwosu","2026-05-02","2 May","21","412","Paid off my credit card in <mark>eight months</mark> with the snowball plan."], ["Liam Burke","liamburke","2026-06-14","14 Jun","9","305","Finally, a budget app that <mark>doesn't shame me</mark> for buying coffee."], ["Sofia Marin","sofiamarin","2026-07-30","30 Jul","4","96","Our holiday fund hit its goal <mark>two weeks early</mark>."], ["Theo Grant","theogrant","2026-08-21","21 Aug","14","233","Showed my dad the subscriptions screen. He <mark>cancelled three</mark> he forgot about."], ]; const bg=["#D7E5F5","#DDEFD8","#EADCF7","#FBE7B5","#F5D0DA","#CFEAE6","#F7D6C4","#E8E2D6"]; const ic=(d)=><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="${d}"/></svg>; const rep="M4 5h16v11H9l-5 4z",heart="M12 20s-7-4.5-7-10a4 4 0 0 1 7-2.6A4 4 0 0 1 19 10c0 5.5-7 10-7 10z"; const items=posts.map(([n,h,iso,d,r,l,t],i)=>{const ini=n.split(' ').map(w=>w[0]).join(''); return <li class="sp reveal"><article aria-label="Post by ${n}"><header><span class="face" style="background:${bg[i]}" aria-hidden="true">${ini}</span><span><b>${n}</b><span class="role">@${h}</span></span><time class="sp-date" datetime="${iso}">${d}</time></header><p>${t}</p><footer><span>${ic(rep)}${r}<span class="sr-only"> replies</span></span><span class="likes">${ic(heart)}${l}<span class="sr-only"> likes</span></span></footer></article></li>}).join('\n'); fs.writeFileSync('index.html',<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Wall of love | Pocketplan</title> <meta name="description" content="Public posts from Pocketplan customers about budgeting, saving and paying off debt."> <meta property="og:title" content="Wall of love | Pocketplan"> <meta property="og:description" content="Public posts from Pocketplan customers about budgeting, saving and paying off debt."> <meta property="og:type" content="website"> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap"> <link rel="stylesheet" href="style.css"> </head> <body> <a class="skip" href="#main">Skip to content</a> <main id="main"> <section class="t-sec center" id="posts" aria-labelledby="posts-h"><div class="sec-head center"><h2 id="posts-h">Wall of <em>love</em></h2><p class="sub">Public posts from Pocketplan customers, shared with their permission.</p></div><ul class="wrap sp-wall"> ${items} </ul></section> </main> <script src="script.js" defer></script> </body> </html> ); EOF node /tmp/gen.mjs R=.claude/skills/social-post-quotes/reference cp $R/style.css style.css; cp $R/script.js script.js cat >> style.css <<'EOF' .sp .face{display:grid;place-items:center;font-weight:700;font-size:1rem;color:var(--ink);letter-spacing:.02em} .sp-wall{columns:1} @media (min-width:641px){.sp-wall{columns:2}} @media (min-width:1001px){.sp-wall{columns:3}} EOF node .claude/skills/social-post-quotes/scripts/check.mjs index.html --out check 2>&1 | tail -40
  8. ls /tmp/gen.mjs 2>&1; pwd
  9. ./index.html
  10. R=.claude/skills/social-post-quotes/reference; cp $R/style.css style.css; cp $R/script.js script.js printf '%s\n' '.sp .face{display:grid;place-items:center;font-weight:700;font-size:1rem;color:var(--ink)}' '.sp-wall{columns:1}' '@media (min-width:641px){.sp-wall{columns:2}}' '@media (min-width:1001px){.sp-wall{columns:3}}' >> style.css node .claude/skills/social-post-quotes/scripts/check.mjs index.html --out check 2>&1 | tail -40
  11. cp .claude/skills/social-post-quotes/reference/style.css style.css && cp .claude/skills/social-post-quotes/reference/script.js script.js
  12. ./style.css
  13. ./script.js
  14. node .claude/skills/social-post-quotes/scripts/check.mjs index.html --out check 2>&1 | tail -40
  15. ./check/1440.png
  16. ./check/390.png
  17. Done

12 Nov 2026 · Claude Code 2.1.322 with Claude Sonnet 5.5 · 1 min 18 s · $0.28 of API use

Questions

Is Social Post Quotes free?

No. Social Post Quotes costs $9.99 once and stays in your Recaply account, or it comes with the Recaply plan ($19.99 a month), which opens every premium skill and prompt.

Which agents can use Social Post Quotes?

Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode.

What do I get when I buy Social Post Quotes?

A ZIP of the whole skill folder (32 KB): the SKILL.md your agent follows and its 6 other files, the references, templates and scripts it uses. You download it from this page whenever you need it, and install it in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode. The Recaply plan opens it too, with every other premium skill and prompt.

How do I install Social Post Quotes?

Buy it, then download the ZIP from this page. For Claude Code, unzip it into .claude/skills/ in your project. For Codex, Cursor and Gemini CLI, unzip it and run npx skills add ./social-post-quotes with your agent's flag.

What do I get from Social Post Quotes?

One HTML file with its CSS inside: no build step, no framework. Testimonials styled as a wall of social posts. Checked at phone and desktop widths.

What does Social Post Quotes need?

Node 20+ and Chrome, and no API key. Each use costs nothing beyond your agent.

How big is Social Post Quotes?

7 files, about 23,237 tokens in all. The SKILL.md is about 2,163 tokens, and your agent reads it only when the job fits.

What does a run cost?

Our 1 runs took 1 min 18 s to 1 min 18 s and $0.28 to $0.28 of API use each, in Claude Code with claude-sonnet-5-5. On a Claude plan, a run counts toward your usage instead.

Do I have to name Social Post Quotes to use it?

Type /social-post-quotes first to make sure it loads. Without it, Claude Code may judge a small job simple enough to do without the skill.