Flarum's answer to pictures is an upload button. That is enough to put a photograph in a post, and it is why forums built around images — cars, watches, models, aviation, wildlife, anything photographed — end up hosting the pictures somewhere else and linking back to them.
Atrium gives the forum a room of its own: a front page of the newest work, albums people make and look after themselves, and a viewer where a photograph gets the whole screen.
There is a live demo, with pictures in it: https://ernestdefoe.online/gallery

The viewer is a page, not a lightbox

A picture nobody can link to is a picture nobody shares, and a lightbox that swallows the back button is the most complained-about pattern in any gallery. So every photograph has a URL.
- Arrow keys move through the album, F is fullscreen, space runs a slideshow that stops at the end of the album rather than looping back to the start.
- Double-click or ctrl+wheel zooms, and dragging pans.
- Swipe works on a phone — but only when the picture is unzoomed and the gesture is quick and mostly horizontal, so panning a zoomed photograph never throws you into the next one.
- The filmstrip shows the rest of the album and scrolls to keep your place.
- The next and previous pictures are already downloaded before you ask for them. The whole album travels with the first response as ids and thumbnails, which is the difference between a viewer that feels like an application and one that feels like a series of page loads.
Albums belong to the people who make them

Four visibilities: everybody, signed-in members, certain groups, or only me.
That third one is the seam worth knowing about. Anything that can put a member in a group — a payments extension, a subscription, a moderator adding somebody by hand — opens a group-restricted album to them. Atrium never has to know that money exists, so it works with whatever you already sell with rather than competing with it.

The owner drags the pictures into order, sets any of them as the cover, and edits a title, caption and alt text in place under the photograph — not in a dialog covering the thing being described.
Adding pictures
Drag a folder in, or paste a screenshot straight from the clipboard, which is the step every other forum gallery makes people do the long way. Each file is accepted or refused on its own with a reason beside its name.
What it does to a photograph
Every picture is stored once — addressed by the SHA-256 of its own bytes, so the same image in three albums is one file — and gets a thumbnail, a 2× thumbnail, a WebP copy of each, a 1600px viewing copy, and a sixteen-pixel blurred stand-in carried in the page itself so a tile is never an empty grey box.
A few decisions I would want to know about if I were installing this:
- EXIF location is dropped on the way in and never stored — not hidden on the way out. Camera, lens, shutter, aperture, ISO and focal length are kept and shown. Orientation is applied to the pixels and the tag removed, so nothing arrives sideways.
- No SVG at any size. Served from your own domain an SVG is a script container with a paint program attached.
- Plain GD, no image library, so it cannot collide with whatever your forum already has installed. There is a pixel ceiling rather than a byte one, because a 2 MB JPEG at 20,000 × 20,000 wants 1.6 GB of memory and would take the worker with it.
- Which derivatives exist is recorded on the row, never discovered by asking the filesystem — on S3 or R2 that would be a request per tile per size.
Moderation, if you want it
Hold new pictures for approval and they wait in a queue on the forum side, not in the admin panel: moderating is not administration, and a queue you need the keys to the whole forum to reach is a queue nobody works. Pictures are shown at a size somebody can actually judge, oldest first.
Permissions
atrium.view (guests by default) · atrium.comment · atrium.upload · atrium.createAlbum (members) · atrium.moderate (moderators).
Getting it
$39 a year, or $4 a month, which covers updates and support while the licence is current.
- Go to https://ernestdefoe.online/account and sign in, or register.
- Open the store there and buy Atrium. Payment is by PayPal.
- Your account then shows the token for the private Composer repository.
composer config repositories.ernestdefoe composer https://ernestdefoe.online/composer
composer require ernestdefoe/atrium
php flarum migrate && php flarum cache:clear
Licence: proprietary. One purchase covers the forums named in it; the source is private and comes with the licence.
Support and bug reports: https://ernestdefoe.online/d/98
Questions welcome here — particularly about the group-gated albums, which is the part I expect people to want to use with something I have not thought of.