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

1

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.

2

View your gallery

Media items are displayed with their processing status. Hide, unhide, or mark favourites as needed.

3

Launch the slideshow

Click Play to view your media in a full-featured presentation with fullscreen, keyboard, and touch navigation.

4

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.