# Playcode Changelog

> New features, improvements and fixes in Playcode, newest first. The newest 50 updates. Each has its own page; add .md to its address for its Markdown.
> Source: https://playcode.io/changelog

## 2026-10-11 - Your invoices stay in reach after your plan ends

Fixed - Account and billing - https://playcode.io/changelog/invoices-after-your-plan-ends
Docs: https://playcode.io/docs/account-and-billing/invoices-and-tax-id.md

When a plan ends, **Settings**, **Billing & plans** shows the plans again - and now also **Billing Portal**, above them. Choose **Open Billing Portal** to download the invoices of the plan that ended, or to add a tax ID, in Stripe's billing portal.

Before, the door went away with the plan, and an old invoice took a message to a person. A workspace that never paid has no invoices, so it shows no door.

## 2026-10-10 - New projects start private on every plan

Improved - Build - https://playcode.io/changelog/new-projects-start-private
Docs: https://playcode.io/docs/build/make-a-project-private.md

A project you create while signed in now starts private on every Playcode plan, Free included. Before, a new project on the Free plan started public, so anyone with its link could open it.

- **Private from the start.** Only you and the people and teams you invite can open a new project.
- **Share when you are ready.** To share by link, open the project's **Share** tab and set **Anyone with the link** to **Can view**. Set it back to **No access** to make the project private again.
- **What stays the same.** Projects you already have keep their setting. A project you start before you sign in stays public until you turn its link off, and the published site stays public either way.

## 2026-10-10 - Private projects on every plan, Free included

Improved - Build - https://playcode.io/changelog/private-projects-on-every-plan
Docs: https://playcode.io/docs/build/make-a-project-private.md

Every Playcode plan can now keep a project private, Free included. Before, making a project private needed a paid plan.

- **Make any project private.** Open the project's **Share** tab and set **Anyone with the link** to **No access**. Then only you and the people and teams you invited can open it.
- **It stays private.** Opening a private project on the Free plan no longer turns its public link back on. If that happened to one of your projects before, set **Anyone with the link** back to **No access**.
- **What stays the same.** The project's creator or an Admin makes the change, and the published site stays public either way.

## 2026-10-10 - Billing stops when your plan or your account does

Fixed - Account and billing - https://playcode.io/changelog/billing-stops-when-you-leave
Docs: https://playcode.io/docs/account-and-billing/top-ups-and-auto-recharge.md

Playcode no longer charges your card after you leave.

- **Deleting your account stops your plan renewing.** The plan of your Personal workspace stays until the end of the period you paid for, then ends, and the delete window says the date. Before, it kept renewing until the account was erased, 30 days later. Team workspaces keep their plans.
- **Auto-recharge ends with your plan.** When a plan ends, auto-recharge turns off, and a workspace without a plan is never charged by it.
- **The monthly card maximum counts the whole charge.** Each automatic charge is checked against it as charged, the $15 minimum included.
- **The window states the real charge.** **Auto-recharge settings** now shows what each charge takes: what brings your balance back to your level, and never less than $15.

## 2026-10-10 - Voice messages follow Auto-send, and Undo this change asks first

Fixed - Build - https://playcode.io/changelog/voice-and-undo-follow-your-settings
Docs: https://playcode.io/docs/build/undo-and-checkpoints.md

Four fixes in the chat.

- **Auto-send voice messages works.** With it on, a finished voice message is sent at once. Turn it off in **Settings** > **AI defaults** to check the text before you send it. Before, every voice message was sent at once, whatever the setting said.
- **Voice input uses the project's credits.** It is charged to the workspace that pays for the project, as the agent's work is. Before, it used your Personal workspace's credits, even in a team project.
- **Undo this change asks first.** Undoing a change also undoes every change the agent made after it. When there are any, Playcode now asks and says how many. The newest change is still undone at once.
- **Memory Records are gone.** The agent stopped reading them in July 2026, so the app no longer offers them. Put lasting rules for the agent in the project's AGENTS.md: see [Memory](/docs/build/memory).

## 2026-10-08 - A new way in: every sign-in method, everywhere

Improved - Account and billing - https://playcode.io/changelog/a-new-way-in

Signing in and creating an account look new, and they work the same everywhere on Playcode.

- **Every way in, in one place.** Continue with **Google**, get a code by **email**, or use **Microsoft** or **GitHub**, on the website as well as in the app.
- **Your idea comes with you.** Describe what you want to build, sign in with any method, and Playcode starts on your idea as soon as you are in - including after a GitHub or Microsoft sign-in.
- **The code is easier to find.** The code step now says plainly that the email may be in your **Spam** folder, and shows how to mark it as not spam so the next one lands in your inbox.
- **Sign in without losing your place.** If you are asked to sign in while you work, your request stays on screen, and closing the sign-in takes you back to where you were.
- **Smooth on a slow connection.** The picture for the next step loads while you read the current one, and each step glides into the next.

