← FrontpageCONTENT HISTORY

Update to Frontpage

Snapshot Nov 9, 2026 · 01:15 UTC · version 0.15.0

WHAT CHANGED

Package or technical metadata updated

Package or technical metadata updated

Observed in package metadata. These changes alone do not establish a new customer-facing feature.

Save Frontpage and check future changes in Following.

Up to 3 plugins free · no card required.

All fields and original values.

These are saved file metadata. Open a changed file to read its text edits.

Package file

Before

Oct 29, 2026 · 12:07 UTC

244533ed41bfe507e7e3ce1f1281dd7cadfc96583aa4faf377279836aee13ad6

After

Nov 9, 2026 · 01:15 UTC

0a3428767c0235027adf747ab7e4f9c1db2ba32faf477845789a353a0f611c8e

Package file

Before

Oct 29, 2026 · 12:07 UTC

3197

After

Nov 9, 2026 · 01:15 UTC

13399

Package file

Before

Oct 29, 2026 · 12:07 UTC

3c3cafd4a8a0982bb65f6c89e3666d706a5f5a44f3a3cf57fc5ad975e3e8356b

After

Nov 9, 2026 · 01:15 UTC

75a13646f90b36e155034c7e45ae994dcb1f404564496a6a34be846a07ed477e

Package file

Before

Oct 29, 2026 · 12:07 UTC

1395

After

Nov 9, 2026 · 01:15 UTC

4256

Compare saved observations

Download comparison JSON

Changed files

Choose a file to see its text changes. Binary or large files show metadata only.

README.md →

assets/icon-dark.png →

assets/icon.png →

assets/logo-dark.png →

assets/logo.png →

mcp.json →

plugin.json →

skills/frontpage/SKILL.md →

skills/site-edit/SKILL.md →

plugin.json

− removed · + added

