FolioCradle

Atlassian apps

Tools that change what you asked for, and nothing else.

Apps for Confluence that do the bulk work nobody wants to do by hand — without rewriting a macro parameter, a code sample or a byte you did not ask about.

First app: Bulk Find & Replace for Confluence Cloud. Free for up to 10 users.

Status

The first app is built and running. It is not yet published on the Atlassian Marketplace — this page will link to the listing when it is.

One app at a time: each one ships, gets used, and teaches the next.

A foliocradle is the padded rest a conservator uses to hold a manuscript open without cracking its spine.

Apps

Bulk Find & Replace Coming soon

Confluence Cloud. Find and replace across a whole space or a CQL-scoped set of pages. Rewrites body text, the text inside a macro's body among it, link targets and smart-link URLs, and behind their own switch the titles of info, note, tip, warning, panel, expand and code macros and the text of status labels; leaves every other macro setting and the page structure alone (but for a link that holds only text, which goes with its words when a match removes every one of them), and code blocks unless you ask. Case-insensitive and whole-word matching, approval per individual match (and per page on a run of 25 pages or fewer), and a dry run before anything is written.

How it works, and what it will not touch

More is planned in the same family — bulk labels, link remediation, metadata operations, macro migration — all built on the same engine and the same rule about what must never change.

Questions, or something you wish these apps did? Get in touch.

The two house rules

Nothing outside a match is rewritten, bar the two things named below

Every FolioCradle app is built on one engine, and it never rebuilds your page. It works out where the editable text is and splices the replacement into the original bytes, so everything outside a match is sent back byte-for-byte as it was read — macro parameters, table geometry, entities, the macro ids Confluence stamps on things (Confluence itself may reorder a macro's attributes as it saves). Not by care, by construction: there is no serialiser in the path to normalise anything away. Two things change beyond the matched words: the hidden second copy Confluence keeps of a decision list is rebuilt from the decision's words where a run changes them, and a link that holds only text goes with its words when a match removes every one of them.

Your content never leaves Atlassian

FolioCradle apps are built on Atlassian Forge and run inside Atlassian's own infrastructure. There is no server of ours in the path, because there is no server of ours at all.

Data sent to usNone. The app declares no external network permissions, so the Forge platform blocks outbound calls — there is nowhere for your content to go, and no server of ours for it to arrive at.
The AI featuresTwo of them, each behind a button somebody presses. Suggest other spellings sends only the two words you typed. Check these matches sends the text around each match on the dry-run screen. Both go to a language model Atlassian runs on its own infrastructure — which is what lets the app keep the Runs on Atlassian designation — and neither sends anything to us. An administrator can switch them off for the whole site. Section 4 of the privacy policy is the full account.
Data storedNone by us. A run saves a working record using Forge storage inside your Atlassian site, and how much it saves depends on the run. A dry run small enough to finish on screen saves nothing at all. Every apply saves what it needs to undo itself and to show you the report afterwards, on screen or in the background alike: the id and title of every page in the run and what happened to each, the previous version of each page it changed, before-and-after samples of the first 25 changed pages, examples of the matches it declined to rewrite, and alongside those the terms you searched for, the options and scope you chose, and the account id of whoever started it. A run large enough to work in the background saves the same record whether or not it writes anything, because the report has to be there when you come back to it. A run's record expires after seven days; discarding the run deletes what identifies it at once and the per-page rest in the background within minutes; an administrator's settings are configuration and are kept until changed. Section 10 of the privacy policy is the full account. Nothing is written anywhere we can reach.
Analytics or trackersNone, in the app or on this website. This page loads no fonts, scripts or images from anywhere else.
What it can reachOnly what you can. Every page is checked against your permissions before it is written or even reported, and pages you cannot edit are counted in the report rather than passed over quietly; up to 25 of them are named there. A Confluence administrator can deliberately turn on an elevated mode that goes further; it is off by default, every page it writes using authority you do not have is counted separately in the report (a run interrupted and restarted part-way through a page can leave that page out of that count), and every page EDIT it makes that way is labelled [elevated] in that page's version history. A comment it rewrites or puts back that way is labelled [elevated] in that comment's own version history. A label change is not part of any version, so it leaves no history entry to label — those pages appear in the report instead.

Full detail in the privacy policy.