About LightBox
Create, manage, and share beautiful media slideshows — on hardware you control.
LightBox is a web application designed to make the creation, management, and sharing of media slideshows both simple and elegant. Whether you're a hobbyist archiving cherished memories, an artist showcasing a portfolio, or a developer exploring a full-stack media pipeline, LightBox offers a modern feature set built on Flask, Celery, Redis, FFmpeg, and Next.js.
Why try LightBox?
Simplicity first
An intuitive interface for uploading, organising, and playing your media — no technical knowledge required.
Versatile media handling
Seamlessly handles images, videos (MKV → MP4 conversion), and audio files (M4A archival transcoding).
Optimised performance
Background processing keeps the UI snappy while FFmpeg handles demanding conversion tasks.
Learn & explore
A real-world example of Flask + Celery + Redis + FFmpeg wired to a Next.js frontend.
Save 98% — the cloud tax is real
Disk drives are extraordinarily affordable; cloud storage is not. Here's a side-by-side for 20 TB over five years:
LightBox on your own hardware
- ~$100 / month — 20 TB usable, 5-year warranty
- Your data stays on hardware you control
- MKV → MP4 conversion included, free
Equivalent cloud storage
- $1,800 – $2,100 / month for the same capacity
- $108,000 – $126,000 total over 5 years
- Endless upsells for features we include free
Why this makes sense for everyone
For photographers & creators
- 98 % savings vs. cloud providers
- Complete control of your media library
- No more "storage full" notifications
For our community
- Profits reinvested into computer education
- Computer recycling centres run as non-profits
- Local tech jobs, not Silicon Valley mansions
Getting started
Upload your media
Select images (JPG, PNG), videos (MP4, MOV, WebM, MKV), or audio (MP3, WAV, M4A, FLAC). Create a new batch or add to an existing one.
View your gallery
Media items are displayed with their processing status. Hide, unhide, or mark favourites as needed.
Launch the slideshow
Click Play to view your media in a full-featured presentation with fullscreen, keyboard, and touch navigation.
Manage & share
Rename batches, add files, export data, or generate public share links to showcase your collections.
MKV file uploads
LightBox accepts MKV files. Because not all browsers play them natively, we automatically convert them to a universally compatible MP4 (H.264 video, AAC audio) in the background. You'll see a “Processing” status while conversion runs — the original MKV is preserved.
Typical FFmpeg command:
ffmpeg -i [input.mkv] \
-c:v libx264 -preset medium -crf 22 \
-c:a aac -b:a 128k \
-movflags +faststart -y [output.mp4]Archival audio quality (M4A)
Uploads like M4A, WAV, or FLAC are transcoded to high-quality M4A (AAC) using libfdk_aac when available — ideal for playback and long-term archival. MP3 and OGG are stored as-is to prevent re-encoding quality loss.
Typical FFmpeg command:
ffmpeg -i [input_audio] \
-c:a libfdk_aac -vbr 5 -ar 48000 \
-y [output.m4a]AI collaborator
LightBox was built in close collaboration with AI language models (Google Gemini and Anthropic Claude). The AI contributed code suggestions, state-management patterns, and problem-solving — particularly for the slideshow viewer and the Next.js frontend rewrite.
Ross is the one who integrates, tests, and brings it all to life in the actual application. Teamwork makes the dream work.
Open source & contribution
LightBox is open-source and a great educational showcase of Flask, Celery, Redis, FFmpeg, Bootstrap, and modern JavaScript. Dive in, experiment, and contribute!
View source on GitHubExplore the codebase and clone it.Read the READMESetup instructions (Flask & Docker).How to contributeLearn how you can help improve LightBox.Report an issueYour feedback is invaluable.Primarily developed by Ross Nesbitt. Built on the shoulders of Flask, Celery, Redis, Bootstrap, Jinja2, FFmpeg, and Next.js. A massive thank you to their communities.