Changes
The things Clave can do that are new, and the changes that can break a site, newest first. Each entry links to the page that tells more. To use a new thing, ask your agent for it by name.
2026-11-04
- Visitors in a month. Each site has a number of requests in a
month. Past it the owner gets an email. At 3 times it, visitors get a
short check before the site, and at 10 times it the site is blocked
until the month ends.
GET /v1/sites/{id}/usageshows it asrequests_per_month. See Limits. - Try without an account. A person can start from a chat client's
sign-in page, and an agent with
POST /v1/auth/try, with no email to wait for. A try makes drafts only, for 6 hours and 5 builds. To keep the work, the owner verifies an email with the toolverify_emailorPOST /v1/account/verify. See Get an account. - New error code:
verify_email_required(403) answers a change from an account that started without an email when its time or its builds are used. See Errors. - Open signup. Anybody who reads their own email can make an account
at the app's
/signuppage. See Get an account. - An agent can make the account. When
POST /v1/auth/startnames an address with no account, the email asks its owner to make one, and the grant makes it. The redeem then answersis_new: true. The start answersstatus: "email_sent"now, not"email_sent_if_account_exists". - Signup has a line. When many people sign up at once, an address waits in line with no mail, and Clave emails the link when there is room.
2026-11-03
- Publishing needs approval. The owner can turn this on for a site,
on its Settings tab in the app. Then no agent and no API token puts the
site live: a publish, activate or restore answers
needs_approval(409), and a preview carriesreview_url, the page where a person publishes the draft. See Drafts and slots. - Changed: the app's home page lists drafts that wait for an answer only for sites that need approval. A draft that went live, or one older than the live site, is not listed.
- Plans for each account. A new account gets the Trial plan: 3
running sites, 3 archived sites, 20 builds a day, and one domain more
than its running sites. An account made before today keeps 10 sites and
10 domains.
GET /v1/billingandget_accountshow the caps. - A full platform says so. When Clave has no room for a new site,
draft or domain, the call answers
platform_full(503) and the account is in line. See Errors.
2026-10-22
- Site settings in the repository.
clave.site.jsoncan now set the page a payer lands on, the "Made with Clave" badge, code refunds and the egress list. A publish reads it, and a draft keeps its own. Only the owner can publish a change to the badge or to code refunds. See Site settings. - Forms in the repository. Declare a contact form under
formsinclave.site.json, and the publish makes it. Its address comes from the site and the form's name, so the page can carry it first. See Forms. - Removed: the API, connector and app calls that set these. Change
them in
clave.site.jsonand publish.PATCH /v1/sites/{id}takes onlytitle. The calls that made, changed, turned off or removed a form are gone, and so is the call that set the egress list. The connector has nocreate_formand noset_form_notify, andupdate_sitetakes onlytitle. Clave writes each site's current settings into its file, so a site keeps what it has. - Changed: Clave now reads
clave.site.jsonon a site with no code too. Such a site that namesevents,schedules,private,egressorcode_refundsis refused at publish, with a message that says which. - Test payments on drafts, with no form. A draft takes test payments with test cards, into a test account that Clave makes for you at once. You fill in no form, and the live site and its money do not change. You can choose another country or currency, or use the payment provider's own form and dashboard. Ask your agent to set up test payments. See Payments.
2026-10-17
- A short API token from the connector. An agent on the connector that can also run shell commands can get a token that works for 10 minutes, and use the JSON API with it. It does not sign in a second time. The connector gives a one-time code, and the agent exchanges it, so the token is not in the chat. See Authentication.
2026-10-15
- A picture of each site. Your agent can make
public/og.jpg, a picture of the top of your home page. Chat apps and social networks show it with a link to your site, and the Clave app shows it on the site's card. Ask your agent for a social preview. See Source. - Import pictures from the web. When you move a site from WordPress, Wix or Webflow, your agent can bring its pictures and PDFs across from their URLs. You do not download and upload them again. An account can add 1,000 files a day, up from 100. See Source.
- Fonts, short videos and SVG. A site can hold
.woff2and.wofffonts, and.mp4and.webmvideos inpublic/. An import from a URL also takes.svg. Load your own font with Astro's fonts API. See Source. - A deleted site can come back for 30 days. A delete takes the site offline and out of every list at once, and Clave keeps it for 30 days. Ask Clave in that time to restore it. It comes back archived. After 30 days it is gone for good. See Sites.
- Changed: when the DKIM records of a site's mail domain go from its DNS, Clave stops the site's mail until they are back. Clave checks each hour. Removing a domain now also turns its mail off. See Domains.
2026-10-11
- Upload a favicon.ico. The upload link takes
.icofiles. An icon goes topublic/, sopublic/favicon.icois served at/favicon.ico. See Source. - Redirect old WordPress URLs. Requests for
/wp-content/uploads/…and/wp-sitemap…now reach the site, so its redirect rules can send them to the new pages and images. Search engines keep the images they found before. Other/wp-paths and.phpfiles are still refused.
2026-10-10
- See the health of a site's mail. The domain shows the mail the site sent in the last 7 days, how much bounced, and how much readers marked as spam. When the mail is stopped, it says who stopped it. The Mail tab marks each mail that bounced or was marked as spam. See Domains.
2026-10-09
- Changed: the mail that a site's code sends has a limit for the
account too: 200 mails in 24 hours, for all its sites and drafts
together. Over it the answer is
429 account_mail_limit. See Runtime. - Changed: Clave stops a site's mail when too much of it bounces or is
marked as spam, also when the site sends little. The limits are on
Domains. Runtime mail then answers
409 mail_paused.
2026-10-07
- Give a site to another account. The owner offers a site to the address of another Clave account, and that account accepts in the app or with its own agent. The domain and the collaborators go with the site, and the owner can stay on as a collaborator. A site that takes money cannot move yet. Ask your agent to transfer the site. See Give a site to another account.
- Changed: after a site changes owner, the new owner cannot refund a
payment from before the move into a payout account it does not hold.
The answer is
403 refund_needs_payout_owner. See Payments. - The app keeps up on its own. An open page shows a publish, a new draft or a new message within half a minute, without a reload. If you are typing, it offers to show it instead.
- Search the enquiries. The inbox finds the messages that hold your
words, in anything a visitor typed. Press
/to reach the search box. - Light or dark. Choose it under Profile on your account page, or keep it as your system's.
- Changed: the account page has tabs: Profile, Sign-in and agents, Getting paid, and Plan.
- The app is quicker to use. A page changes without a full reload. A link to a site opens in a new tab. The app asks in a dialog before it deletes, removes or revokes something, and says when a save worked. Forms you use rarely are behind a button. On a phone, the menu is behind a button at the top.
- The return from a pay link says which payment it was. The address
the payer comes back to has
payment(the payment's id) andreference(your own id) afterclave_payment. See Runtime. - Changed: on a deployment that charges nothing, an account has at
most 10 running sites and 10 archived sites. Before this, the number
was not capped.
GET /v1/accountreports both asmax_sitesandmax_archived_sites. See Limits. - Changed: on a deployment that charges nothing, an account has at
most 10 domains.
GET /v1/accountreports it asmax_domains. - Changed: a token cannot change the account's email. Change it on the account page of the app. The app sends a link to the new address, and the address changes when you open it. See Account.
2026-10-06
- Any Google or Fontsource font. A build can get fonts with Astro's
fonts API (
experimental.fontsinastro.config.mjs, withfontProviders.google()orfontProviders.fontsource()). The site serves the files from its own address. Any other request from a build fails, and the build log names the address. See Publishing. - Changed: the spam check on a form is hidden. It shows only when
the visitor must click. This is in the
embedof a form from today. A published page does not change until you take the embed again. For a check that always shows, setappearance=alwaysin the frame address. See Check a visitor is a person. - Changed: a draft has lower limits than the live site. It takes 3
form messages a minute and 50 a day, sends 20 mails a day, and keeps
100 MiB in at most 500 files, with 50 uploads a day. The limits on one
item are the live site's.
GET /v1/accountreports them asdraft_limits. See Limits. - The app shows a draft's data. The Enquiries, Mail and Files tabs of
a site have a Live | Draft control. The counts and the account's
inbox stay live only. The site's page can reset the draft's data and
give the draft a new address.
GET /v1/forms/{id}/submissionsandlist_submissionstakeslot1 for the draft's messages. A new Secrets tab shows which names the live site and the draft have. See Drafts and slots and Forms. - Changed: approving a draft builds its source again for the live site, with the live posts and the live address. Before this, the draft's files went live as they were. See Drafts and slots.
- Posts have a draft line. A write to the posts with
slot1 goes to the draft only. The draft shows those posts and the live site does not. Before this, the call was refused, and a draft showed the live posts. See Drafts and slots. - Forms work on a draft. A message sent on a draft is a draft
message: it is mailed to the site's owner only, with
[Draft]in the subject, it is not in the live site's list, and it uses none of the live form's limits. Before this, a message sent on a draft arrived as a live one. See Drafts and slots. - Changed: a site has one draft slot. Slots 2 and 3 are removed, with
their addresses and their branches. A call with
slot2 or 3 answers400 invalid_slot. See Drafts and slots. - Changed: a draft no longer goes away after a week. Its address
lives as long as the site, and previews no longer report
expires_at. See Previews. - A draft can get a new address.
POST /v1/previews/{id}/addressmoves the draft and turns the old address off, for a link that went where it should not. See Previews. - A draft keeps its own
clave.site.json. Its private paths are guarded on the draft's address, its staff sign in there, and its timers go to the draft. Before this, a draft's private paths were open. See Code in a site. - Site code knows if it is a draft.
env.CLAVE_ENVisliveordraft. A draft gets a runtime key of its own:GET /v1/runtime/siteanswers the draft's address, and the other calls answer403 not_on_a_draftuntil each opens. See Runtime. - Changed: the draft's store keeps its data from draft to draft. A migration changed after it ran empties the draft's store, and stops a live publish. See Store.
- Seeds.
seeds/draft/fills the draft's store with test rows, andseeds/live/gives the live store its first rows. Each seed runs one time for each store.POST /v1/previews/{id}/reset-storestarts the draft's store again from its seeds. See Store. - A draft's code can send mail, to the site's own people. The owner,
a collaborator or staff get it from Clave's sender, with
[Draft]in the subject. Anyone else answers403 draft_mail_recipient. A draft's mail has its own daily count. See Runtime. - A draft's code can keep files. They are the draft's own, with their own limits. An upload needs a person signed in on the draft. See Runtime.
- A draft has secrets of its own.
PUT /v1/sites/{id}/secrets/{name}?slot=1sets the draft's value; the draft never gets the live one. See Secrets. - Changed: a
Clave-Identityworks only on the address it was made for. A sign-in on the live site does not reach the draft, nor the other way. - The app shows what a site spends of each limit. The overview shows
publishes, builds, drafts, pictures, comments, mail and payments for the
last 24 hours, and the size of the site's source. Each tab shows the
count its actions spend, such as publishes on Versions.
GET /v1/sites/{id}/usageand the chat connector'sget_accountgive the same counts. See Limits.
2026-10-05
- The app shows a site's pictures in a tab. The Pictures tab shows each picture and document, opens a picture larger, and copies a file's path to give to the agent. Add pictures opens an upload link, so the owner can add files without asking the agent first. See Site source.
- The Files tab shows what site code keeps. A picture shows small and opens larger, also when it is private. Any other file downloads. See Runtime.
- Changed: a site has one domain. Attaching a second answers
409 site_has_domain. See Domains. - Site code can get the site's address.
GET /v1/runtime/sitegives the address the site answers at now, for a mail sent with no request behind it. A site build also takes this address as itssitevalue. See Runtime. - The chat connector can use what a site built. It calls the site's own actions, reads the store and reads the logs. The owner can also repair the store and undo a repair. See The chat connector.
- Changed: site calls and store writes are capped at 60 and 20 a
minute for each account. More answers
429 rate_limited. See Call the site. - Private paths can name roles and labels. A path in
privatecan open only for people with one of the given roles (owner,collaborator,staff) or one of the given staff labels. See Code in a site and Staff.
2026-10-04
- Site code can keep files. A photo that staff add, or a document that a visitor sends, stays in the site's store. A public file must be an image. See Runtime.
- Site mail can be HTML. A mail from site code can send HTML next to its plain text. See Runtime.
- Changed: a checkout on a hold that ran out, or on a payment that is
paid, now answers
409 hold_expiredor409 already_paid. Before, it answered502, and the site tried again. See Errors.
2026-10-03
- Changed: a site sends mail to visitors only from its own verified
domain. Without one,
POST /v1/runtime/mailanswers409 mail_needs_domain. See Domains. - The publishable key of your own Stripe account. Give it in the app or through the chat connector, and the card form works on the site's own page. See Payments.
- Site code can give money back with the site's key. See Runtime.
2026-10-01
- Mail from your domain. Turn it on for a domain in the app or through the chat connector. See Domains.
2026-09-30
- Code in a site. On a plan that runs code, a site can run its own code. It can send mail, take money and check that a visitor is a person. See Code in a site and Runtime.
- Staff sign in with Clave to a site's private paths. See Staff.
- Secrets for a site's live code. Only the provider keeps the value. See Secrets.
- The agent can call the site's code as the person it acts for, so it uses the same actions as staff. See Call the site.