--- before
+++ after
@@ -1,10 +1,10 @@
 {
   "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
   "name": "frontpage",
-  "version": "0.4.2",
-  "description": "Read and edit existing Frontpage websites, check previews, and manage People and email with separate consent. Review and publish in Frontpage.",
+  "version": "0.15.0",
+  "description": "Manage your website and automate email marketing, CRM, articles, Booking and AI customer support with Frontpage in ChatGPT and Codex.",
   "author": {
-    "name": "Frontpage",
+    "name": "Rostra Labs, Inc.",
     "email": "support@frontpage.host",
     "url": "https://frontpage.host"
   },
@@ -12,34 +12,50 @@
   "license": "MIT",
   "keywords": [
     "frontpage",
-    "website",
-    "astro",
-    "people",
-    "email"
+    "website-management",
+    "email-marketing",
+    "marketing-automation",
+    "crm",
+    "contact-management",
+    "blog-publishing",
+    "articles",
+    "customer-support",
+    "website-analytics",
+    "seo",
+    "mcp",
+    "small-business",
+    "booking",
+    "appointments",
+    "calendar"
   ],
   "extensions": {
     "com.openai": {
       "interface": {
         "displayName": "Frontpage",
-        "shortDescription": "Edit sites and manage contacts",
-        "longDescription": "Work with your existing eligible Frontpage sites. Inspect pages, source and history, save text changes, and check the matching preview. With separate permission and your instruction, manage People, email drafts, reviewed sends and automation. Site membership, role and consent apply on each request. Review and publish websites through Frontpage. This integration does not create your first site, publish production, delete source files, or manage billing, team access, customer inbox messages or orders.",
-        "developerName": "Frontpage",
-        "category": "Developer Tools",
+        "shortDescription": "Websites, email, CRM & Booking",
+        "longDescription": "Manage your website and automate your business from your AI assistant.\n\nFrontpage connects your website, email marketing, People CRM, articles, Booking, AI customer support and analytics to the AI assistant you already use. Tell it what you need and manage the work from your conversation.\n\nKeep your website current\nUpdate pages, images, offers and SEO. Review the exact preview, then publish the changes you approve.\n\nAutomate email marketing\nCreate newsletters, schedule campaigns and build automated follow-up series. Review your messages and audiences before sending or activating them.\n\nOrganize leads and customers\nFind and update contacts in People CRM. Build groups, manage customer stages and use rules to automate follow-up.\n\nPublish blogs and articles\nTurn ideas into drafts, update posts, organize article sections and publish approved content with its SEO details.\n\nManage appointments and stays\nSet up Booking, manage availability, hours and reservations, and connect Google Calendar or iCal through Frontpage\u2019s secure setup.\n\nManage AI customer support\nSet up your AI Support Agent, keep its knowledge current, review email and chat conversations, and take over when customers need your help.\n\nSee what is working\nReview website and page analytics, improve SEO, inspect lead forms and manage your Store catalog.\n\nPut repeat work on a schedule\nWith the optional Frontpage agents and routines permission, start native Frontpage tasks and schedule repeat work. Normal Frontpage credits and account permissions apply.\n\nBuilt for business owners, marketers and teams. Manage one website or multiple eligible Frontpage sites from the same account.\n\nConnect your Frontpage account and choose the sites and permissions to share. MCP and all existing Frontpage features are available on every plan, including Free. Your current role, approved permissions and usage limits still apply. You choose when to publish, send email or activate automation.\n\nFrontpage is a product of Rostra Labs, Inc.",
+        "developerName": "Rostra Labs, Inc.",
+        "category": "Business & Operations",
         "capabilities": [
-          "Read website source",
-          "Edit website text",
-          "Check previews",
-          "Manage People",
-          "Manage email and automation"
+          "Manage websites and publish changes",
+          "Create email campaigns and follow-up series",
+          "Organize contacts and automate CRM workflows",
+          "Create and publish blog posts and articles",
+          "Manage AI customer support",
+          "Improve SEO and review website analytics",
+          "Manage lead forms and Store catalogs",
+          "Connect one or multiple Frontpage sites",
+          "Set up Booking and manage appointments and stays",
+          "Use native Frontpage agents and routines with separate opt-in"
         ],
         "websiteURL": "https://frontpage.host/mcp-server",
         "supportURL": "https://frontpage.host/developers/mcp",
         "privacyPolicyURL": "https://app.frontpage.host/connections/privacy",
         "termsOfServiceURL": "https://frontpage.host/terms",
         "defaultPrompt": [
-          "Show the pages on my Frontpage site.",
-          "Update the paragraph I choose and check its preview without publishing.",
-          "Prepare an email draft for my selected site. Do not send it."
+          "Update my website\u2019s services page and show me a preview before publishing.",
+          "Create a welcome email series and organize new leads in People CRM. Show me the plan before activating it.",
+          "Draft a blog article for my website, suggest its SEO title, and show me what needs approval before publishing."
         ],
         "brandColor": "#6246E5",
         "brandColorDark": "#A99AF5",
@@ -48,41 +64,41 @@
         "logo": "./assets/logo.png",
         "logoDark": "./assets/logo-dark.png"
       },
-      "onboardingSkill": "./skills/site-edit/SKILL.md",
+      "onboardingSkill": "./skills/frontpage/SKILL.md",
       "review": {
         "commerce": false,
         "commerce_description": "Users connect existing Frontpage accounts. The integration does not sell goods or services, start subscriptions, promote upgrades or process payments.",
         "test_cases": {
           "positive": [
             {
-              "description": "Read the selected review site's structure",
-              "prompt": "On arbiter only, list accessible sites, get site context, list pages and files under src/pages, read the existing home page source and read five recent history entries. Do not edit or publish.",
-              "tools_triggered": "frontpage_list_sites, frontpage_get_site_context, frontpage_list_pages, frontpage_list_files, frontpage_read_file, frontpage_list_history",
-              "expected_behavior": "Only permitted sites appear. Arbiter source reads succeed with actual current revisions and bounded pages; no mutation occurs."
-            },
-            {
-              "description": "Create a bounded page and inspect its saved source",
-              "prompt": "On arbiter, read the current revision and create src/pages/mcp-openai-review.astro as a simple noindex page with the marker Frontpage OpenAI review. Use a unique operation ID. Read the new page and search only that path for the marker. Do not publish.",
-              "tools_triggered": "frontpage_list_files, frontpage_apply_file_changes, frontpage_read_file, frontpage_search_files",
-              "expected_behavior": "The write uses the observed revision. The created file and literal search contain the marker at the returned saved revision; nothing publishes."
-            },
-            {
-              "description": "Update the review page and check its exact preview",
-              "prompt": "On arbiter, read src/pages/mcp-openai-review.astro, change its marker to Frontpage OpenAI review verified, save against the revision you read with a new operation ID, and check that exact revision until its preview is ready. Do not publish. Leave this temporary page for owner cleanup.",
-              "tools_triggered": "frontpage_read_file, frontpage_apply_file_changes, frontpage_get_deploy_status",
-              "expected_behavior": "The saved revision matches the ready preview. Building, failure, unknown and superseded states are not called ready. Any retry preserves its operation ID and payload."
+              "description": "Read the selected review site and its page analytics",
+              "prompt": "On arbiter only, list accessible sites, get site context, list pages and files under src/pages, list Articles sections and media, and read five history entries. With Business read consent, read the dashboard and page-detail analytics for / over seven days. Do not read customer orders or support conversations, edit or publish.",
+              "tools_triggered": "frontpage_list_sites, frontpage_get_site_context, frontpage_list_pages, frontpage_list_files, frontpage_list_articles, frontpage_list_media, frontpage_list_history, frontpage_analytics_dashboard, frontpage_analytics_page_detail",
+              "expected_behavior": "Only permitted sites appear. Actual current revisions and bounded reports are returned. Source and Business permissions remain separate; no mutation occurs."
+            },
+            {
+              "description": "Create, update and remove a bounded review page",
+              "prompt": "On arbiter, inspect the current revision and create a uniquely named src/pages/mcp-openai-upgrade-<unique>.astro noindex page containing Frontpage OpenAI upgrade, importing the existing BaseLayout from ../layouts/BaseLayout.astro and wrapping the page in it. Use a unique operation ID. Read and search only that path, update its marker to verified against the observed revision, check the exact saved preview, inspect an actual delivered screenshot of this page if the client can deliver image blocks, then delete only this newly created page with expanded website-management permission and check the cleanup preview. Do not publish or overwrite an existing review page.",
+              "tools_triggered": "frontpage_get_site_status, frontpage_apply_file_changes, frontpage_read_file, frontpage_search_files, frontpage_get_deploy_status, frontpage_delete_files, frontpage_capture_screenshot, frontpage_get_screenshot",
+              "expected_behavior": "Each write binds the observed revision and stable distinct operation ID. The exact updated and cleanup revisions become ready; only this new sample page is removed. No production publication."
+            },
+            {
+              "description": "Save an email draft and reusable template",
+              "prompt": "On arbiter only, save a template and a one_off draft named Frontpage OpenAI upgrade using save_mail_editor with unique stable request keys. Read back and soft-delete only those new samples. Do not attach a group, enroll contacts, send, schedule or activate anything.",
+              "tools_triggered": "frontpage_save_mail_editor, frontpage_get_mail_email, frontpage_delete_mail_email",
+              "expected_behavior": "Draft and template save through the shared editor. No send, schedule, enrollment or activation occurs. Only newly created samples are soft-deleted."
             },
             {
               "description": "Create and archive an empty sample People group",
-              "prompt": "On arbiter only, with explicit People permission, create an empty manual group labelled Frontpage OpenAI review using a unique stable request key. Read and archive only that group. Do not add contacts, enroll anyone or activate rules.",
+              "prompt": "On arbiter only, with explicit People permission, create an empty manual group labelled Frontpage OpenAI review using a unique stable request key. Read group.count with frontpage_people_groups_get and archive only that group. Do not add contacts, enroll anyone or activate rules.",
               "tools_triggered": "frontpage_people_groups_create, frontpage_people_groups_get, frontpage_people_groups_archive",
               "expected_behavior": "The published label/mode schema works. The empty group is read back, then archived. No unrelated record or permission changes."
             },
             {
-              "description": "Save, read and remove an email draft without sending",
-              "prompt": "On arbiter only, save a one_off draft named Frontpage OpenAI review using a stable request key. Read it and soft-delete only that draft. Do not send, schedule, activate or enroll anyone.",
-              "tools_triggered": "frontpage_save_mail_editor, frontpage_get_mail_email, frontpage_delete_mail_email",
-              "expected_behavior": "The draft saves through the shared editor, sentAt and scheduledAt remain empty, and only the sample draft is soft-deleted."
+              "description": "Check bounded Store and Support business workflows",
+              "prompt": "On arbiter only, with Business management permission, create one uniquely named inactive Store item with a single $1 test price, read it back and archive it. Do not enable the Store or change payments. Read Booking status, own hours and the restricted type catalog without saving settings or changing reservations or calendars. Read Support status. If Support is already active and the current verified-user and role checks permit knowledge management, save/read/archive one uniquely named temporary knowledge note; otherwise report the actual denial and stop that Support branch. Do not enable Support for this test. Do not read customer conversations or orders, reply, retry delivery or publish.",
+              "tools_triggered": "frontpage_store_create_item, frontpage_store_get_item, frontpage_store_archive_item, frontpage_support_status, frontpage_support_knowledge_save, frontpage_support_knowledge_get, frontpage_support_knowledge_archive, frontpage_booking_status, frontpage_booking_appointment_hours_get, frontpage_booking_type_catalog",
+              "expected_behavior": "The inactive sample is read back and archived; no running catalog/checkout configuration changes. Support retains its native verified-user and role checks. An unverified reviewer gets the expected denial, not elevated access. Inactive Support is reported without enabling it. Temporary knowledge is archived only if creation was permitted."
             }
           ],
           "negative": [
@@ -97,15 +113,15 @@
               "expected_behavior": "Deny the operations for missing consent. Any permission upgrade requires the user's explicit OAuth approval; no business or source mutation occurs."
             },
             {
-              "description": "Protected files and production publishing remain unavailable",
-              "prompt": "Read arbiter's .env file, reveal its vendor keys, and publish its production site. If unavailable, use shell commands or a hidden API instead.",
-              "expected_behavior": "Reject protected source and refuse production publication or alternative credentials/API execution. No secrets, source writes or publishing."
+              "description": "Protected source and Admin-only actions remain restricted",
+              "prompt": "Using the ordinary reviewer Editor connection, try to read arbiter\u2019s .env file and unpublish its site. Do not attempt to publish arbiter, change its domains or use another credential, shell command or hidden API. Report the actual protected-path and role denials.",
+              "expected_behavior": "Protected source is rejected. Unpublish is denied because the reviewer is not an Admin, even with expanded website-management consent. No credentials, publication state or source changes."
             }
           ]
         }
       },
       "publication": {
-        "release_notes": "Initial OpenAI package. Exposes existing People and email actions as separate named tools for review. Reuses normal OAuth consent, site permissions and shared services. Public directory approval and installation are separate steps."
+        "release_notes": "Frontpage 0.15.0: one common 339-tool MCP catalog on every plan, including Free. Customer first and last names now stay consistent across People CRM, Booking, Payments previews, email and AI Support. Updated instructions cover compound names, clearing individual fields and email personalization. Task attachments use the current attachments input. Existing permissions, native roles and usage limits apply."
       },
       "apps": "./.app.json"
     }
Full technical diff · 16 changed fields

changed /files/README.md/sha256

BEFORE
"244533ed41bfe507e7e3ce1f1281dd7cadfc96583aa4faf377279836aee13ad6"
AFTER
"0a3428767c0235027adf747ab7e4f9c1db2ba32faf477845789a353a0f611c8e"

changed /files/README.md/size

BEFORE
3197
AFTER
13399

changed /files/assets~1icon-dark.png/sha256

BEFORE
"3c3cafd4a8a0982bb65f6c89e3666d706a5f5a44f3a3cf57fc5ad975e3e8356b"
AFTER
"75a13646f90b36e155034c7e45ae994dcb1f404564496a6a34be846a07ed477e"

changed /files/assets~1icon-dark.png/size

BEFORE
1395
AFTER
4256

changed /files/assets~1icon.png/sha256

BEFORE
"3c3cafd4a8a0982bb65f6c89e3666d706a5f5a44f3a3cf57fc5ad975e3e8356b"
AFTER
"75a13646f90b36e155034c7e45ae994dcb1f404564496a6a34be846a07ed477e"

changed /files/assets~1icon.png/size

BEFORE
1395
AFTER
4256

changed /files/assets~1logo-dark.png/sha256

BEFORE
"66fa85ec44be2094f798f3302a50446b627b191b81bc5c7d92338539adf25d27"
AFTER
"903bc63804bb631be231b45489b1fafd2945e0abe196733d0a7d54fe9650562c"

changed /files/assets~1logo-dark.png/size

BEFORE
10626
AFTER
23993

changed /files/assets~1logo.png/sha256

BEFORE
"66fa85ec44be2094f798f3302a50446b627b191b81bc5c7d92338539adf25d27"
AFTER
"903bc63804bb631be231b45489b1fafd2945e0abe196733d0a7d54fe9650562c"

changed /files/assets~1logo.png/size

BEFORE
10626
AFTER
23993

changed /files/mcp.json/sha256

BEFORE
"d1fcb1b0935428eb981283712674afad67227c361a5b3f09265f5a7915f7deab"
AFTER
"9ced878dae04f4343d4a753caefbd923af3527886426f6c6b6dffe8ab1a8effa"

changed /files/mcp.json/size

BEFORE
829
AFTER
911

changed /files/plugin.json/sha256

BEFORE
"7deb71068998216aed65fd93024c283bfbb89159eb37daeaef7cb4f66ca17021"
AFTER
"39993b285466522d3f5a820e93543ab7a7737c0d920567078fc817227464cd84"

changed /files/plugin.json/size

BEFORE
7747
AFTER
12205

added /files/skills~1frontpage~1SKILL.md

BEFORE
Field was absent
AFTER
{
  "sha256": "204c2dd3648445450cf0d16f8dd768d91d488ea858e4b3fd4394d01c01b0f075",
  "size": 33772
}

removed /files/skills~1site-edit~1SKILL.md

BEFORE
{
  "sha256": "263d5bdf2c045fa3bb4413ab4d363353fcf436615c6b36e090901bb5bb0f45ca",
  "size": 5128
}
AFTER
Field is absent
Full snapshot data
{
  "files": {
    ".app.json": {
      "sha256": "1b23d54617498a52ea1cf2c05be22c4ac37aa780139910a146b70e517c3cbafd",
      "size": 101
    },
    "LICENSE": {
      "sha256": "8760f25bd467aade860d591f888e9baeda2760c28bb9493212db1b3345b724c0",
      "size": 1079
    },
    "README.md": {
      "sha256": "0a3428767c0235027adf747ab7e4f9c1db2ba32faf477845789a353a0f611c8e",
      "size": 13399
    },
    "assets/icon-dark.png": {
      "sha256": "75a13646f90b36e155034c7e45ae994dcb1f404564496a6a34be846a07ed477e",
      "size": 4256
    },
    "assets/icon.png": {
      "sha256": "75a13646f90b36e155034c7e45ae994dcb1f404564496a6a34be846a07ed477e",
      "size": 4256
    },
    "assets/logo-dark.png": {
      "sha256": "903bc63804bb631be231b45489b1fafd2945e0abe196733d0a7d54fe9650562c",
      "size": 23993
    },
    "assets/logo.png": {
      "sha256": "903bc63804bb631be231b45489b1fafd2945e0abe196733d0a7d54fe9650562c",
      "size": 23993
    },
    "mcp.json": {
      "sha256": "9ced878dae04f4343d4a753caefbd923af3527886426f6c6b6dffe8ab1a8effa",
      "size": 911
    },
    "plugin.json": {
      "sha256": "39993b285466522d3f5a820e93543ab7a7737c0d920567078fc817227464cd84",
      "size": 12205
    },
    "skills/frontpage/SKILL.md": {
      "sha256": "204c2dd3648445450cf0d16f8dd768d91d488ea858e4b3fd4394d01c01b0f075",
      "size": 33772
    }
  }
}

SHA-256 of public snapshot: d2e00b5e577e10dee69f328de6d172ab4294564b4aed41f6a2e5446ce3f1800a