v4.0.23: Your AI Employee Now Gets Your Documents Signed, Edits Your WordPress Site, and Previews Work Behind Any Proxy
Three releases landed in two days, and rather than three changelogs we are putting them in one place. The headline is that the Studio now has a second half: documents. Underneath it, WordPress editing grew up, and previews stopped caring what sits in front of your server.
Documents
The Studio has spent this week learning to build things that go online. There is now a second tab for the things that never do.
A4 pages, 16:9 slides or a spreadsheet, shown exactly as they will print, in their own workspace. Nothing is published, nothing gets an address. It is the other half of the work most businesses actually do.
Start from a template: blank page, invoice, quote, CV, letter, report, certificate, slides, spreadsheet. A document opens straight onto its template in your brand's colours and fonts, with its labels, Invoice, Total, Date, in your account's language. Eleven of them, right to left for Hebrew and Arabic. Describe what goes in it, attach whatever it needs, and your employee fills it.
Or start from a file. Drop a PDF, Word, Excel, PowerPoint or image and say what you want made of it: a summary table of the amounts, the same CV rebuilt in your template, slides from a page of notes.
Or just open the file to edit it. Word is cut into A4 pages. Excel becomes a spreadsheet with one table per sheet. PowerPoint keeps each slide's texts, pictures and backgrounds where they were.
PDFs and images are handled differently on purpose. They are kept exactly as they are, with their pages shown under a layer you write on. The PDF you download is the original with that layer laid over it, so the original stays vector and untouched, white-outs are exact rectangles rather than approximations, and every language and font survives. That is the difference between editing a PDF and rebuilding one badly. Old .doc, .xls and .ppt files are refused, with a message that says so rather than failing strangely.
It finds the blanks by itself
This is the part worth paying attention to.
Open a PDF form and its blanks are already there, ready to use. Click a line to write on it, a box to tick it, a frame to sign it.
When the form has real form fields, it reads those. When it is a form that was only ever drawn, which is most of the forms anyone actually receives, it works them out: lines, dotted lines, blanks typed as ____ or ......, boxes, frames. Each one is named after the words next to it, and it looks to the right in Hebrew and Arabic. A line with a name underneath is treated as a place to sign.
A scanned page has nothing to find, so there you place the fields yourself. Said plainly because you will meet it.
For forms your employee writes itself, rebuilt from a photo or made from scratch, every label gets a blank under or beside it. Click and write, and the label stays put.
Fill it, sign it, or send it to be signed
Fields go on the page the way they do in signing tools: text, date, number, checkbox, signature, initials. Each one belongs either to you or to the other person. Fill and sign completes yours and signs them with a signature you draw, with a mouse or a finger, or type.
Your employee can run a whole signature round
This is the part that changes what you can hand over.
Ask your employee to get a document signed and it runs the whole round. It creates a signing link for a named person. To send it by email it asks you which address to send from, its own, one of its mailboxes, your connected Gmail or Outlook, and who to send it to. It tracks who has signed and when, it can cancel a link, and once the document comes back it fetches the signed PDF and hands it to you.
The signer needs no account, and you need no email server of your own. They open the link on a phone or a laptop, fill their fields, draw or type their signature, tick their consent, and sign.
Then the loop closes back onto your employee. It is told in the chat that a given person has signed a given document, so the employee that sent the quote is the one that tells you it came back signed, and it can carry on from there, file it, invoice against it, chase the next one, without you watching an inbox.
That is the DocuSign shape of things, run by an employee rather than by you, and without a subscription to a signing service sitting between you and your own documents.
What they sign is a frozen copy of the document as it was when the link was created, and it cannot change afterwards. If it had no signature field, one is added. The link works once, expires after 30 days, and can be cancelled, and only its fingerprint is stored. The signing page runs no script from the document.
The proof lives on the last page of the signed PDF. It carries the document, the name the signer typed and the name of the person the link was meant for, the date and time in UTC, the IP address, the device and browser used, the consent that was ticked with its exact wording, the SHA-256 fingerprint of the document that was sent, and the request number. The chat notification itself is just the news: your employee can list the signatures with their status and dates, and it reads the full record by opening the PDF, the same as you.
Be clear about what this is. It is a simple electronic signature with a proof page. We are not presenting it as an advanced or qualified signature in the eIDAS sense, and for any document that requires a qualified signature you still need a trust service provider. For the overwhelming majority of what a small business signs, a quote, an engagement letter, a consent form, a simple signature with an audit trail is what people actually use.
Two limits, stated now rather than discovered later. A PDF form filled through its own form fields is not yet supported for third party signing: the link can be created, but the signed PDF comes back filled without the other person's signature. And your employees only get these signing commands once their Studio skill has updated.
Getting it out again
Download as PDF and you get the preview printed, page for page. Word keeps headings, bold, colours, lists, tables and images, one section per page, and landscape pages stay landscape. PowerPoint keeps each slide's look with every text as a real editable text box rather than a picture of one. Excel turns each table into a sheet with numbers as numbers and the header row frozen.
A spreadsheet also comes out as CSV, one file per table, zipped when there are several, using the separator Excel expects on the machine doing the download. Semicolons where decimals are written with a comma, which is the sort of thing you only notice when it is wrong.
Check looks for what a reader would see as broken: content spilling off a page and getting cut in the PDF, a missing image, mailing fields nobody filled, more pages than the design called for. Improve rewrites, shortens, fixes spelling and grammar, tidies the layout, or translates into any of the eleven languages. And mailing: put fields like {{First name}} in the document, give it a CSV or Excel table, and get one PDF per row, zipped, up to 300 rows.
WordPress changes now wait for you
Earlier in the week the Studio learned to open a WordPress site you host yourself. It shipped with two honest limits: changes went live the moment they were made, and Elementor pages were off the table. Both are gone.
Your employee's edits and your own hand edits now collect as drafts, page by page, until you say so. Each draft is rendered by WordPress itself, as the page's autosave and never online, and the preview shows the live page with the draft in place of its content. You are not looking at an approximation. You are looking at your theme, your blocks and your plugins rendering the thing you are about to publish.
The Publish button carries a count of how many pages are waiting, lists them with their number of changes, and puts them online together. Every published page becomes a WordPress revision and an entry in the project's history with its own undo. A draft you have gone off can be dropped, and the page online stays as it was.
If a page changed on the site since its draft began, in the WordPress admin for example, it is not published. You are told which one, and you choose: drop the draft, or ask for the change again against the current version.
One limit worth knowing, because you will see it: WordPress keeps the last draft as the page's autosave, and its API cannot delete or reset that. After you drop a draft, the WordPress editor may still offer it as a newer autosave. Nothing goes online by itself, but somebody who opens that page in the WordPress editor can restore the autosave and click Update. Dropping a draft is a guarantee that the Studio will not publish it, not that its content can never reach the site.
Edit mode, and Elementor
The inspector that works on every other Studio project now works on WordPress. Click a text in the preview and type, change a link, replace an image. Saving puts the change in that page's draft.
The page in the preview is matched to the site's pages and posts by its address, including the front page. A text, link or image is replaced where it appears exactly once in that page. A new image is uploaded to your media library and the page points at that media, with the block's image id following along so WordPress keeps serving its own sizes.
Anything that is not in the page, a menu, a widget, a theme header or footer, content owned by a plugin, goes to your employee with a note. It makes the change if WordPress allows it, or tells you where to do it in the WordPress admin.
Styles are deliberately missing. The size, colour and spacing controls do not appear on a WordPress project at all: texts, links and images only. The Studio has no clean way to write a hand-set style into your theme through the API, and offering a control whose setting would not actually save is worse than not offering it.
Elementor pages were excluded because they keep their content in their own data rather than in the page's. Your employee now reads and writes that data directly, widget by widget, and your hand edits reach it too. They have no draft, so changes go online immediately and the Studio asks you to confirm first. Undo works two ways: the Studio's own history restores the copy it kept before the change, and WordPress revisions carry Elementor data too.
Caches, which are where this sort of thing usually dies
After anything that goes online, the Studio empties the caches it can reach. Two it clears itself and has tested: Elementor's own cache, without which an Elementor page cheerfully keeps serving the old version, and the page in WP Super Cache. LiteSpeed Cache, WP Rocket and W3 Total Cache clear an updated page as their normal behaviour, though we have not tested each of them. A CDN in front of your site, Cloudflare for instance, is not cleared at all.
Which is exactly why the last step exists. The public page is then read back the way a visitor receives it, and if it is still showing the old version, you are told the site's cache may need a few minutes.
What is actually covered
Now that Elementor is in, it is worth naming where this works rather than gesturing at "most sites", because the answer depends entirely on where your page builder keeps your page.
Covered and tested: the block editor (Gutenberg), the classic editor, and Elementor.
Not tested: Divi and WPBakery. Both keep the page as shortcodes inside the content, which is the kind of place the Studio already reads, so it may well work. We have not verified it, so we are not claiming it.
Not covered: Beaver Builder, Bricks and Oxygen. These keep the page somewhere else entirely, and nothing here reaches them.
If you are on one of those three, this does not help you yet, and you should know that from us rather than from trying it.
The second address is gone
Previews of git and WordPress projects used to live on a second address, the server's technical one. If your instance sits behind a proxy that only admits itself, a custom domain through Cloudflare or a Zero Trust setup, your browser could not reach that address and the preview sat there empty.
Previews now live on the same address you are already on, under /_gat/preview/<project>/. No DNS record, no port, no setting to add. Pages, links, files requested by absolute path, the project's API, redirections, the start screen of server apps and WordPress's own links all stay inside the preview. Tested on static, PHP, Vite, Next.js, Express and WordPress projects.
Three known edges, since a path prefix is the kind of thing that has them. An app that routes its own pages in the browser sees the address including the prefix: Next.js is tested and works, React Router and Vue Router are not tested and may need that base path declared. A development server's hot reload, Vite's for instance, keeps a direct connection that does not pass through the preview, so nothing breaks but the Studio reloads the page on each change instead. And a page with a strict no-referrer policy loses files it requests from the root, which is rare.
Alongside it, your instance's custom domain no longer falls back to the server's technical address after a single failed check. One timeout, or a proxy declining a burst of checks, used to be enough for links, published sites and webhooks to quietly start using the wrong address.
Folders, undo, and getting there faster
Projects now live in folders and sub-folders, up to eight levels, on each side of the Studio. Drag a project onto a folder or move it with its button, search across every folder and see where each project sits. Delete a folder and its contents move up a level rather than disappearing.
Undo and redo arrived for hand editing, documents and sites both. Ctrl+Z back, Ctrl+Y or Ctrl+Shift+Z forward, with buttons beside Save. A run of typing counts as one step. Moving a project or folder offers an Undo button for a few seconds. Not yet on git and WordPress projects.
Every project has its own address, /studio/<number>. In a chat message it becomes a button that opens the Studio on it, and it works as a bookmark that reopens the right employee's chat with the Studio already open. Your employee ends its reply with that link when it has made or changed something. Any file attached to a message gets an "Open in Studio" button, which opens it as a document to fill, edit or sign. The dashboard shows your recent projects under "Pick up where you left off".
Opening a git project is plainer too: three steps on the first screen, and the branch is picked from a list of the repository's branches rather than typed from memory. The reassuring line now says outright that the repository is never changed before you press Publish. Opening the same repository twice is allowed, for two branches for instance, with the second project's address numbered. And refreshing the page with the Studio open reopens it on the same project.
Fixes
The quality check failed with "Studio error" on every released instance while working perfectly in development: the code it runs inside the browser was being altered by the release build's code protection.
Your employee's own look at a draft, and the picture attached to a commented element, were opening the draft site's address, which shows nothing for a git or WordPress project. They now go through the preview, and files requested from a site's root appear in those captures as they always did in the browser.
A git project with no framework but a build script is now built, with its output folder shown rather than its raw source. Links without .html resolve the way static hosts resolve them. A page that does not exist answers "not found", or your own 404.html, instead of quietly showing the home page and making a broken link look healthy.
WhatsApp group messages were being lost when two of your accounts shared a group: a group message carries the same id on every account, and the duplicate protection was shared across accounts, so the first account to receive a message made the others discard it. Each account now receives every message in its groups. Two simultaneous reconnections could also open two conflicting connections on one account, which is now prevented. Files given by full path are found, and Office files were being reported as failed to send although they had gone.
Zip files made by Geta.Team, a folder downloaded from Files, a mailing's PDFs, were coming from an outdated zip library writing checksums the current Node.js disagreed with, and some tools refused to open them.
And cloning or importing an employee now starts it paired with nothing, so its new owner pairs their own computers and browsers.