Studio turns every screenshot and screen recording you upload with Maxisnap into a
private, branded share link on an address you own, with a shared library for your
team. It runs on space you own: your web hosting, or your own Cloudflare account.
Your captures are stored in your Studio, not on Maxisnap’s servers, and the keys it
uses stay on your computer and in your own accounts.
On Windows
Start with the setup wizard in Maxisnap
Signed in with the account that has Studio, go to Settings → Account
and open the Maxisnap Studio setup wizard. In step 1,
Download dashboard saves the Studio ZIP to your Downloads folder and
opens that folder. Extract the ZIP, then double-click “Maxisnap Studio - Start
Here.html” for your branding and the web hosting, AI assistant and developer routes.
For a Cloudflare Studio, your AI assistant or a terminal deploys the Cloudflare
edition from the same folder.
On a Mac, or by hand
Open “Start Here” from the Studio download
In Maxisnap for Mac, open Settings → Welcome & Help → Studio Setup
Guide, click Get Started, then Download
Dashboard: it saves the Studio download to your Downloads folder.
Extract it and open “Maxisnap Studio - Start Here.html”. Opened this way, the page
covers your branding and the web hosting, AI assistant and developer routes.
For a Cloudflare Studio, your AI assistant or a terminal deploys the Cloudflare edition from that folder, the same way as on Windows.
How would you like to set it up?
Pick the one that sounds most like you. Every route ends the same way: Maxisnap tests
your Studio and makes it your upload destination, so the next capture you upload goes
to your Studio and its share link lands on your clipboard.
Not sure? If you sign in to cPanel, hPanel or Plesk to manage your
site, choose “I have web hosting”. If your domain uses Cloudflare, choose the second
option.
With no website at all, choose the first: a free Cloudflare account that doesn’t touch any website, put online for you by an AI assistant on your computer or from a terminal.
1
I don’t have a website
You open a free Cloudflare account, and the deploy tool in the Studio download puts Studio in it: your AI assistant runs it for you (route 4), or you run it from a terminal (route 5).
Your Studio gets an address like snaps.yourname.workers.dev. You can add your
own domain later without losing anything.
Create your Cloudflare account Sign up at dash.cloudflare.com/sign-up with an email address you check every day, and confirm it before you go on. You can skip Cloudflare’s questions about adding a website.
Turn on storage
Your captures are stored in Cloudflare R2.
In the Cloudflare dashboard, open Storage & databases → R2 → Overview and complete Cloudflare’s checkout to add R2.
Cloudflare may ask for a card or PayPal before it turns R2 on, even if you stay within
its free allowance.
Hand the Studio download to your AI assistant
Download Studio from Maxisnap (see the top of this page) and extract it, then paste
the ready-made instructions into your assistant. It follows
AGENTS.md in the Studio folder and asks you for a Cloudflare API token,
which you create in Cloudflare under My Profile → API Tokens with the permissions it
lists.
Pick your address
Choose a Studio name with lowercase letters, numbers and dashes. If your account has no
workers.dev name yet, you pick one now as well. It is shared by everything in that
account and hard to change later, so your company name is a good choice.
Check the plan, then create your Studio The deploy first shows a plan: everything Studio will create, and everything in the account it will not touch. Nothing is created until you say yes.
When it’s done, the deploy shows your Studio’s address and its Admin key, once.
Keep a copy of the key somewhere safe, like your password manager: it is how you sign in
to your dashboard.
Then connect Maxisnap with the address and the key.
Upload size. Maxisnap for Windows and Maxisnap for Mac send each upload to a Cloudflare Studio in one request, which it accepts up to 25 MB per file.
Studio is added to your Cloudflare account next to your website, on its own free
workers.dev address, plus a new subdomain you choose, such as
snaps.yourcompany.com, if you want one.
Your AI assistant (route 4) or the command-line deploy (route 5) does it with the deploy tool in the Studio download. It reads your account first, shows a plan of what Studio adds and what it leaves alone, and creates nothing until you say yes. R2 storage must be on in the account; if it isn’t, the plan says so.
Studio adds
The Studio app itself (Cloudflare calls it a “Worker”)
A storage space for your captures (an “R2 bucket”)
A small database for your library and team (“D1”)
Its address on workers.dev, plus one new subdomain if you pick one
Your account’s workers.dev name, if it has none yet (one name for the whole account)
Studio leaves alone
Your website and its files
Your domains’ existing DNS records
Any other Worker, storage or database
Your billing and your other account settings
If a name is already in use, Studio picks another or asks you to; it does not replace
something that is already there.
A subdomain must be on a domain in the same Cloudflare account, and for one the API token also needs Zone Read, DNS Read and Workers Routes Read. Cloudflare adds one DNS record for that name only. The workers.dev address works from the start; the new name can take a while to start working.
If someone else looks after your Cloudflare or your website, check with them first.
Some companies have rules about who adds services to the company account, or put a
sign-in page in front of every subdomain, which would block Maxisnap’s uploads.
The technical brief explains everything the deploy adds and the permissions it needs.
Studio for web hosting is the snaps folder in your Studio download. Upload
that folder, or upload it as one file, snaps.zip, which you get when you lock
in your branding (your own look or the Maxisnap look). Studio needs PHP 8.0 or newer on
Apache or LiteSpeed with .htaccess rules enabled. When you’re done, your Studio lives at
yourcompany.com/snaps.
Where snaps.zip is. Open “Maxisnap Studio - Start Here.html” from the extracted Studio download, add your branding or keep the Maxisnap look, and click “Lock in my branding” (or “Download snaps.zip only”): your browser saves snaps.zip with its downloads.
In desktop Chrome or Edge it can also update the package’s snaps folder directly; in other
browsers, extract the new snaps.zip over the package’s snaps folder before you upload a
folder. To upload the snaps folder itself instead, use an FTP app (the FTP / SFTP steps
below).
Upload snaps.zip with your hosting’s File Manager
cPanel
Sign in to cPanel and open File Manager Most hosts link it from your account page as “cPanel”, then “File Manager”.
Open public_html That is your website’s main folder. On some hosts it is called www or htdocs.
Upload snaps.zip Click Upload, choose your snaps.zip (see “Where snaps.zip is” above), then go back to public_html.
Extract it Right-click snaps.zip, choose Extract, and extract into public_html. You should now see a folder called snaps.
Hostinger
Open hPanel, then Websites, then Dashboard Pick the website you want Studio on.
Open File Manager and go to public_html It is under Files in the left menu.
Upload snaps.zip Use the upload icon at the top right and choose your snaps.zip.
Extract it Right-click snaps.zip and choose Extract. Leave the folder name empty so it extracts straight into public_html.
Plesk
Open Files in Plesk Choose your domain, then Files.
Open httpdocs That is your website’s main folder in Plesk.
Upload snaps.zip Click the plus button, then Upload File.
Extract it Tick snaps.zip, then choose Extract Files.
DirectAdmin
Open File Manager Under System Info & Files.
Open domains, your domain, then public_html
Upload snaps.zip Use Upload files to current directory.
Extract it Click snaps.zip and choose Extract.
FTP / SFTP
Open your FTP app FileZilla, WinSCP or Cyberduck, with the FTP details your host gave you.
Find the snaps folder to upload It is in your Studio folder. If you made a branded snaps.zip, extract it first (right-click it, Extract All) and use the snaps folder inside.
Upload the snaps folder into public_html Include the hidden .htaccess files. In FileZilla: Server, Force showing hidden files.
Check the result public_html should now contain a snaps folder with index.php inside.
Open your Studio once to finish
Open https://yourcompany.com/snaps/ in your browser. The first visit runs a
short setup: it checks your hosting and shows your Admin key. Copy that key before you
click “Create my dashboard”, then connect Maxisnap with your
Studio’s address and that key.
Already have a snaps folder? That is an existing Studio. Don’t upload over
it: follow snaps/How to update.txt, which keeps your captures, people,
branding and settings.
Watch the web hosting setup in 90 seconds
Recorded with an earlier Studio version, so some screens look different from the current setup page.
Brand it, upload it, connect it, share it. Subtitles are available in 16 languages from the player's caption menu.Watch on YouTube
4
My AI assistant will set it up
Paste ready-made instructions into Claude Code, Codex, Cursor or another coding
assistant that can run commands on your computer. It reads AGENTS.md in
your Studio folder, which explains both editions, the exact install steps, what must
stay private and how to check the result. The instructions tell it to ask you before
it changes anything.
Replace the line in angle brackets with the folder where you
extracted the Studio download. For the Cloudflare edition your assistant asks you for a
Cloudflare API token; AGENTS.md tells it which permissions the token needs and
where you create it.
Set up Maxisnap Studio for me.
Maxisnap Studio is a self-hosted dashboard for the screenshots and screen recordings the Maxisnap desktop app uploads: a private library plus branded share links. It comes in two editions with the same features: a PHP app for ordinary web hosting, and a Cloudflare Worker that uses R2 and D1.
Everything is in this folder on my computer:
<the folder where I extracted the Studio download>
Start by reading AGENTS.md in that folder. It explains both editions, the exact install steps, what must stay private, and how to check the result.
If I locked in my branding, it is in snaps.zip; AGENTS.md says what to do if it is missing.
Goal: Work out with me whether the PHP edition (my web hosting) or the Cloudflare Workers edition fits my setup, then install it.
Rules:
- Ask me before you upload, deploy, or change anything on a server or in an account, and tell me exactly what you will change.
- Never delete, overwrite or rename existing website files, DNS records, Workers, buckets or databases. Studio only adds new things.
- Keep keys and passwords out of files you create and out of chat transcripts where you can.
- When it works, give me the Studio address and the Admin key so I can connect the Maxisnap app (on Windows, Settings, Account, Maxisnap Studio setup wizard, step 4; on a Mac, Settings, Welcome & Help, Studio Setup Guide, “I already have a dashboard”).
When it works, your assistant gives you the Studio address and the Admin key.
Connect Maxisnap with them.
5
I’m a web developer
Two editions of the same app, with the same URLs, upload API, dashboard and roles: a
database-free PHP app for Apache, LiteSpeed or nginx hosts, and a Cloudflare Worker
backed by R2 and D1. On nginx, reproduce the routing and deny rules from
snaps/.htaccess; the Developer guide lists them.
Maxisnap-Studio-v<version>/
Maxisnap Studio - Start Here.html guided setup (branding + every route)
snaps/ PHP edition: upload this folder to a web host
cloudflare/ Cloudflare Workers edition (Worker + R2 + D1)
deploy/cli.mjs deploys it through the Cloudflare API (Node 20+)
docs/Developer guide.html architecture, upload API, security, updates
docs/Cloudflare setup - technical brief.html
AGENTS.md instructions for AI coding assistants
Deploy the Cloudflare edition from a terminal
cd cloudflare
# Option 1: the bundled CLI (Node 20+; plan first, then --yes). PowerShell:
$env:CLOUDFLARE_API_TOKEN = "<token: Account Settings Read; Workers Scripts, R2 and D1 Edit;
for --zone/--hostname also Zone Read, DNS Read, Workers Routes Read>"
node deploy/cli.mjs whoami
node deploy/cli.mjs plan --account <account id> --name snaps
# no workers.dev name on the account yet? The plan asks you to "Choose your free
# workers.dev name": add --subdomain <your-company> to both commands (account-wide).
# A subdomain of your domain as well: add --zone <zone id> --hostname snaps.example.com
node deploy/cli.mjs deploy --account <account id> --name snaps --yes
# prints the Studio address and the Admin key once, and writes deployment.json here
# Option 2: plain Wrangler (create the bucket and database, set their ids in wrangler.jsonc)
npm install
npx wrangler r2 bucket create maxisnap-studio-media
npx wrangler d1 create maxisnap-studio
npx wrangler secret put ADMIN_KEY
npm run sync
npx wrangler deploy
Good to know
The Maxisnap apps upload with an X-Dashboard-Key header to
api/upload.php; the Workers edition accepts up to
25 MB in one such request. It also has a chunked upload API
for larger files (api/upload/start, part and
complete), described in the Developer guide.
Share pages are /<slug>, media bytes /<slug>.<ext>; everything else is internal. Keep uploads/, data/ and branding/ private on PHP hosts.
Updating PHP installs: replace only the files listed in snaps/How to update.txt.
Updating the Workers edition: from a newer package’s cloudflare folder, with
the old deployment.json copied in, run
node deploy/cli.mjs update --record deployment.json --yes. The CLI writes that
record in the folder it runs from.
Captures, people and settings stay.
The CLI reads the account first, shows a plan and refuses names that are already in use. If a deploy stops half-way, running the same command again continues without creating anything twice.
The full Developer guide (architecture, upload API, keys and roles, security model,
troubleshooting) is docs/Developer guide.html in the Studio download.
Already have a Studio running? Connect Maxisnap to it
Maxisnap for Windows: open Settings → Account → Maxisnap Studio setup wizard, click “Get started”, then “Next” until step 4, “Connect Maxisnap”. Paste your Studio’s address and key, click “Test connection”, then “Next”, then “Finish & Save” on the last page. The Admin key from setup works, and so does an upload code from People & access in your dashboard.
Maxisnap for Mac: open Settings → Welcome & Help → Studio Setup Guide and choose “I already have a dashboard”. Paste your Studio’s address and key, click “Test Connection”, then “Next”, then “Finish & Save”.
The next capture you upload goes to your Studio, and its share link lands on your clipboard.
Cloudflare publishes the current allowances and prices for
Workers,
R2 and
D1.
Web hosting route
Nothing extra. Studio uses the hosting you already pay for.
Without the Studio dashboard
Upload straight to your own server or bucket
Studio also unlocks custom upload destinations in Maxisnap: SFTP, FTP, S3-compatible
storage and your own HTTP endpoint. Files go straight to a server or bucket you run and
the share link is the file’s own address, without the Studio library, people or branded
share pages. Studio does not import files from these destinations.
Open Maxisnap → Settings → Upload, click Add, and pick
the server type that matches what you already have. Here are the right field values for
the four common setups. In Maxisnap for Mac, the same four kinds of server are under
Destinations in the Maxisnap window, each with its own form and a
Test and Connect button.
SFTP / SSH (any Linux VPS, shared hosting with SSH)
Host — e.g. vps.mysite.com or the IP.
Port — usually 22.
Username — the Linux account you SSH in as.
PasswordorSSH key — key auth is
safer. Maxisnap supports RSA, Ed25519, and ECDSA keys.
Remote dir — where to drop files on the server,
e.g. /var/www/html/snaps. Maxisnap creates it on the
server if it is missing; the user must have write permission.
URL prefix — the public URL the file will live at,
e.g. https://mysite.com/snaps. Maxisnap appends the
filename, so the final share URL is
https://mysite.com/snaps/ms_a1b2c3d4e5.png.
Tip: if you get a “connection refused” error even though SSH works from
your terminal, check that your network doesn’t block port 22 outbound; some corporate
networks do. Port 2222 is a common alternative.
FTP / FTPS (cPanel, shared hosting, legacy hosts)
Host — ftp.mysite.com.
Port — 21.
Username / Password — the FTP credentials
from your host. On cPanel, your primary FTP account or a dedicated
FTP user you create in the FTP Accounts interface.
Use TLS/SSL (FTPS) — tick this if your host supports FTPS.
If you don’t know, leave it off. Plain FTP still works.
Remote dir — usually
public_html/snaps or
httpdocs/snaps. Confirm via your host’s file manager.
URL prefix — where that directory is served from,
e.g. https://mysite.com/snaps.
Plain FTP sends passwords in the clear. Use FTPS if your host
supports it — and move to SFTP at your earliest chance.
S3 / Cloudflare R2 / any S3-compatible bucket
Endpoint — your S3 endpoint URL. For Cloudflare
R2 this is https://<account-id>.r2.cloudflarestorage.com.
For AWS S3 you can leave this blank.
Region — auto for R2,
us-east-1 etc. for AWS.
Bucket — the bucket name, e.g. my-snaps.
It must already exist.
Key ID / Key secret — bucket access credentials
with PutObject permission. In R2, create an API token
with the Object Read & Write permission.
Key prefix — optional subfolder inside the bucket,
e.g. 2026/.
URL prefix — the public URL the object resolves at.
For R2, you bind a custom domain in the dashboard (e.g.
https://cdn.mysite.com).
If you’ve written a small upload endpoint on your own backend, point Maxisnap at it:
Upload URL — your endpoint, e.g.
https://api.mysite.com/upload.
Field name — the multipart/form-data
field the file should arrive on. Most servers expect file.
Auth header — e.g. Bearer <your-token>.
It is saved in Maxisnap’s settings on your computer.
Response key — the JSON key in your response that
contains the URL to share. If your endpoint returns
{"url":"https://..."}, set this to url.
Want the full upload API instead? Both Studio editions are included as source in the
Studio download; the developer route has the details.
Click Test connection to verify and then Save. Maxisnap
uses your new server for the uploads that follow, and you can switch back to Maxisnap
Cloud at any time in Settings.
Changing your mind
Branding: change the logo, colours and fonts any time in your dashboard under Branding.
Revoke the Cloudflare API token: delete the token you made for the deploy in Cloudflare under My Profile → API Tokens. Your Studio keeps running; updating or removing it later needs a token with the same permissions.
Remove a Cloudflare Studio: in Cloudflare’s dashboard first remove its subdomain if it has one (the Worker’s Settings → Domains & Routes), then delete the Worker (Workers & Pages). Only if you no longer want your captures, also delete the R2 bucket (its name ends in -media; empty it first) and the D1 database, both named after your Studio. Your web developer can do all of this with one command from the technical brief.
Remove a web hosting Studio: delete the snaps folder from your hosting after downloading anything you want to keep.
Stuck?
Email support@maxisnap.com
with a screenshot of the setup screen you are on and a description of your
hosting, and we’ll write back with the steps for your setup.