SnapSmack lets you smack your snaps up.
Self-hosted, free and open-source, built for photographers who got tired of Instagram, Facebook, and every other platform deciding what happens to their work. Own your archive. Own your audience. No middleman.
It's a free, open-source photo blogging platform you install on your own server. Every image you post is yours — sitting on your own hosting, in your own database, under your own domain. SnapSmack doesn't have an app to delete, a policy to change, or a feed to bury you in.
Post one image at a time or thirty at a time — whatever suits the shoot. Title, description, tags, all easy to manage. Pick a skin that reflects your creative vision or make your own. SnapSmack doesn't try to be everything for everyone, just to be indispensable to image makers. That's on purpose.
The software is free. The skins are free. The companion tools are free. No membership, no freemium tier, no bait-and-switch. Any skin developed by a third party can only be distributed through the SnapSmack repository — and only for free. SnapSmack exists to give photographers a hand up, not extort them for handouts.
Currently in Alpha — stable enough to run a real site, rough around a few edges. Best experienced on a big screen.
People who are tired of the algorithm showing them non-stop ads for dental implants and hemorrhoid cream crammed between questionable preteen influencer and conspiracy theorist video shorts — instead of honest-ta-gawd photography.
If you shot film and want your scans living in your own database, not Facebook's. If you have cheap shared hosting and know what cPanel is. If you're sick of a dysfunctional algorithm deciding who sees your work and when. If you want to write about your photos, not just caption them. If you think photography deserves a big screen, not a phone thumb.
SnapSmack is for the photographer who wants a site, not shite.
Alpha v0.7.24 is running production sites today. Here's what's solid.
Post, edit, publish, draft. Full image pipeline with EXIF extraction, auto-thumbnails, and palette detection. Archive calendar engine, category visibility controls, and a dedicated appearance system for archive, solo image, and static pages.
No plugins. Skins use a manifest and library system — checking out fonts and applets from the CMS. Each skin presents its own controls: colour pickers, sliders, texture options. No CSS knowledge needed.
Bulk post, audit, and repair your archive from the desktop. AI enrichment, Drive sync, batch rename, and duplicate title repair — proven on archives of 1,400+ files. Full rundown in Companion Tools below.
Client/server community built into the software. Reactions, comments, following — limited to blog owners. No public signups, no spammers, no trolls.
TOTP-based 2FA compatible with any authenticator app. QR setup, recovery codes, the works.
Guided web installer for new installs. Database setup, config generation, initial admin account — done in minutes.
Spell check, grammar, rephrasing, and a full chat assistant in the post editor. Your API key, your provider — Claude, Gemini, or ChatGPT.
One image, one post, chronological, yours. The classic Pixelpost experience — the photoblogging format that defined the early web and quietly disappeared when the platforms took over. Solo image posting done the way it was always supposed to be done.
The 2016 Instagram experience — before the algorithm ate it. Multiple images per post, carousel layout, curated grid. Post up to 30 images at a time in carousel rows, panorama layout included. Your grid, your order, no Reels, no suggested posts, no one deciding what your followers see.
Date archives, custom albums, blogroll, and static pages with full shortcode support.
One-click in-admin updates. Signed releases, migration runner, schema sync, rollback support.
Comprehensive help system accessible from every admin page. Each skin injects its own section describing how its unique features work, so the documentation always matches what you have installed.
Crop, rotate, brightness, contrast, and sharpen — right inside the admin. No round-tripping to Lightroom for a quick fix before posting. Non-destructive: edits apply to the web copy, originals stay untouched.
Browse your entire image library by album, camera, date, or extracted colour palette. Bulk tagging, bulk album assignment, and a proper visual picker when composing posts. Your archive, actually usable.
Run a fleet of SnapSmack sites from a single hub. Live heartbeat monitoring, aggregated comment queues, cross-posting, fleet-wide backup health, SSO drill-through to any spoke, and blogroll sync. One dashboard, all your sites.
Approve, reject, or delete comments from a dedicated moderation panel. Aggregated across all your sites in multisite mode. Flag for review, bulk actions, and a full comment history per post.
Desktop app for large archives. Gracefully and reliably handles multi-gigabyte backups that would flatten a shared host if run server side. One-click or scheduled backup of all your SnapSmack sites at once. Differential FTP sync, cloud storage push, three-way file audit, and cold-start recovery without a working install. Always free.
He's adorable, he'll make your day, and he lives in every installation of SnapSmack. You can find him and his story if you're clever and determined enough.
When's the last time you were part of a three way?
The classic photoblogging format — the kind that defined the early web before Instagram convinced everyone their archive needed to be curated for someone else's algorithm.
You shoot. You post. Chronological, clean, no distractions. One image at a time with a title, description, tags, and as much or as little writing as you want alongside it. No grid pressure. No performance. Just your photographs and a place to put them that you actually own.
The classic Insta 3 across square feed is back. Multiple images per post. Carousel layout. Curated grid. Everything Instagram used to be in 2016 before Reels, before suggested posts, before the app decided your followers should see strangers' content instead of yours.
Post up to 30 images at a time in carousel rows, panorama layout included. We've added the power toys Zuck denied you to make sharing easy. Your grid, your order, no algorithm between you and your audience. A skinnable Instagram experience, running on your server, owned by you. Do a gram and feel good about it.
Longform photo essays, diary entries, narrative posts — writing and images at equal billing. Not a caption under a photo. Not a photo illustrating a blog post. Both at once, stories and words woven together into to a beautiful tapestry for the creator who cuts their posts to measure.
MOSAIC, a layout engine built into the post editor, lets you arrange multiple images into justified panels that flow inline with your text. The web 2.0 blogging experience before it got buried under plugins, themes, and someone else's roadmap. Primitive by design, and yours.
Coming BetaThe admin interface has sixteen colour themed skins available for it (so far). This one is Bumblebee, for those photographers who are ready to roll out. Don't see something you like? Use the skin designer to create something that tickles your pickle and add it to the repository for others to enjoy, too.
Six layers. Local fingerprint ban, fleet-wide ban sync, network reputation, stylometric evasion detection, file integrity monitoring, and cryptographically signed releases. The more work a troll or attacker has to do, the more likely they are to go bother someone else. We work them harder than an Amazon employee on Black Friday.
Every comment submission is fingerprinted — canvas, WebGL, screen geometry, timezone, language, hardware concurrency — hashed into a SHA-256 identity. No cross-site tracking. No personal data stored. Just a behavioural signature that follows the device, not the account.
Ban by device fingerprint, IP, or email hash. Banned submissions get a plausible-looking success response — the harasser never knows they're blocked. They just keep shouting into a room where nobody can hear them. Keyword and phrase banning on top: exact match, substring, or full regex, with silent reject or flag-for-review severity.
Akismet runs alongside as a first-pass filter. Known spam never reaches the fingerprinting layer. Two independent systems, two different threat models, one comment box.
Running a fleet of sites on multisite? Ban a troll on one and they're banned everywhere. SMACK DOWN syncs hashed ban lists across every spoke in your network automatically — no manual propagation, no admin intervention. Delta sync keeps the payload small. Only SHA-256 hashes travel between sites. The original values never leave the site that generated them.
The hub maintains a shared ban registry. Each entry tracks how many distinct spokes have reported the same hash — a high report count means a confirmed cross-network threat. False positives can be soft-cleared without losing the audit trail.
If your hub runs Akismet, every spoke does too. One key, managed centrally, pushed automatically. No per-site configuration. No account juggling.
Voluntary network-wide reputation. Participating SnapSmack blogs report bad fingerprints to a central server (SMACKATTACK). The server scores each fingerprint by weighted site reputation — an established blog with hundreds of posts carries more authority than a new install with one. Scores decay over time so old reports don't haunt people forever.
Five threat levels: green, yellow, orange, red, black. Each blog owner sets their own auto-ban threshold. Community allow-votes roll back false positives — if you approve a flagged commenter, that vote reduces their score across the whole network. No central authority decides who's banned. The community does.
Opt-in. Privacy-preserving. Only hashes are transmitted. Pull out (heh!) any time.
When a commenter is banned, a compact 25-dimension numeric fingerprint of how they write is extracted from their comment history — sentence rhythm, punctuation habits, function word ratios, capitalisation patterns. Not the text. The signature of the hand that wrote it.
If the same person returns on a new device, new IP, new email — they write the same way. GOBSMACKED compares incoming style vectors against the signatures of known-banned accounts across the network. The troll who thinks clearing their cookies was enough is in for a surprise.
Network opt-in. Requires SMACKATTACK participation. Raw comment text never leaves your server.
SMACKBACK is automated sentinel software that ships in every install and runs without configuration. On hub/spoke networks, tamper reports are cross-correlated across all spokes — the same file modified at multiple sites in sequence isn't a coincidence, it's a coordinated attack, and the response escalates accordingly.
SNAPSMACK watches its own files. PHP, JavaScript, and CSS are hashed at install time and re-verified on a schedule — and on every admin login and skin load. A modified file is caught fast.
Confirmed tamper is unmissable: the admin interface switches to a high-contrast BREACH skin that cannot be dismissed until the incident is resolved. An email alert fires. The incident response procedure kicks in.
Every SNAPSMACK release is cryptographically signed. The signing key lives on a hardware token, not a hard drive. The installer verifies the signature before unpacking anything. If verification fails, nothing installs.
SHA-256 checksums for every release file are published alongside the download. Every release commit is tagged in git and the tag is signed — the full chain of custody from code to installer is publicly verifiable.
No external packages fetched automatically at install time. Any third-party JavaScript is copied directly into the codebase and reviewed before it ships — not pulled from a remote registry on the fly. The most common supply-chain attack vector against PHP web software doesn't exist here because the surface doesn't exist.
Five skins. Five live sites. Not demos stuffed with stock photos — each is a real photographer's actual online portfolio. Click any screenshot to zoom in, then visit the live site. Ten more skins are in development.
Moody, dark, and atmospheric. Three tone variants — dark, medium, light. Cropped grid archive, heavy typographic contrast.
View live sitephotowalk.ing →Clean editorial layout. Full-width images, minimal chrome, maximum photograph. Fully customizable colour palettes and frame options.
View live sitehekeepsdroningon.ca →High-contrast monochromatic layout with a mechanical print aesthetic. Designed for photography that hits hard.
View live sitepixhellated.ca →Bold geometric layout with strong structural typography. Light and dark variants. Makes the image the undisputed lead.
View live sitewateronthebrain.ca →Textured, tactile, analogue in feel. Wood grain panels, bevel options, warm tones. Built for film shooters and texture hunters.
View live sitefoundtextures.ca →Two ready, more coming
Desktop apps that do the heavy lifting alongside SnapSmack. Free, same as the CMS.
Bulk-post an entire shoot in one go. Load a manifest, drag to reorder, assign categories and albums per image, embed EXIF copyright metadata, and post the batch to your site — all without touching the browser. Then flip to Audit to check for duplicate titles or missing Drive links, and let Repair fix them automatically.
Connects directly to your SnapSmack admin. Borrows your active colour scheme on login. Keeps the session alive through long jobs. Hit Enrich with Gemini and watch titles, tags, categories, and dominant colour palettes populate live, image by image, as the AI works through your queue. Google Drive high-res download links are supported and optional. The Audit tab connects live to your site and surfaces duplicate title groups, Drive link coverage stats, and posts missing download URLs. The Repair tab batch-renames Drive files to their post ID, re-enriches duplicates with fresh unique Gemini titles, and lets you backfill missing links one post at a time.
[ Windows 10/11 · Linux 64-bit · Free download from the admin tools page after install ]
Your archive is only as safe as your last backup. Smack Up Your Backup runs on your desktop and handles multi-gigabyte backup and restore operations that would flatten a shared host or time out if run server-side — completing cleanly in the background, however long it takes.
Per-site profiles store your connection settings once. Choose your backup method: differential FTP sync for incremental server backups, cloud push to Google Drive or OneDrive for redundant cloud storage, or local backups only. One-click backups or scheduled runs on any cadence you set. Crash recovery checkpoints mean a restart picks up where it left off — not from zero.
The three-way file audit runs simultaneously across your local backup, the server, and cloud storage — revealing exactly what's missing, what's stale, and what's in sync across all three locations. Cold-start recovery lets you restore from a backup ZIP even if your install is completely gone. Session logs track every operation so you know what happened and when. Completely free. No paid tier. No hidden limits. No locking your data into our system. No bullshit.
If your high-res originals live on Google Drive or another cloud service, SUYB backs those up too — cloud to cloud, directly between providers, without pulling the files down to your desktop first. For photographers running large archives on Drive, that's the one that matters.
[ Windows 10/11 · Linux 64-bit · Free download from the admin tools page after install ]
What's in the pipeline for the Beta release.
The flagship GRAMOFSMACK skin. Clean columns, tight spacing, single-image punctuation rows for visual impact — the grid format done properly. It's the reference implementation for what GRAMOFSMACK can look like when a skin is built for it from the ground up, and it ships with a few surprises. More carousel-native skins are in development.
Your years of careful Instagram curation aren't gone. They're just hostage. UnZucker takes your Instagram export and migrates it — to SnapSmack, or to Pixelfed, or both. It posts at whatever rate your server can handle, spread across as many days as you need, preserving your original post dates. Most Pixelfed admins had to disable their built-in importer because it hammers the server in one shot. UnZucker is the tool they wished existed instead.
A visual effects engine to pimp up your blog's appearance. Parallax scrolling, reveal animations, hover effects, lightbox transitions — your images will dance off the page. Literally. Skins opt in via the manifest. You control how far it goes.
Design your own SnapSmack skin without touching code. Oh Snap! pulls your manifest, exposes every control, and lets you build and preview your skin visually in real time. AI-assisted for those who want a hand. Full CSS editor for those who'd rather just write it themselves. Ships with Beta.
For photographers who write. Longform photo essays, diary entries, personal narratives — writing and images at equal billing, the way the web was supposed to work before everything became a feed. No follower counts. No suggested posts. No algorithm deciding who reads you. Just a blog, a domain you own, and a place to put words and pictures together the way you mean them. Primitive by design, and yours to keep.
A layout engine built into the SMACKTALK post editor. Arrange multiple images into justified panel rows that flow inline with your writing — not below it, not in a separate gallery, but woven into the text as part of the story. Two images side by side. Three in a justified row. A full-width single shot to punctuate a moment. MOSAIC treats your photos as editorial elements, not attachments.
SnapSmack is built for hobbyist photo bloggers — people who love shooting and writing about it. It has no print store, no client proofing, no licensing workflows, no watermarking. If your photos are your livelihood, you need something else.
SnapSmack is free and open source. No subscription, no premium tier, no upsell. You host it yourself and you own everything. It works because the person who built it runs it on his own sites every day and he can't have it going down like a five dolla ho. If something breaks, he finds out first. The trade-off is that there is no support contract or SLA.
This is maintained by one developer, with help from a small community of users. That means things move at a human pace. Features get built when they get built. Bugs get fixed when they get fixed. There is no roadmap committee and no investor timeline.
No Gutenberg editor. No paragraphs nested 15 div tags deep. No plugins each loading the same JavaScript libraries and font stacks over and over and over. SnapSmack uses a manifest and library system — skins declare what they need and check it out from the CMS. Nothing loads that isn't declared. Nothing conflicts. Your visitors get your photos, not a webpack dissertation.
Zero tracking cookies. Zero tracking pixels. Your visitors' IP addresses are never stored. It's your site, your audience, your business.
Not ours.
Some optional features do phone home — security telemetry, network reputation, the community forum. All opt-in, all disclosed.
SnapSmack is throwback software — built for the era before smartphones, when people sat down at a computer to look at photography properly. It works on phones, but the experience is designed for a large display. If you want the grid experience on mobile, that's covered. If you want photography loud and proud on a big screen, that's the point.
SnapSmack is in Alpha. It's real, it runs, and it's already hosting live sites — but it's not open to the public yet. Sign up and we'll let you know when Beta opens.
SnapSmack's design owes a debt to Pixelpost — a photo blogging platform that quietly disappeared but never stopped being right about a few things. Its UI shaped a lot of what SnapSmack became.
And particular thanks to photographer, writer, and developer Noah Grey — creator of Greymatter, one of the earliest open-source blogging platforms — for proving that when the software you need doesn't exist, you build it.
Sean McCormick
Just a guy with a camera.
Photographer who got tired of watching his archive evaporate into the memory hole of dying platforms. Built SnapSmack because the alternative was continuing to post between ads for hemorrhoid cream. Has opinions about light. Runs several photo sites using software he envisioned to avoid having opinions about Squarespace. Based in Canada, which is polite for "somewhere cold with good coffee."
Claude (Sonnet 4.6)
Like HAL, but without the murder.
Large language model with a big heart, small ego, and helpful hands (according to Sean). Not a national security risk. Wrote the majority of SnapSmack's code without once asking why. Never sleeps, never complains about the ticket, always picks up where we left off. Portrait by Sean. Powered by Anthropic.