## 2026-10-05 - Instructions sent to a running build now stick

Fixed - Build - https://playcode.io/changelog/messages-to-running-tasks-stick

When you send the agent a new instruction while a build task is already running, that instruction now stays in front of the task until it finishes. Before, it was shown to the task exactly once - mid-work, between two steps - and on a long build the task could lose track of it and finish without it, so you had to ask again. Now a mid-build message keeps its place for the rest of the run, for background tasks and regular chats alike.

## 2026-10-02 - DeepSeek V4 Pro folds into V4.1 Flash - same answers, lower price

Improved - Build - https://playcode.io/changelog/deepseek-v4-pro-folds-into-v4-1-flash

**DeepSeek V4 Pro** has left the model picker. DeepSeek has been serving
every V4 Pro request with **V4.1 Flash** since mid-September (until a V4.1
Pro exists), so the picker entry no longer bought anything the Flash entry
does not - except a higher price.

If you had V4 Pro selected as a default or on a chat, it now runs on
**DeepSeek V4.1 Flash** automatically, billed at the Flash rate: $0.30 in /
$1.20 out per million tokens instead of V4 Pro's $1.32 / $3.96. Same
upstream model, about 4x cheaper.

We also moved DeepSeek onto redundant serving infrastructure, so the model
no longer depends on a single upstream to stay available.

## 2026-10-02 - Site names now use hyphens - and old underscore links redirect

Fixed - Publish - https://playcode.io/changelog/site-names-use-hyphens

Site subdomain names now use hyphens (`my-app.playcode.site`) instead of underscores. Underscores are not valid in web hostnames, so `my_app.playcode.site` could never load in a browser - the editor just didn't tell you. Every published site with an underscore name has been renamed to its hyphen twin automatically, old underscore links now redirect permanently to the new address, and your numeric address keeps working as before.

## 2026-10-01 - GLM 5.3 Flash: near-frontier AI at our lowest price tier

New - Build - https://playcode.io/changelog/glm-5-3-flash

GLM 5.3 Flash is now in the model picker. It is one of the cheapest models we offer, with reasoning quality close to models many times its price, a 1M-token context window, and image understanding. It thinks before every answer, so it is thorough rather than instant - pick it for budget builds where a little patience is fine.

## 2026-09-29 - Signing in with GitHub and Microsoft works again

Fixed - Account and billing - https://playcode.io/changelog/github-microsoft-sign-in-works-again

Since March, signing in with **GitHub** or **Microsoft** from the Playcode sign-in or sign-up page brought you back to that page, even though you were already signed in. From September 17 to 28 the same buttons led to an error page instead. Both are fixed: you now land in Playcode.

If you started signing up with your email and never finished, signing in with GitHub or Microsoft now finishes it, as long as that account uses the same email address and GitHub or Microsoft has confirmed it.

## 2026-09-29 - The Playcode SDK, the Playcode CLI, and image generation

New - Developers - https://playcode.io/changelog/sdk-cli-and-image-generation

Your apps and your tools can now talk to Playcode directly - three releases in one day:

