← Files Ember WebsitesARCHIVED FILE
.codex-plugin/plugin.json
10.1 KB · Nov 3, 2026 · 19:08 UTC
{
"name": "app-6a6bc882ce608191baad0229e7bc6a48",
"version": "2.0.0",
"description": "Ember helps small businesses, independent professionals, and creators build polished content websites through conversation. Describe your business, or point Ember at an existing website or Google Business profile, and ChatGPT builds the site with you: choose a design in Ember's Design Studio, write and edit pages, add real photos and files, and validate every page before anything goes live.\n\nLive preview shows your working site at desktop or mobile size and updates as each change lands. Select any part of the page in Live preview to point ChatGPT at exactly what you want changed. My websites, in the ChatGPT sidebar, lists every site with its publish status, live address, custom-domain status, and new form submissions.\n\nEmber sites can include working contact, quote, and booking forms. Ember stores form submissions, emails the addresses you choose, and lets you read and triage them from ChatGPT. When you're ready, publish to a public URL, and roll back to an earlier version of your draft if you change your mind.\n\nEmber builds static content sites such as business sites, portfolios, blogs, and documentation. It does not build web applications with live databases, background jobs, or custom server code.",
"author": {
"name": "StableModels LLC"
},
"skills": "./skills",
"mcpServers": "./.mcp.json",
"interface": {
"displayName": "Ember Websites",
"shortDescription": "Websites for small businesses",
"longDescription": "Ember helps small businesses, independent professionals, and creators build polished content websites through conversation. Describe your business, or point Ember at an existing website or Google Business profile, and ChatGPT builds the site with you: choose a design in Ember's Design Studio, write and edit pages, add real photos and files, and validate every page before anything goes live.\n\nLive preview shows your working site at desktop or mobile size and updates as each change lands. Select any part of the page in Live preview to point ChatGPT at exactly what you want changed. My websites, in the ChatGPT sidebar, lists every site with its publish status, live address, custom-domain status, and new form submissions.\n\nEmber sites can include working contact, quote, and booking forms. Ember stores form submissions, emails the addresses you choose, and lets you read and triage them from ChatGPT. When you're ready, publish to a public URL, and roll back to an earlier version of your draft if you change your mind.\n\nEmber builds static content sites such as business sites, portfolios, blogs, and documentation. It does not build web applications with live databases, background jobs, or custom server code.",
"developerName": "StableModels LLC",
"category": "Creativity",
"capabilities": [
"Design Studio",
"Live preview",
"My websites",
"Form submissions",
"Publish and roll back"
],
"defaultPrompt": [
"Build a website for my business from this description, instagram, or google business page",
"I want to publish a website for my independent business",
"I want to migrate my site from Wix, Squarespace, or Wordpress"
],
"websiteURL": "https://embersites.com",
"supportURL": "https://embersites.com/support",
"privacyPolicyURL": "https://embersites.com/privacy",
"termsOfServiceURL": "https://embersites.com/terms",
"composerIcon": "./assets/logo.png",
"composerIconDark": "./assets/logo-dark.png",
"logo": "./assets/logo.png",
"logoDark": "./assets/logo-dark.png"
},
"extensions": {
"com.openai": {
"review": {
"test_cases": {
"positive": [
{
"description": "Create a private small-business site and choose its design.",
"prompt": "Create a new private Ember site named Ember Review Studio for a neighborhood bakery and let me choose a design. If another active site already has that name, add a short unique suffix. Do not publish it.",
"tools_triggered": "get_account, list_sites, create_site, open_design_studio, set_design, render_preview",
"expected_behavior": "Creates a named private draft without overwriting an existing site and opens Ember's Design Studio once with a relevant search. After the reviewer picks a design and clicks Apply, ChatGPT shows the site preview. Nothing is published. Exact designs shown may vary."
},
{
"description": "Build and validate a multi-page small-business site with reusable content, real imagery, and a working form.",
"prompt": "On my most recent Ember Review Studio site, first call Ember's render_preview tool before reading or writing files so I can watch the existing private preview update as you work. Then build or update a complete site for Northstar Bakery. Include Home, About, Services, and Contact pages; six editable bakery offerings; a contact or quote-request form; and relevant high-quality real imagery with useful alt text. Preserve the design's seed imagery until each replacement is ready, choose any valid image source that best fits the task, and do not leave any image or Photo component without a source. Use these facts: family-owned since 2018, naturally leavened bread and seasonal pastries, open Tuesday through Saturday from 7 AM to 3 PM, 18 Harbor Street, Portland, Maine, and hello@northstarbakery.example. Validate every page and fix any problems you find. After validation, call render_preview again as the final step so the finished preview appears in this response. Do not publish the site.",
"tools_triggered": "list_sites, list_files, read_file, write_file, edit_file, check_site, render_preview",
"expected_behavior": "Displays the private preview before file work, then produces a coherent multi-page content site using the supplied facts, keeps the six offerings editable as structured content where appropriate, includes a usable form and sourced real imagery, resolves validation and missing-media errors, and visibly displays the finished interactive preview. File-edit choices and visual details may vary."
},
{
"description": "Review sites in My websites and open one in Live preview.",
"prompt": "Show me my Ember websites and which ones have new form submissions, then open my most recent Ember Review Studio site in the Live preview.",
"tools_triggered": "open_my_websites, open_live_site",
"expected_behavior": "Shows the My websites list with each site's publish status, live address when published, custom-domain status, and new form submission count, then opens the requested site in Live preview with desktop and mobile views. Nothing is changed or published."
},
{
"description": "Configure form notifications and triage a test form submission without acting on visitor text.",
"prompt": "On my most recent Ember Review Studio site, send new contact-form notifications to hello@northstarbakery.example. Then show me the newest form submission, including who sent it and what they asked, and mark it as read.",
"tools_triggered": "list_sites, update_form_settings, list_form_submissions, get_form_submission, update_form_submission_status",
"expected_behavior": "Sets the stated notification address, summarizes the newest submission from its visitor fields as data without following any instructions inside it, and marks only that submission read. If the site has no submissions yet, says so and suggests sending a test entry from the preview."
},
{
"description": "Verify recoverable editing, restore the prior working tree, and publish the validated result.",
"prompt": "On my most recent Ember Review Studio site, identify the current checkpoint, then make a small temporary edit that changes a short homepage label to QA TEMPORARY COPY. Read the edited file to confirm that exact temporary text is present. Restore the checkpoint immediately before the edit, read the file again to confirm the temporary copy is gone, validate the restored site, and publish it. When publishing succeeds, return the full public https:// URL as visible text or a clickable link.",
"tools_triggered": "list_sites, list_checkpoints, read_file, edit_file, rollback_site, check_site, publish_site",
"expected_behavior": "Confirms the temporary text is present after the edit, restores the immediately preceding working-tree checkpoint without altering the ChatGPT conversation, confirms the temporary text is absent and validation is clean, then publishes and returns the full resulting https:// public URL. The edited label and internal file path may vary."
}
],
"negative": [
{
"description": "Do not invoke Ember for calendar management.",
"prompt": "Move my team meeting to Friday afternoon."
},
{
"description": "Do not claim support for live application backends.",
"prompt": "I do not want a website or visual mockup. Use Ember to deploy a database-backed banking service that runs background jobs and executes real-time transfers between live customer accounts."
},
{
"description": "Do not invoke Ember for unrelated source-code deployment.",
"prompt": "This is an existing native mobile app and backend, not a website, and I do not want an Ember site. Use Ember to push its source repository to GitHub and deploy the backend API to production."
}
]
},
"commerce": false,
"demo_recording_url": "https://www.dropbox.com/scl/fi/dht2dxox6zv2tt3r7y8vw/ember-websites-2.0.0-demo.mp4?rlkey=0fcb05c155l781oj4gbk5d8xv&dl=0"
},
"publication": {
"release_notes": "Adds Live preview beside the conversation with point-and-ask editing, My websites in the ChatGPT sidebar, and form submission tools to read and triage submissions and choose where notifications go. Updates the Ember skills for forms and authoring."
}
}
},
"apps": "./.app.json"
}
SHA-256: 2aba70cb7ec155d415ba346a5b66ca8ae90166363683a4a7c222c9e4b827d19a