What Is an EmDash Theme?
An EmDash theme is a standard Astro 6 project that controls how your site looks and behaves. Unlike WordPress themes, EmDash themes are purely presentational — they cannot touch the database, which eliminates an entire class of security risks. A theme typically contains:
- Pages — Astro routes for home, blog archive, single posts, and custom pages
- Layouts — shared HTML wrappers (header, footer, navigation)
- Components — reusable UI pieces such as cards, hero sections, and buttons
- Styles — CSS or Tailwind configuration
- seed.json — declares the content types and fields the theme expects
Step 1 — Browse Themes
Visit the Themes section of the marketplace. Use the filters to narrow by price (free / paid) or sort by most popular. Click any theme card to see a full preview, description, and pricing.
Step 2 — Download the Theme Archive
On the theme detail page, click Download. Subscribers on a Pro or Creator plan can download any theme for free; otherwise a one-time purchase is required. The download is a .zip archive containing the full Astro project.
Step 3 — Extract and Apply the Theme
Unzip the archive. You have two options depending on your workflow:
Option A — Start fresh from the theme
Use the theme as your entire project directory:
unzip my-emdash-theme.zip -d my-emdash-site
cd my-emdash-site
npm install
npm run dev
This is ideal when you are starting a new site.
Option B — Merge into an existing project
Copy the theme's src/ directory over your current project's src/. Then merge any new dependencies from the theme's package.json into yours:
# Merge src files
cp -r theme-src/src/* my-emdash-site/src/
# Install any new deps the theme needs
npm install
Step 4 — Apply the Seed File
Most themes include a seed.json (found in the .emdash/ folder) that defines the content types the theme expects — things like a Featured Image field, a Category taxonomy, or a Hero Blurb text field. Import it in the admin panel:
- Go to
/_emdash/admin→ Settings → Import Schema - Upload the
seed.jsonfile - Review the collections that will be created and click Apply
Once applied, your content types will match what the theme templates expect.
Step 5 — Customise the Theme
Open the theme files in your editor and adjust:
- Colors & Typography — edit
src/styles/global.cssor yourtailwind.config.mjs - Site Logo — replace the image referenced in the
Headercomponent - Navigation Links — update the nav array in the layout or a dedicated config file
- Homepage Sections — edit
src/pages/index.astroto reorder or remove sections
Troubleshooting
- Missing content fields: Make sure you have applied the theme's
seed.json— the template will throw errors if expected fields don't exist in the database. - Styles not loading: Run
npm installafter merging to ensure all CSS dependencies (Tailwind, etc.) are installed. - TypeScript errors: Re-run
npx emdash typesafter importing the seed to regenerate type definitions.
