building-emdash-site

Build and customize EmDash CMS sites on Astro with schema, queries, and seed files.

1|Updated Apr 25, 2026
One-click install
npx skills add https://github.com/rczamor/rz-emdash --skill building-emdash-site-rczamor
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: building-emdash-site
Source: https://github.com/rczamor/rz-emdash/tree/main/templates/marketing-cloudflare/.agents/skills/building-emdash-site
Command: npx skills add https://github.com/rczamor/rz-emdash --skill building-emdash-site-rczamor

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Building a site on the EmDash CMS requires learning its database-backed schema model, live content collections, seed file format, and query APIs, and small mistakes like treating image fields as strings or confusing slugs with ULIDs silently break pages. ## Core Features & Use Cases - Schema and Seed Authoring: Define collections, field types, taxonomies, menus, widget areas, sections, and bylines in a validated seed.json file. - Content Querying and Rendering: Query entries with getEmDashCollection and getEmDashEntry, render Portable Text and CMS images, and apply cache hints for invalidation. - Site Feature Wiring: Configure navigation menus, widget areas, live search, SEO meta, comments, bylines, and plugin page contributions. - Use Case: You are building a marketing site on EmDash and need a pricing collection, a taxonomy-filtered project archive, an RSS feed, and a seeded demo dataset deployed to Cloudflare with D1 and R2 bindings. ## Quick Start Use the building-emdash-site skill to scaffold an EmDash Astro site with a posts collection, category taxonomy, and seed content.

Frequently Asked Questions about building-emdash-site

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I query content from an EmDash collection in Astro?▼

Use getEmDashCollection from the emdash package with options like status, limit, orderBy, where, and cursor for keyset pagination. It returns entries, nextCursor, and a cacheHint you should pass to Astro.cache.set for automatic cache invalidation.

How do I define collections and fields in an EmDash seed file?▼

Define collections in seed/seed.json with a slug, labels, supports flags, and a fields array using types like string, text, image, reference, portableText, and json. Validate the file with npx emdash seed seed/seed.json --validate before applying it.

Can EmDash sites deploy to Cloudflare Workers?▼

Yes, EmDash supports Cloudflare deployment using the @astrojs/cloudflare adapter with D1 for the database and R2 for media storage via @emdash-cms/cloudflare. You configure bindings in wrangler.jsonc and pass d1 and r2 to the emdash integration.

Why does my EmDash image field render as [object Object]?▼

Image fields in EmDash are objects with id, src, and alt properties, not plain URL strings. Use the Image component from emdash/ui and pass the whole image object, or access featured_image.src explicitly.

Why does getEntryTerms return empty results in EmDash?▼

getEntryTerms requires the database ULID from entry.data.id, not the slug stored in entry.id, and the taxonomy name must exactly match the name defined in your seed file. Mixing these up produces silent empty results with no error.

Does EmDash support static site generation with getStaticPaths?▼

No, EmDash content is dynamic and pages must be server-rendered with output set to server in astro.config.mjs. Static path generation is not used for CMS-driven content.