Build for Dunea

Templates

Publish a whole Dunea site other people start from: defineTemplate, what the snapshot copies (and never copies), the remix flow and pricing.

A template is a whole Dunea site that other people start from. You build it in your own Dunea account like any other site, then publish it. When an owner remixes it, Dunea copies the site into a new app of theirs, and they carry on with the Dunea AI from there.

Templates are data, like themes: there is no service to host.

Define a template

Keep the manifest in dunea.template.json, or write it in TypeScript with defineTemplate:

manifest.ts
import { writeFileSync } from 'node:fs';
import { defineTemplate } from '@dunea/plugin-sdk';

const manifest = defineTemplate({
  id: 'corner-cafe',
  version: '1.0.0',
  name: 'Corner Café',
  tagline: 'A neighbourhood café site with a menu, opening hours and table bookings.',
  description:
    'A warm, photo-led site for a small café or bakery. It has a home page, a menu you edit as a list, ' +
    'opening hours, a contact page with a map and a table booking form.\n\n' +
    'Free to remix. Bookings work with the free Table Bookings plugin.',
  icon: 'https://cdn.example.com/corner-cafe/icon.png',
  screenshots: [
    'https://cdn.example.com/corner-cafe/home.png',
    'https://cdn.example.com/corner-cafe/menu.png',
    'https://cdn.example.com/corner-cafe/booking.png',
  ],
  developer: {
    name: 'Ana Studio',
    supportEmail: 'hello@ana.example.com',
    privacyUrl: 'https://ana.example.com/privacy',
  },
  pricing: { model: 'free' },
  categories: ['restaurant'],
  sourceProjectId: '6f1c2b8e-3d4a-4b5c-9e7f-0a1b2c3d4e5f',
  previewUrl: 'https://corner-cafe.dunea.app',
  pages: ['Home', 'Menu', 'Book a table', 'Contact'],
  theme: 'warm-paper',
  recommendedPlugins: ['table-bookings'],
  firstPrompt: 'Swap in your café name, menu and opening hours.',
});

writeFileSync('dunea.template.json', `${JSON.stringify(manifest, null, 2)}\n`);
FieldRequiredConstraints
categoriesYes1 to 3 of: restaurant, retail, salon-beauty, health, education, professional-services, trades, events, portfolio, agency, community, saas.
sourceProjectIdYesThe UUID of the Dunea project to snapshot. It must be yours.
previewUrlYeshttps:// URL of a live demo, normally the source project's published Dunea URL.
pagesYes1 to 30 page names, each 1 to 40 characters. Shown on the listing.
themeNoThe slug of a theme listing the template is designed with.
recommendedPluginsNoUp to 10 plugin slugs that make it work fully. Defaults to [].
firstPromptNo10 to 300 characters. What the owner should tell the AI first.

The shared fields (id, version, name, tagline, description, icon, screenshots, developer, pricing) work as for every listing.

The snapshot

When you upload a version, Dunea takes a snapshot of the source project's files. That snapshot, not your live project, is what owners get. You can keep working on the source project; owners only see your changes when you upload, and Dunea approves, a new version.

Copied: the site's code and content: pages, components, styles, images and other files in the project.

Never copied:

  • Environment variables and secrets
  • Plugin installs (recommendedPlugins are suggested to the owner instead)
  • Chats with the Dunea AI
  • Customers, orders, form submissions, leads or any other data your site collected
  • Your domain and deployment settings

Before you submit, make sure the files themselves contain nothing private: no API keys in code, no real customer names or emails in content, no work that isn't yours (DUN-T004). Use placeholder content an owner will want to replace.

The previewUrl must be live, and must show the same site as the snapshot (DUN-T003). If you change the source project a lot, upload a new version so the two stay in step.

The remix flow

  1. An owner finds the template in the marketplace or on dunea.ai/marketplace and chooses Remix.
  2. For a paid template, Dunea sends them to Stripe Checkout first. The remix starts once the payment goes through.
  3. Dunea creates a new app in the owner's account from the snapshot.
  4. The owner lands in the new app with your firstPrompt suggested to the AI, and your recommendedPlugins suggested to install. Plugins are never installed automatically.

A remix is a copy. Later versions of your template don't change apps that were already remixed from it.

Remixes carry your referral code: someone who remixes your template and becomes a paying Dunea customer is attributed to you.

Pricing

Templates are free or one-time only. A remix is a copy the owner keeps, so there is nothing to bill monthly: a template with a monthly price is rejected. Dunea's fee on template sales, after the founding creator allowance, is 10% (see Ways to earn).

Review

Templates go through the same review as every listing. Reviewers open the preview, remix the template onto a test app and check that the main pages work (DUN-Q001), alongside the listing rules in the review checklist.

On this page