Back to Portfolio
Real-time photo processing for live events

Photobooth Platform

Challenge

A photobooth rental company had an MVP built in plain PHP and HTML/JS with no framework, no live image loading, and performance unsuitable for live events with high photo volumes. Freshly captured photos weren't displayed in real time, the codebase wasn't maintainable, and the frontend lacked the reactivity needed for a smooth booth experience.

Solution

We rewrote the platform with a Laravel backend and Vue.js frontend. A Node.js script continuously scanned the target disk for new images captured via a WiFi-enabled SD card. On detection, it notified the Laravel backend, which processed each image — generating thumbnails for fast preview and overlay-composited versions for selection. Once a photo and overlay were chosen, Laravel generated the final full-resolution image and dispatched a PHP print command directly to the connected printer. The frontend received real-time updates via WebSocket, displaying new photos instantly without any manual reload.

Impact

The platform replaced a fragile MVP with a robust, maintainable application capable of handling high-volume live events. Real-time image delivery and instant print dispatch gave booth operators and event guests a smooth, responsive experience. The Laravel/Vue stack provided a clean foundation for future feature development.

Technology Stack

Vue.jsLaravelNode.jsWebSocketsPHP

Project Overview

This project involved rebuilding a photobooth software platform from the ground up for a company that rents out photobooths — including hardware, personnel, custom overlays, and software — for corporate events and live occasions. The existing MVP covered only the bare minimum and was not fit for real-world, high-volume use.

Key Features

  • Node.js disk watcher detecting newly captured images from a WiFi SD card in real time
  • Laravel backend for image ingestion, thumbnail generation, and overlay compositing
  • WebSocket notifications pushing new images to the Vue frontend instantly
  • Overlay selection with backend-rendered preview images (optimised resolution for speed)
  • Full-resolution image generation with selected overlay on confirmation
  • PHP print command dispatched from Laravel to the connected event printer

Technical Highlights

The core challenge was achieving real-time responsiveness without polling. The combination of a Node.js file watcher and a Laravel WebSocket broadcaster meant the frontend was always up to date the moment a photo landed on disk. Thumbnail generation on the backend was essential to keep the frontend snappy — loading full-resolution images in a live event context would have caused noticeable delays. The Laravel/Vue stack replaced an unmaintainable plain PHP/JS codebase with a clean, framework-structured application ready for future extensions.

Ready to Create Something Extraordinary?

Let's discuss how we can help solve your challenges and build something that drives real business value.

Get in touch