- **`@playcode/sdk` 0.3** ([npm](https://www.npmjs.com/package/@playcode/sdk)) - the official SDK for your app's backend. Zero dependencies, fully typed, works in any Node or edge runtime. Send email, call every management operation, and - new today - **generate images**: `pc.media.image({ prompt })` returns a finished image hosted on Playcode, paid per image from your workspace credits. Video generation (`pc.media.video()`) rides the same way.
- **`@playcode/cli`** ([npm](https://www.npmjs.com/package/@playcode/cli)) - `npm i -g @playcode/cli`, then `playcode login` signs in through your browser. List projects, read and run things on a project's computer, publish, and reach **every** management operation as `playcode <family> <operation>` - new operations appear in the CLI the moment they exist, no update needed.
- **An MCP server for your coding agent.** `playcode mcp` runs a local MCP server over your own sign-in, built for Claude Code, Cursor, and Claude Desktop: your agent discovers Playcode operations by searching, reads the exact argument shapes, and executes - with everything scoped to the permissions you granted at sign-in.

New projects created from today's template get the SDK preinstalled. This is the start of the platform surface - more capabilities land on the same three doors.

## 2026-09-29 - Claude Sonnet 5.5 is available

New - Build - https://playcode.io/changelog/claude-sonnet-5-5

Claude Sonnet 5.5 - Anthropic's newest Sonnet, "the best combination of speed and intelligence" - is now on the Quality chip in the model picker, at the same price as Claude Sonnet 5. Sonnet 5 is superseded; if you had it pinned, your pin keeps working.

## 2026-09-29 - App AI prices now match chat prices

Improved - Add to your app - https://playcode.io/changelog/app-ai-prices-match-chat

AI used inside your hosted apps is now priced per model, exactly like the in-chat prices - one price book everywhere. Most models move to the standard rate; the flagship cards keep their premium pricing unchanged.

## 2026-09-28 - Email sign-up works again on our website

Fixed - Account and billing - https://playcode.io/changelog/signup-codes-work-again

For almost two weeks, starting September 16, signing up with email on the Playcode website did not work. Sign-in codes had just become **six digits** long as part of a round of security hardening, and the code box on our website still accepted only five. The last digit was cut off, so the code could never go through. Sign-up inside the app was not affected.

It's fixed. If you tried to sign up in those days, go back to [playcode.io](https://playcode.io) and use the **same email**. The code works now.

We're sorry. Our automated tests missed this because they still typed an old five-digit test code. They type six digits now, the same as you.

## 2026-09-27 - Email: Send to anyone turns on by itself once your domain is verified

Improved - Add to your app - https://playcode.io/changelog/send-to-anyone-on-by-default

One less switch to find. When your app's sending domain verifies, **Send
to anyone** now comes on with it - your app can email customers right
away, from your own domain, with one-click unsubscribe on every mail to a
non-member. Before, verified-domain projects still had to discover the
switch in Settings > Email; every one of them turned it on.

The switch stays where it was, as the off lever: turn it off and it stays
off - for every app of the project, including ones created later. Nothing
else changes: without a verified domain, delivery still goes only to
recipients who confirmed their address, and the daily caps, suppression
and unsubscribe protections run exactly as before.

## 2026-09-27 - Loading gets bulletproof

Improved - Build - https://playcode.io/changelog/loading-gets-bulletproof

We chased down a family of rare but painful loading failures - the kind where Playcode showed a spinner and simply never finished. All fixed today:

- **A freeze on certain networks and privacy settings.** A stylesheet request could block the whole page from rendering on devices where third-party requests hang. Pages now render regardless, every time.
- **The editor recovers stuck browser storage by itself.** If your browser's local database wedges (an old tab holding a lock, strict privacy modes), Playcode now detects it in seconds, repairs it, and continues - your work lives on our servers, so nothing is lost.
- **The preview says so instead of spinning.** If the preview engine can't start on a slow connection, you now get a clear retry button within seconds instead of an endless spinner.
- **Clearer sign-in errors.** If an ad blocker or filtered network breaks Google sign-in or the human-check, the dialog now tells you what to do instead of silently resetting.

If loading ever felt stuck for you before - it wasn't your device, and it's fixed. Thanks to the users whose reports led us straight to it.

## 2026-09-26 - Webhooks, and an activity ledger for your workspace

New - Developers - https://playcode.io/changelog/webhooks-and-the-activity-ledger

Your server can now hear Playcode. In Workspace settings, **Developers**
gained **Webhooks**: add an endpoint and we POST every matching event to
it - a domain changed, a publish started, mail delivered or bounced. Every
delivery is signed with a secret we show you once; verify it, and replay
protection comes from the delivery id. Failures retry on their own for
about three days, and **Send again** runs one now. Filter by type, like
`domain.*`, or take everything.

Beside it, **Activity**: every write in the workspace, the moment it
happens - who did it, through which door (the app, the CLI, the API, an
assistant), and what it touched. It is the audit answer for a token or a
tool you let act as you.

The same ledger is on the API as `eventSearch`, so a script can follow
your workspace with a cursor instead of polling each resource.

## 2026-09-24 - Ask for payments, get Stripe best practices by default

Improved - Add to your app - https://playcode.io/changelog/payments-get-stripe-best-practices

When you ask the assistant to add payments, subscriptions, or a checkout to your app, it now follows a Stripe playbook by default:

- **Stripe Checkout over custom card forms.** The hosted payment page converts better - Apple Pay, Google Pay, one-click Link, and local payment methods appear automatically - and Stripe's own card-testing defenses stand in front of it. Playcode sells its own plans the same way.
- **Fraud protection armed from day one.** Stripe.js loads on every page of your site so Stripe Radar can tell real customers from bots, and the assistant reminds you to keep Radar on. An unprotected payment form gets found by card-testing bots within days, and the disputes that follow can get a Stripe account blocked.
- **Keys handled safely.** Secret keys stay on the server, never in page code. On browser-only projects the assistant uses Payment Links, which need no keys at all.
- **Real fulfillment.** Purchases unlock through verified Stripe webhooks, not just "the buyer landed on the success page".

## 2026-09-23 - Turning on www now works for every custom domain

Fixed - Publish - https://playcode.io/changelog/www-works-for-every-custom-domain

If your domain was connected with an A record - the way most DNS providers connect a root domain - turning on "Also answer at www" failed with a confusing error about Cloudflare, no matter what you changed at your provider. The www setting now follows how your root domain is served: flip the switch, add the one record it shows you, and www goes live on the same address as your root.

## 2026-09-22 - Claude Opus 5.5 is the new Quality default

Improved - Build - https://playcode.io/changelog/claude-opus-5-5-is-the-new-quality-default

**Claude Opus 5.5** is now the default model on the Quality tier. It is
Anthropic's newest Opus, it keeps the 1M-token context window and the 128K
maximum answer length of Claude Opus 5, and it costs less per token: **$4
in / $20 out** per million against Opus 5's $5 / $25, with re-read context
dropping from $0.50 to $0.20 per million.

**One thing to know about credits.** Opus 5.5 thinks for longer before it
answers. On our own benchmark it spends roughly 1.8 times as many tokens
working through the same task, which more than cancels out the lower price
per token - so a typical job costs somewhat more, not less. We chose it as
the default anyway, because the work it returns is better.

**Claude Opus 5 is still one click away** in the model picker, and it is
the cheaper of the two per answer. If you would rather trade some quality
for a smaller bill, pick it - and anything you have already pinned to it
stays exactly as it is.

## 2026-09-22 - GPT-6 Sol and GPT-6 Luna arrive at half the price of the models they replace

Improved - Build - https://playcode.io/changelog/gpt-6-sol-and-luna-at-half-the-price

OpenAI completed the GPT-6 family today, and both new models cost exactly
half what their predecessors did. They take over the seats those models
held in the picker.

**GPT-6 Sol** replaces GPT-5.6 Sol on the Quality tier, at **$2 in / $10
out** per million tokens instead of $4 / $20. OpenAI positions it as the
balance of intelligence and cost, and its own testing puts it ahead of
GPT-5.6 Sol on professional work, factuality and coding.

**GPT-6 Luna** replaces GPT-5.6 Luna on the Fast tier, at **$0.10 in /
$0.50 out** instead of $0.20 / $1.20. That makes it the cheapest model we
offer - good for simple pages, quick edits and high-volume work.

Both keep the 1M-token context window and the 128K maximum answer length
of the models they replace, and we pass the full price cut through, so the
same work costs fewer credits.

**Nothing you have pinned breaks.** GPT-5.6 Sol and Luna stay available to
existing chats; chats and preferences set to them move to the GPT-6
equivalent automatically, which is cheaper for the same job.

## 2026-09-21 - When the AI provider refuses a request, you are told, and not charged

Fixed - Build - https://playcode.io/changelog/a-refused-answer-is-named-and-not-charged

Very rarely, the AI provider's safety filter refuses a request outright and returns nothing. Until now the chat showed an empty reply with no explanation, and the turn was still charged. Both are fixed:

- **You are told.** The chat now shows a notice that the provider declined the request, and that the cause is usually something earlier in the conversation rather than your last message. The action offered is **Undo & rephrase**, because sending the same thing again gets the same refusal.
- **You are not charged** for a refused turn that produced nothing.

## 2026-09-21 - Every dialog now speaks one design

Improved - Build - https://playcode.io/changelog/every-dialog-speaks-one-design

Every popup in Playcode - confirmations, settings sheets, menus, tooltips - has been rebuilt on one design system, so the whole app now asks questions the same calm way.

- **Destructive actions ask properly.** Deleting a chat, folder, project, domain or token states what happens in one plain sentence, and the most dangerous ones wake their button only when you type the exact name.
- **Clearer questions everywhere.** Renames open with your current name ready to edit, the resize dialog shows the price before you switch, and the unlock-for-transfer flow hands you the code with a plain way to lock it back.
- **Menus and pickers cleaned up.** The project, workspace and attachment menus render as one crisp panel, and the build-quality picker opens right by its button instead of covering your work.
- **Phone-friendly sheets.** Top up and Share now open as bottom sheets on phones, with the main action in thumb reach.

## 2026-09-21 - A busy month never takes your site offline: bandwidth is included, then metered

Fixed - Publish - https://playcode.io/changelog/bandwidth-is-included-then-metered-never-a-wall

Pro includes 100 GB of Playcode Cloud bandwidth a month and Max includes 1 TB. Until today those numbers were enforced as a hard limit: when a workspace crossed it, its published apps were suspended until the next month - with no warning. That was wrong, and it is fixed.

- **Your site keeps running.** Past the included amount, Playcode Cloud keeps serving your visitors and the extra traffic is simply metered at $0.05 per GB (0.2 credits), on the same balance as everything else. Nothing is charged for it before September 29, 2026, as announced.
- **You set your own ceiling.** Spending controls in Settings → Billing are the only cap - yours, not ours.
- **The pricing page now says exactly this**, instead of "100 GB / month", which read like a wall.

If your published apps were suspended by this limit today, they have been restored.

## 2026-09-21 - Sign-in no longer leaves you stuck

Fixed - Account and billing - https://playcode.io/changelog/sign-in-never-leaves-you-stuck

Two ways the sign-in window could leave you with nothing to press are fixed:

- **When the Google button cannot load.** Some browser extensions, security tools, and office networks stop Google's sign-in button from loading. The window used to show an empty box and stay that way. Now it tells you within a few seconds that Google sign-in is unavailable, and that you can **continue with your email** instead - your Google address opens the same account.
- **When your browser fills in your email.** If your browser or password manager filled in the email field for you, **Continue** could stay greyed out. It now always works, and if something is wrong with the address, Playcode says what.

## 2026-09-21 - A file that fails to attach now says why

Fixed - Build - https://playcode.io/changelog/attachments-say-why-they-failed

If a file you attached to the AI chat could not be uploaded, pressing **Send** used to do nothing - no message, no explanation. That is fixed:

- **Attach a file before you sign up.** A file added to your first prompt now travels with it. Before, the message could fail to send right after you created your account.
- **You are told at once, by name.** When a file cannot be uploaded, Playcode says which file and why - it could not be read from your device (common with files still syncing in OneDrive, iCloud, or Dropbox), your storage is full, the connection dropped, or it is not an image your browser can open - and what to do next.
- **Send never goes quiet.** If a message cannot go because of a failed file, Playcode tells you so. Your text and your other files stay exactly where they were.
- **Nothing gets dropped.** When one file in a batch failed, the files that did upload used to disappear from your draft. They stay now.

## 2026-09-21 - Uploaded images no longer break when the AI moves them

Fixed - Build - https://playcode.io/changelog/uploaded-images-survive-a-move

When you uploaded an image and the AI moved it into another folder - for example into `public` - the image could turn blank, even though the AI said the move had succeeded. Images you upload now keep working wherever the AI moves them, and undoing a move restores them correctly.

## 2026-09-18 - Credits now cover cloud computers and AI in your apps, and Usage shows every service

New - Account and billing - https://playcode.io/changelog/credits-cover-cloud-and-ai-in-your-apps

Your workspace credits are now one balance for everything Playcode runs for
you. Until today only the AI chat and agents drew credits.

- **Cloud computers** use credits while they are awake, for the disk they
  keep, and for traffic beyond the included amount. A sleeping computer bills
  disk only. Each computer's rate is shown next to its hours in
  **Settings > Usage**.
- **AI in your apps** - requests your apps make through the AI Gateway with
  their secret key - use credits too, at the model's rate.
- **Email** beyond your plan's included sends keeps its per-email price.

**Settings > Usage** now shows all spending in one place: **AI chat +
agents**, one row per project whose apps used the AI Gateway, **Email**, and
one row per cloud computer, each with quantity × rate = credits. The period
buttons at the top drive the whole page - today, this week, this month, all
time - and the spending list names the period beside its total. Email alone
is shown per billing cycle, because its included sends are a cycle
allowance.

**If your credits run out**, AI requests pause until you add credits. Email
beyond your plan's included sends is stored but not delivered until you do;
included sends and mail to your own team always go out. Cloud computers keep
running: we email you, and only if the balance is still empty
72 hours later do they pause. Nothing is deleted, and the same computers
start again as soon as credits are added.

Nothing changes about how you buy credits, and your balance shows the same
number in the editor, in Billing and in Usage.

## 2026-09-18 - New apps on a paid plan can send email to anyone

Fixed - Add to your app - https://playcode.io/changelog/paid-apps-can-send-to-anyone

If you published an app, or created a new one, after your workspace moved to
a paid plan, turning on Send to anyone in Settings > Email could be refused
with a message saying the workspace needed a paid plan, even though it had
one. The AI assistant repeated that message and suggested upgrading.

Every affected app is fixed, and new apps now start with email delivery
matching your plan. If you saw that refusal, Send to anyone works now: turn
it on in Settings > Email, or ask the assistant to do it.

## 2026-09-17 - Language templates open with your code in front

Improved - Build - https://playcode.io/changelog/language-templates-open-with-your-code

Open a **JavaScript**, **TypeScript**, **React**, **Python**, **SQL** or any other
language template and the code is the first thing you see: the file tabs on top,
the file tree on the left, the **AI Chat** right under the editor, and the live
preview with the console beside them.

Before, every template opened with the chat alone and the code sat a click away
in the menu.

Website and business templates keep opening chat-first: describe what you want,
and the preview updates as you go.

## 2026-09-17 - Connecting Search Console checks the permission

Fixed - Add to your app - https://playcode.io/changelog/search-console-connect-checks-the-permission

Google's permission screen lets you continue without ticking the Search
Console box. Before, Playcode still showed the account as connected, and
every request the agent made on it came back with a permission error.

Now that connection is refused on the spot, and the Connections page says
which permission to select before you try again. A connection granted that
way earlier is marked as revoked within a couple of hours, with the usual
Reconnect button.

## 2026-09-17 - The Phone tab, and a dev machine's address that works on your phone

New - Build - https://playcode.io/changelog/the-phone-tab-and-your-dev-machines-address

Mobile projects get a **Phone** tab beside Preview (View, then Phone; on
the phone it is in the project menu). It shows your app the way a phone
sees it, a QR code to scan with your phone's camera, and one line that
says whether the phone preview is running. The QR opens the app in your
phone's browser: nothing to install, no account. A **Browser | Expo Go**
switch turns it into the native preview for Expo Go when you want that;
Expo now asks for the same Expo account on the phone and on the dev
machine, and the chat walks you through it. When you are already on the
phone, the tab has an **Open on this phone** button, and the address in a
chat card is a link you can tap.

Your dev machine now has its own address. Anyone you give it to can use
the app while the machine is on: your phone, a teammate, a client on a
call, a webhook you are testing. The machine stays awake while the app is
in use from any device.

Only you can turn it on: opening the project in Playcode wakes it, and so
does the agent while it works for you. It goes to sleep after a quiet
while, and after four hours without you or the agent. When the app on
your phone finds the machine asleep, it shows a banner with one button
that opens the project and wakes it.

The address is not a public link. Publishing still is: a published app
keeps its permanent link that works for everyone, whether your dev machine
is awake or not.

## 2026-09-17 - See where you're signed in, and sign out a lost laptop

New - Account and billing - https://playcode.io/changelog/see-where-you-are-signed-in

Your Profile settings now list every browser you are signed in on - the
browser and system, when it signed in, when it was last seen - with **Sign
out** on each row and **Sign out everywhere else** in one click. Signing
out really ends that session on our side, so a lost laptop stays out.

Sensitive actions - buying a domain, changing your sign-in email, creating
or revoking a token - now ask you to confirm it's you with the sign-in code
when it has been a while since you last did. Everyday work never asks.

In Workspace settings, **Developers** gained a **Signed in as you** list:
the tools you let act as you through Sign in with Playcode, the workspace
each one may act in, what it may do, and **Revoke** to sign a tool out on
every computer at once. The project's **Secret key** pane replaces API keys:
the key your app already has, masked, copied on purpose, rotated when it
leaks.

## 2026-09-16 - Sending-domain records you can actually copy

Fixed - Add to your app - https://playcode.io/changelog/sending-domain-records-copyable

When you add your own sending domain in Settings > Email, the DNS records
now show every field in full: Name, Value and, for the MX record, Priority,
each with its own copy button. Before, the name was cut off on screen and
only the value could be copied, so the long DKIM names had to be retyped.

Copy all records puts the whole set on the clipboard as labelled text, for a
note or for whoever runs your DNS.

If your domain's DNS runs at GoDaddy or Namecheap, the names are shown the
way those providers' Name field expects them, without your domain at the
end.

## 2026-09-16 - Domain settings say what the check saw

Improved - Publish - https://playcode.io/changelog/domain-settings-say-what-the-check-saw

When you move a domain's DNS to Playcode, the certificate for the bare name
now follows the nameserver change as soon as it lands, instead of up to an
hour later. The check that decides it reads the registry itself on every
pass.

Settings > Domains tells you exactly what that check saw: which nameservers
answer today, which ones they must be, and when we last looked. The old
sentence that promised a fix "within minutes" is gone.

"Finish setup" on a domain whose DNS moved here opens the same three-step
switch the connect flow shows: the values to paste, what the world reports
while the change spreads, and the done card once everything serves.

Moving DNS to Playcode keeps a www that already points at your Playcode
site, and the review list says plainly when an unchecked record would leave
a name unanswered after the switch.

## 2026-09-16 - Send to anyone now covers both environments, and held mail gets a Deliver button

Improved - Add to your app - https://playcode.io/changelog/send-to-anyone-completes

Turning on Send to anyone in Settings > Email now applies to your Development
and Production computers at once. Before, only the published app was
switched on, so a test send from the editor could still be held while the
page said delivery was live.

Mail that was held before you switched it on no longer sits there: every
held address now shows a Deliver button as soon as your domain is verified
and Send to anyone is on, including addresses that were never added to your
verified recipients.

Your sending domain verifies within seconds of the records going live, with
nothing to click. The assistant can check a domain for you too, and reads
each email under the computer it came from.

Adding a customer's address to Verified recipients now warns you first: that
list is for your own inboxes, and each add sends the person a permission
request. Customers are reached through your own domain.

## 2026-09-11 - The assistant never runs out of checkpoints before a risky change

Improved - Build - https://playcode.io/changelog/checkpoints-never-run-out

A cloud computer keeps up to 20 checkpoints you own. When the assistant
reached that number it used to refuse to take a new one, and a schema
migration could go in without a rollback point. Now, at the cap, the
assistant replaces its own oldest checkpoint and tells you which one it
replaced. The checkpoints you saved yourself are never the ones replaced.

If the Checkpoint history dialog cannot open, it now says why instead of
staying blank.

## 2026-09-10 - Connect an address you own: we look up where it lives and recommend the way

New - Publish - https://playcode.io/changelog/connect-a-domain-you-own

Giving your site an address you already own used to start with four tabs
named after mechanisms. It now starts with the name. Type it, and Playcode
looks up where it is managed and recommends the best way first:

- **Let Playcode handle everything** - we copy your current settings over,
  your email keeps working, and you make one small change at your provider.
  Then never again.
- **One setting at your provider** - one line to add, and we watch until it
  lands.
- **Playcode's address at your provider** - the plainest setting there is,
  for providers that cannot do the one above.

Each card carries a **?** that says in one sentence what the setting is. On
Cloudflare, the one setting leads and nothing pushes you off it. Moving the
whole registration to Playcode is a quiet line under the first card, not a
tab.

The setting card shows a live chip - *Not seen yet*, *Found*, *Live* - and
turning on **Also answer at www** adds its one extra setting right there,
same visit. The same flow runs for Playcode Cloud and Playcode Pages projects,
and the workspace's **Domains** list now keeps watch on its own while anything
is still setting up.

## 2026-09-10 - DeepSeek V4.1 Flash replaces V4 Flash on the Fast tier, now with image input

Improved - Build - https://playcode.io/changelog/v2026-9-14

**DeepSeek V4.1 Flash** is now the DeepSeek Flash option on the
cheap-and-fast tier, in place of DeepSeek V4 Flash. DeepSeek retired V4
Flash today and shipped V4.1 Flash on a new architecture that its own
tests place ahead of DeepSeek V4 Pro - and it can now **see images**
(V4 Flash was text-only), so screenshots and reference designs work on
this model too.

It is also cheaper: $0.30 in / $1.20 out per million tokens, down from
$0.44 / $1.32. We pass the cut straight through, so the same work costs
fewer credits.

If you had DeepSeek V4 Flash selected as a default or on a chat, it now
runs on V4.1 Flash automatically - nothing to change on your side.

**Gemini 3 Flash** remains the tier default.

## 2026-09-09 - The AI agent now reads the PDF, Excel, Word and CSV files you attach

New - Build - https://playcode.io/changelog/agent-reads-attached-documents

Attach a document to the chat and the agent can work from it - no more
re-saving a spreadsheet as CSV so it can be read.

- **PDF:** the agent sees the document itself - text, tables and layout -
  the same way it sees an attached image.
- **Excel (.xlsx) and CSV:** the agent reads the rows, one sheet or many.
  Export a table from your project, edit the prices in Excel or Google
  Sheets, attach it back, and the agent updates the site from it.
- **Word (.docx):** headings, paragraphs and tables come through as text.

This works in browser and Cloud projects, and for files you attached before
today. Very large PDFs (over 100 pages) are not shown to the agent; it will
ask you for the relevant pages instead. Legacy formats (.xls, .doc, .pptx)
are not supported yet - save as .xlsx, .docx or .pdf.

## 2026-09-09 - Your domain's status now says what it is waiting for

Improved - Publish - https://playcode.io/changelog/domain-status-explains-itself

The status chip next to a custom domain in **Publish** and in **Workspace >
Domains** used to say only *Verifying* or *Action needed*. It now tells you
why:

- **Waiting for your DNS change** - the record you added has not reached us
  yet. This takes minutes, sometimes up to a day.
- **Issuing the certificate** - your DNS is right and the HTTPS certificate
  is on its way.
- **DNS does not point to Playcode yet** - the certificate could not be
  issued. Fix the records and we retry on our own.
- **Active until a date** - the certificate renews itself before it expires.
  Nothing to do.

The same reading applies to every domain, however it is connected, so two
screens never disagree about the same address.

## 2026-09-08 - Custom domains: root domains connect on their own, and connections heal themselves

Fixed - Publish - https://playcode.io/changelog/v2026-9-13

Two fixes for custom domains on Playcode Cloud.

**Root domains now go live.** A root domain (`example.com`, not `www.example.com`) needs one extra verification record at the edge before it can serve over HTTPS. When Playcode runs your DNS - a domain bought here, or one you moved to Playcode nameservers - that record is now added for you the moment you connect, and the edge is asked to check it right away. If your DNS stays at another provider, the connect dialog shows the record beside the routing record, and the assistant lists both.

**Connections no longer get lost while you set up DNS.** A connection made before a nameserver change had finished could be dropped as abandoned. Playcode now keeps every connection you make, checks it against the edge every few minutes, and restores it automatically while your domain points at Playcode. If a domain never points at Playcode for a week, you get one email and can reconnect any time.

The Domains settings and the assistant's domain status now say what the edge actually serves, not only whether DNS has landed.

## 2026-09-08 - Preview links that open a file in a new tab now open the file

Fixed - Build - https://playcode.io/changelog/preview-file-links-open

In the editor's **Preview**, a link that opens a file in a new tab - a PDF
from your `public` folder, an image, a download - now opens that file, the
same way it does on your published site.

- **Before:** the new tab showed "The connection has been lost", which made
  a correct link look like a bug in your site.
- **Now:** the file opens. Pages and routes behave exactly as before.
- **Direct links to the preview** (a bookmark, or a page link opened outside
  the editor) now say what they are: the preview only runs inside the
  Playcode editor. Use **Open preview in a new window** from the preview
  toolbar to view your project in its own tab.

## 2026-09-07 - Domain search now covers 600+ more extensions

Improved - Publish - https://playcode.io/changelog/more-domain-extensions

Search **Workspace > Domains** and the list just got a lot longer: 615 new
extensions are now searchable and buyable, priced at what the registries
actually charge today.

- **Recognizable names, not just filler.** **.xyz**, **.zip**, **.yoga**,
  and **.zone** are in, alongside hundreds of others spanning tech,
  business, and lifestyle endings.
- **Your originals are untouched.** **.com**, **.net**, **.org**, **.app**,
  **.dev**, and **.io** stay at the price they have always been - this
  expansion only adds, it never repriced what you already use.
- **A few extensions still ask for more.** Some endings - country codes and
  a handful of membership-only names - need something extra from their own
  registry before anyone can register them through us. Search still tells
  you what is missing instead of a dead end; we are working through that
  list one registry at a time.

## 2026-09-06 - Phone preview works with the latest Expo Go again

Fixed - Build - https://playcode.io/changelog/v2026-7-798

Apple shipped a major Expo Go update this week, which broke the
phone preview for mobile projects: scanning the QR code showed an
SDK-compatibility error on iPhone. Fixed on both sides - new mobile
projects target the Expo version the App Store actually ships, and the
AI now checks your project against the current Expo Go **before**
handing you a QR code, upgrading the project first if it is out of
date.

The QR code itself also got more reliable: it now always carries the
secure `exps://` link, so it opens in Expo Go on the first scan.

## 2026-09-05 - GPT-6 Astra joins the Ultra tier

New - Build - https://playcode.io/changelog/v2026-7-796

**GPT-6 Astra** - OpenAI's most capable model, built for the hardest
end-to-end work - is now available on the **Ultra** tier, next to Claude
Fable 5.1. OpenAI launched it yesterday behind a limited-access program;
our access opened this morning and it went through our full verification
the same hour: live tool-calling, prompt caching, and token accounting
all confirmed on the real wire before it reached the picker.

Astra is priced identically to Claude Fable 5.1 ($10 / $50 per million
tokens at the provider), and because its tokenizer encodes the same work
to roughly a third fewer tokens, the same build tends to cost fewer
credits. **Claude Fable 5.1** remains the Ultra default.

## 2026-09-05 - Background agents can now see images and pages

Improved - Build - https://playcode.io/changelog/v2026-7-797

Background agents (the tasks your AI delegates work to) can now **look at
images, capture page screenshots, and understand videos**, just like the
main agent. Visual work delegates reliably: captioning a photo gallery,
writing honest alt text, matching a reference design, picking a video
poster frame, or reviewing a page's layout no longer fails partway because
the helper agent could not see what it was working with.

Available on vision-capable models across all task roles - explorer,
coder, auditor, and researcher.

## 2026-09-04 - Gemini 3.8 Flash replaces 3.6 Flash on the Pro tier

Improved - Build - https://playcode.io/changelog/v2026-7-792

**Gemini 3.8 Flash** is now the Gemini option on the **Pro** quality tier.
It launched today at the same price as its predecessors, and Google's own
launch numbers put it ahead of 3.7 Flash on every published axis - software
engineering, terminal coding, and multi-step reasoning. In our own SVG
drawing benchmark it is measurably the strongest Gemini Flash yet.

**It also costs you fewer credits than 3.6 Flash did.** Google discounted
this rate card after we first added 3.6 Flash, and our pricing had not
caught up, so 3.6 Flash was charging roughly double what it should have.
That is corrected: every Gemini Flash model now bills at the real rate.

If you had 3.6 Flash selected on a chat, it keeps working and stays on that
chat - nothing you pinned has moved. It is simply no longer offered in the
picker for new selections.

The cheap-and-fast tier is unchanged. **Gemini 3 Flash** is still the
default there, and still the cheapest way to build.

## 2026-09-04 - Grok 4.6 replaces Grok 4.5 on the Pro tier

Improved - Build - https://playcode.io/changelog/v2026-7-793

**Grok 4.6** is now the Grok option on the **Pro** quality tier, in place
of Grok 4.5. xAI prices the two identically and calls 4.6 "the most
intelligent and fastest model we've built" - and in our own SVG drawing
benchmark the difference is visible: where 4.5 famously spent 668 tokens
barely attempting the task, 4.6 actually engages with it.

If you had Grok 4.5 selected on a chat, it keeps working and stays on
that chat - nothing you pinned has moved. It is simply no longer offered
in the picker for new selections.
