← Val TownCONTENT HISTORY

Update to Val Town

Snapshot Oct 27, 2026 · 00:10 UTC · version 3.0.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 Val Town and check future changes in Following.

Up to 3 plugins free · no card required.

All fields and original values.

Is v2 template

Before

Oct 24, 2026 · 12:53 UTC

Not present

After

Oct 27, 2026 · 00:10 UTC

false

Compare saved observations

Download comparison JSON
Full technical diff · 1 changed fields

added /is_v2_template

BEFORE
Field was absent
AFTER
false
Full snapshot data
{
  "canonical_app_id": "asdk_app_6a5e7ac6ddf881919de226cb7506ef57",
  "connector_id": "asdk_app_6a5e7ac6ddf881919de226cb7506ef57",
  "created_at": "2026-07-20T19:45:11.003872Z",
  "discoverability": "LISTED",
  "id": "plugin_asdk_app_6a5e7ac6ddf881919de226cb7506ef57",
  "is_template": false,
  "is_template_instance": false,
  "is_v2_template": false,
  "name": "app-6a5e7ac6ddf881919de226cb7506ef57",
  "release": {
    "app_ids": [
      "asdk_app_6a5e7ac6ddf881919de226cb7506ef57"
    ],
    "app_manifest": {
      "apps": {
        "app-6a5e7ac6ddf881919de226cb7506ef57": {
          "id": "asdk_app_6a5e7ac6ddf881919de226cb7506ef57",
          "required": true
        }
      }
    },
    "app_templates": [],
    "description": "Val Town helps users create, inspect, run, and deploy apps; manage files, branches, schedules, environment variables, SQLite data, and blob storage; and debug executions through ChatGPT.",
    "display_name": "Val Town",
    "id": "pluginrel_1cabcafcc038819197c888308f75ce94",
    "interface": {
      "brand_color": null,
      "capabilities": [],
      "category": "Developer Tools",
      "composer_icon_dark_url": "https://files.openai.com/content?id=file_000000002f3c81f7b72b5f02d0ea570d",
      "composer_icon_url": "https://files.openai.com/content?id=file_000000002be881f7b5377c76bc33bc8e",
      "default_prompt": "Based on what you know about me, make me a quick personal website",
      "default_prompts": [
        "Based on what you know about me, make me a quick personal website",
        "Make me a pretty hello world app",
        "Build me a custom CRM"
      ],
      "developer_name": "Val Town",
      "logo_url": "https://files.openai.com/content?id=file_000000004b0881f7851dc83cf65beda2",
      "logo_url_dark": "https://files.openai.com/content?id=file_00000000b24c81f783783479d7602712",
      "long_description": "Val Town helps users create, inspect, run, and deploy apps; manage files, branches, schedules, environment variables, SQLite data, and blob storage; and debug executions through ChatGPT.",
      "plugin_category_id": "developer tools",
      "privacy_policy_url": "https://www.val.town/privacypolicy",
      "screenshot_urls": [],
      "short_description": "Build and deploy apps",
      "terms_of_service_url": "https://www.val.town/termsofuse",
      "website_url": "https://val.town/"
    },
    "keywords": [],
    "mcp_servers": [],
    "onboarding_skill_name": null,
    "requires_local_executor": false,
    "skills": [
      {
        "description": "Use when a val needs simple key/value persistence — JSON documents, cached responses, uploaded files, or binary assets. Covers the std/blob API, listing and deleting keys, account-global or val scoping, and storage limits.",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "blob-storage",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "pdf",
          "short_description": "Use when a val needs simple key/value persistence — JSON documents, cached responses, uploaded files, or binary assets. Covers the std/blob API, listing and deleting keys, account-global or val scoping, and storage limits."
        },
        "name": "blob-storage",
        "plugin_release_skill_id": "pluginrsk_6a750588c2688191a27de5b3da0845c9"
      },
      {
        "description": "Use when a val needs to ship JavaScript that runs in the browser — React apps, vanilla DOM scripts, canvas/games, htmx/Alpine, or any client-side module beyond a single inline snippet. Explains how Val Town serves transpiled .ts/.tsx/.jsx modules with no build step, how the browser resolves their imports, and how to load third-party deps.",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "client-side-js",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "code",
          "short_description": "Use when a val needs to ship JavaScript that runs in the browser — React apps, vanilla DOM scripts, canvas/games, htmx/Alpine, or any client-side module beyond a single inline snippet. Explains how Val Town serves transpiled .ts/.tsx/.jsx modules with no build step, how the browser resolves their imports, and how to load third-party deps."
        },
        "name": "client-side-js",
        "plugin_release_skill_id": "pluginrsk_6a750588f4b8819188e18bec12a39fff"
      },
      {
        "description": "Use when the user wants to persist a preference, skill, or knowledge. Use when it would aid future val development to store a memory of how best to build something.",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "create-skill",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "hierarchy",
          "short_description": "Use when the user wants to persist a preference, skill, or knowledge. Use when it would aid future val development to store a memory of how best to build something."
        },
        "name": "create-skill",
        "plugin_release_skill_id": "pluginrsk_6a7505892518819196890916c39ef2f3"
      },
      {
        "description": "Use when building a val that runs on a schedule — periodic jobs, recurring tasks, polling, cron jobs, monitoring, alerting. Covers the interval handler signature, cron expressions, the UTC timezone constraint, and the `lastRunAt` pattern for detecting new items since the previous run.",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "cron-and-intervals",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "radar",
          "short_description": "Use when building a val that runs on a schedule — periodic jobs, recurring tasks, polling, cron jobs, monitoring, alerting. Covers the interval handler signature, cron expressions, the UTC timezone constraint, and the `lastRunAt` pattern for detecting new items since the previous run."
        },
        "name": "cron-and-intervals",
        "plugin_release_skill_id": "pluginrsk_6a7505894bbc819197f104c3556c64bf"
      },
      {
        "description": "Use when a val sends email, receives email, or is triggered by an incoming email. Covers email-type vals (the Email handler shape, attachment limits, the assigned val email address) and sending mail via std/email.",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "email",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "chat",
          "short_description": "Use when a val sends email, receives email, or is triggered by an incoming email. Covers email-type vals (the Email handler shape, attachment limits, the assigned val email address) and sending mail via std/email."
        },
        "name": "email",
        "plugin_release_skill_id": "pluginrsk_6a75058975988191b8f220c644c90385"
      },
      {
        "description": "Use when building an HTTP val — a web endpoint, API route, webhook receiver, or any val that responds to HTTP requests. Covers the handler signature, Hono usage, the endpoint URL, CORS behavior, redirects, and Val Town-specific limitations.",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "http-endpoints",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "code",
          "short_description": "Use when building an HTTP val — a web endpoint, API route, webhook receiver, or any val that responds to HTTP requests. Covers the handler signature, Hono usage, the endpoint URL, CORS behavior, redirects, and Val Town-specific limitations."
        },
        "name": "http-endpoints",
        "plugin_release_skill_id": "pluginrsk_6a750589a44c8191b1643b083f61091e"
      },
      {
        "description": "Use when a val needs to require login with a Val Town account — gating routes behind authentication, identifying the current user, building user-specific dashboards. Covers std/oauth's `oauthMiddleware` and `getOAuthUserData`, the auto-managed `/auth/*` routes, and session behavior. For third-party OAuth providers (Google, GitHub, etc.) see the `third-party-integrations` skill instead.",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "oauth",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "cursor",
          "short_description": "Use when a val needs to require login with a Val Town account — gating routes behind authentication, identifying the current user, building user-specific dashboards. Covers std/oauth's `oauthMiddleware` and `getOAuthUserData`, the auto-managed `/auth/*` routes, and session behavior. For third-party OAuth providers (Google, GitHub, etc.) see the `third-party-integrations` skill instead."
        },
        "name": "oauth",
        "plugin_release_skill_id": "pluginrsk_6a750589d0488191880d558f6c222c6f"
      },
      {
        "description": "Use when building any val with a user interface — dashboards, web apps, landing pages, forms, admin tools, anything users see in a browser. Covers JSX/React conventions, Twind/Tailwind styling, React version pinning, the view-source link requirement, and what to avoid (template-string HTML, external assets).",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "react-ui",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "code",
          "short_description": "Use when building any val with a user interface — dashboards, web apps, landing pages, forms, admin tools, anything users see in a browser. Covers JSX/React conventions, Twind/Tailwind styling, React version pinning, the view-source link requirement, and what to avoid (template-string HTML, external assets)."
        },
        "name": "react-ui",
        "plugin_release_skill_id": "pluginrsk_6a75058a1edc8191a1f8a01d66d15a30"
      },
      {
        "description": "Use when a val's HTTP endpoints should not be open to the whole internet — limiting an app to a team, understanding why an endpoint redirects to a login page, letting a webhook through, or identifying which Val Town user is viewing an app. Covers app access (`httpPrivacy`), org grants, bypass tokens for automation, and the `X-Val-Town-User` identity header. For building your own login flow inside a val, see the `oauth` skill instead.",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "restricted-access",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "hierarchy",
          "short_description": "Use when a val's HTTP endpoints should not be open to the whole internet — limiting an app to a team, understanding why an endpoint redirects to a login page, letting a webhook through, or identifying which Val Town user is viewing an app. Covers app access (`httpPrivacy`), org grants, bypass tokens for automation, and the `X-Val-Town-User` identity header. For building your own login flow inside a val, see the `oauth` skill instead."
        },
        "name": "restricted-access",
        "plugin_release_skill_id": "pluginrsk_6a75058a4c1c8191adc0bf902741c191"
      },
      {
        "description": "Use when a val needs to store structured or relational data. Covers the std/sqlite API, parameterized queries, transactions, and the val-scoped vs organization-scoped database distinction.",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "sqlite-storage",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "hierarchy",
          "short_description": "Use when a val needs to store structured or relational data. Covers the std/sqlite API, parameterized queries, transactions, and the val-scoped vs organization-scoped database distinction."
        },
        "name": "sqlite-storage",
        "plugin_release_skill_id": "pluginrsk_6a75058a78fc8191a1ec8c390f6c2c1d"
      },
      {
        "description": "Use when a val talks to an external service — Slack, Discord, Telegram, Stripe, GitHub, Gmail, Google Sheets, Postgres/Supabase/Upstash/Neon, browser automation (Playwright, Browserbase, Kernel, Steel), web scraping, PDF generation, push notifications, RSS, or any other third-party API. Covers the required workflow (fetch the Val Town guide, get credentials, test, store secrets) and the catalog of available guides.",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "third-party-integrations",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "code",
          "short_description": "Use when a val talks to an external service — Slack, Discord, Telegram, Stripe, GitHub, Gmail, Google Sheets, Postgres/Supabase/Upstash/Neon, browser automation (Playwright, Browserbase, Kernel, Steel), web scraping, PDF generation, push notifications, RSS, or any other third-party API. Covers the required workflow (fetch the Val Town guide, get credentials, test, store secrets) and the catalog of available guides."
        },
        "name": "third-party-integrations",
        "plugin_release_skill_id": "pluginrsk_6a75058a9ed481919a65c4425840be16"
      }
    ],
    "version": "3.0.0"
  },
  "scope": "GLOBAL",
  "share_url": "https://chatgpt.com/plugins/val-town?open_in_app",
  "status": "ENABLED"
}

SHA-256 of public snapshot: a5986d5cfa181bab540fff43a8441e8d89b83656a05fe5d77b6a9f058f650e58