Studio setup · Beginner walkthrough
Your own Maxisnap, from nothing.
Set up direct file uploads to your own Cloudflare R2 bucket. You can share files through a public URL or a domain you control. This requires the Studio add-on and an R2 account. Review Cloudflare's billing requirements; the PHP dashboard and its access controls need separate hosting.
Every screenshot you take with Maxisnap uploads to a domain
you control (a public R2 bucket address such as
pub-<id>.r2.dev, or your own domain) and
the link is yours — not maxisnap.com.
$0 for most personal libraries. At the time of writing (September 2026) Cloudflare's R2 free tier includes 10 GB of storage and 1 million Class A requests per month, roughly 10,000 screenshots; check Cloudflare's R2 pricing page for the current figures. Follow Cloudflare's signup and billing requirements when enabling R2.
Before we start, have these ready:
- A working email address (for your Cloudflare account).
- About 25 minutes.
- Maxisnap already installed (get it here if not).
- Patience. Screens in Cloudflare's dashboard change sometimes — we'll keep the words right but the exact pixel positions may shift.
Create a free Cloudflare account
Cloudflare is a huge company that runs a big chunk of the internet. They give away a generous free tier because it's how they get people in the door. Most personal screenshot libraries stay inside the free tier.
- Open dash.cloudflare.com/sign-up.
- Enter your email and pick a strong password. Write it down somewhere safe.
- They'll email you a code. Type it in.
- When it asks what plan, pick Free. Yes, even if it tries to nudge you toward a paid plan.
Turn on R2 (their storage product)
R2 is Cloudflare's version of Dropbox for programmers. It's where your screenshots are going to live.
- On the left-hand menu of your Cloudflare dashboard, look for R2 Object Storage. Click it.
- It will ask you to agree to terms. Read them (they're short) and click Purchase R2 Plan.
- DON'T PANIC — it says "purchase" but the free tier is the default and costs $0/month for the first 10 GB. Cloudflare just uses that word. You'll need to enter a credit card to confirm but you won't be charged unless you go over the free tier.
Create a bucket
A "bucket" is just a named folder in R2. This is where your screenshots will be stored.
- In the R2 dashboard, click Create bucket.
- Give it a name. Something like
yourname-snaps. All lowercase, no spaces. You can't change the name later so pick something simple. - Location: pick Automatic (Cloudflare picks the closest region).
- Click Create bucket.
yourname-snaps.
Get your API credentials
Maxisnap needs permission to write to your bucket. This is done with a "token" — like a password that's just for this one app.
- Still in R2, look at the top-right of the page for Manage R2 API Tokens. Click it.
- Click Create API Token.
- Give the token a name like "Maxisnap Desktop".
- Under Permissions, choose Object Read & Write. Not admin, not read-only — just read & write.
- Under Specify bucket(s), pick your bucket name (
yourname-snaps). - Click Create API Token.
On the next screen, you will see three things. COPY ALL THREE.
This is the only time Cloudflare will show them — if you close the page you'll have to start over.
- Access Key ID — looks like
a1b2c3d4e5f6... - Secret Access Key — longer, looks like
7g8h9i0j... - Endpoint URL for S3 Clients — looks like
https://<long-random-string>.r2.cloudflarestorage.com
Paste them into a scratch file (e.g. Notepad). You need them in the next step.
Connect Maxisnap to your bucket
Now we're back on your computer.
- Open Maxisnap. Click the tray icon (bottom-right), then Settings.
- Click the Upload tab.
- Click + Add. Because you have Studio, this should open the new-server form (no upgrade prompt).
- Fill in Name: "My R2 bucket" (any friendly name).
- Set Type to S3 / Cloudflare R2.
- Fill in the fields from the previous step:
Endpoint— paste your Endpoint URL for S3 Clients.Region— leave asauto.Bucket—yourname-snaps.Key ID— your Access Key ID.Key Secret— your Secret Access Key.Key Prefix— leave empty (or setscreenshots/if you want them in a subfolder).URL Prefix— leave this empty for now. We'll come back to it in step 7.
- Click Test Connection. You should see a success toast in a second or two.
- Click Save.
Endpoint URL has the full https:// prefix, and that the Bucket name matches exactly (case matters).
Take a test screenshot
Close Settings. Press Ctrl+Alt+5 and drag out a region. After you click Upload in the editor, Maxisnap should push the file to your R2 bucket.
Verify it arrived: go back to Cloudflare R2, click your bucket,
and you should see a file named something like
ms_a1b2c3d4.png. If it's there — great, your
Maxisnap is uploading to YOUR storage now. Nothing has left
your control.
Choose public file links (optional)
By default R2 buckets are private — which means Maxisnap can upload but you can't just share the URL with a friend. You have two options to make them shareable. Anyone with a public bucket URL can open the file; Studio dashboard roles and passwords do not apply.
Option A — Cloudflare development URL (for testing)
- In R2, click your bucket, then the Settings tab.
- Under Public Development URL, select Enable and confirm public access by typing
allow. - Cloudflare will give you a URL like
https://pub-<long-id>.r2.dev. - Back in Maxisnap → Settings → Upload, edit your server and paste that URL into the URL Prefix field. Hit Save.
Now when you take a screenshot and Maxisnap auto-copies the URL,
it'll be on pub-xxx.r2.dev. Slightly ugly but it
works and it's free.
Option B — Use your own domain (prettier)
If you already own a domain (e.g. snap.yourname.com) you can point it at the bucket. Cloudflare has a full guide here — it's about 3 minutes. Then set URL Prefix to https://snap.yourname.com.
Install the Maxisnap Dashboard (optional)
The Studio dashboard stores captures on its PHP host and provides a searchable library, tags, access controls and branded share pages. It does not list or import the files already in your R2 bucket. Use PHP 8 or newer on Apache or LiteSpeed with .htaccess rules enabled.
In the app's Account settings, download the dashboard bundle from the Maxisnap Studio card. Open the offline Start Here guide to preview your dashboard and share pages as you choose colours, fonts, a logo, and an optional button.
Choose Lock in my branding and select your extracted Studio package folder when prompted. After you allow folder access, the guide updates its snaps folder and downloads a matching snaps.zip with the same branding and fonts.
If your browser cannot save to folders, download snaps.zip and extract it to replace the package's snaps folder. A ZIP download alone leaves that folder unchanged.
Upload the snaps folder or extract snaps.zip at your website root. Visit /snaps/ to finish setup, then connect the app using that URL and an upload-capable code.
If you'd rather skip it for now — Option A's r2.dev
link is already enough to share individual screenshots with
friends. The dashboard is a nicety, not a requirement.
🎉 You're done
Your uploads now use storage you control. Cloudflare charges for usage above its free allowances. Public bucket links can be opened by anyone who has the URL; the PHP dashboard's team and password rules do not apply to those bucket links.
You can always come back to Settings → Upload in Maxisnap and flip back to Maxisnap Cloud as the active server if you change your mind. Your R2 server config is saved and can be reactivated with one click.
Anything confusing? Send a screenshot + a description to support@maxisnap.com and a human will write you back within a day.