Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
vercel-labs avatar

Image

  • 1.1k installs
  • 15.8k repo stars
  • Updated July 8, 2026
  • vercel-labs/json-render

image is a json-render skill for SVG and PNG generation from JSON specs via Satori.

About

The image json-render skill converts JSON UI specs into SVG and PNG images using the @json-render/image package powered by Satori. It supports OG image generation, social cards, and AI-generated visual assets from declarative JSON rather than hand-coded canvas logic. Agents define component registries and layout specs then render raster or vector outputs for sharing pipelines. The skill pairs with other json-render renderers for multi-target content from one spec source. JSON specs to SVG and PNG via @json-render/image. Satori-powered OG images and social cards. Declarative layout specs instead of canvas code. AI-generated image rendering from JSON definitions. Pairs with json-render multi-renderer ecosystem. Render JSON specs into SVG and PNG images via @json-render/image and Satori.

  • JSON specs to SVG and PNG via @json-render/image.
  • Satori-powered OG images and social cards.
  • Declarative layout specs instead of canvas code.
  • AI-generated image rendering from JSON definitions.
  • Pairs with json-render multi-renderer ecosystem.

Image by the numbers

  • 1,099 all-time installs (skills.sh)
  • +48 installs in the week ending Jul 28, 2026 (Skillselion tracking)
  • Ranked #339 of 2,277 Frontend Development skills by installs in the Skillselion catalog
  • Security screen: LOW risk (skills.sh audit)
  • Data as of Jul 28, 2026 (Skillselion catalog sync)
From the docs

What image says it does

Image renderer for json-render that turns JSON specs into SVG and PNG images via Satori.
SKILL.md
npx skills add https://github.com/vercel-labs/json-render --skill image

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs1.1k
repo stars15.8k
Security audit3 / 3 scanners passed
Last updatedJuly 8, 2026
Repositoryvercel-labs/json-render

How do I generate OG images or social cards from a JSON spec?

Render JSON specs into SVG and PNG images via @json-render/image and Satori.

Who is it for?

Developers building OG images, social cards, or spec-driven graphics.

Skip if: Skip for hand-coded Figma exports without JSON spec pipelines.

When should I use this skill?

User works with @json-render/image, OG images from JSON, or Satori rendering.

What you get

Rendered SVG or PNG assets from @json-render/image with Satori layout.

  • PNG image file
  • SVG image file

By the numbers

  • Example OG Frame spec uses 1200×630 pixel dimensions

Files

SKILL.mdMarkdownGitHub ↗

@json-render/image

Image renderer that converts JSON specs into SVG and PNG images using Satori.

Quick Start

import { renderToPng } from "@json-render/image/render";
import type { Spec } from "@json-render/core";

const spec: Spec = {
  root: "frame",
  elements: {
    frame: {
      type: "Frame",
      props: { width: 1200, height: 630, backgroundColor: "#1a1a2e" },
      children: ["heading"],
    },
    heading: {
      type: "Heading",
      props: { text: "Hello World", level: "h1", color: "#ffffff" },
      children: [],
    },
  },
};

const png = await renderToPng(spec, {
  fonts: [{ name: "Inter", data: fontData, weight: 400, style: "normal" }],
});

Using Standard Components

import { defineCatalog } from "@json-render/core";
import { schema, standardComponentDefinitions } from "@json-render/image";

export const imageCatalog = defineCatalog(schema, {
  components: standardComponentDefinitions,
});

Adding Custom Components

import { z } from "zod";

const catalog = defineCatalog(schema, {
  components: {
    ...standardComponentDefinitions,
    Badge: {
      props: z.object({ label: z.string(), color: z.string().nullable() }),
      slots: [],
      description: "A colored badge label",
    },
  },
});

Standard Components

ComponentCategoryDescription
FrameRootRoot container. Defines width, height, background. Must be root.
BoxLayoutContainer with padding, margin, border, absolute positioning
RowLayoutHorizontal flex layout
ColumnLayoutVertical flex layout
HeadingContenth1-h4 heading text
TextContentBody text with full styling
ImageContentImage from URL
DividerDecorativeHorizontal line separator
SpacerDecorativeEmpty vertical space

Key Exports

ExportPurpose
renderToSvgRender spec to SVG string
renderToPngRender spec to PNG buffer (requires @resvg/resvg-js)
schemaImage element schema
standardComponentsPre-built component registry
standardComponentDefinitionsCatalog definitions for AI prompts

Sub-path Exports

ExportDescription
@json-render/imageFull package: schema, components, render functions
@json-render/image/serverSchema and catalog definitions only (no React/Satori)
@json-render/image/catalogStandard component definitions and types
@json-render/image/renderRender functions only

Related skills

How it compares

Choose image over generic canvas skills when layouts already exist as @json-render/core Spec JSON and must output Satori SVG or PNG.

FAQ

Which package renders images?

@json-render/image using Satori for SVG and PNG output.

What use cases?

OG images, social cards, and AI-generated visuals from JSON specs.

What input format?

Declarative JSON UI specs with registered components.

Is Image safe to install?

skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.