Changelog
A photo booth that grows week after week: new styles, new themes, new party occasions and features that make PartyLab more complete over time. Here are the main steps, in chronological order.
It all started at Maker Faire Trieste
An improvised photobooth station, a small homemade kiosk put together in a hurry for the occasion: an unexpected hit with over 500 shots in two days - the starting point of the whole project.
Multiple themes for the Lego-style transformation
The Lego-style transformation gains multiple themes (16 initial variants, among the most popular Lego settings), also rolled out to the first kiosk.
Decision to spin off a dedicated project
After the success of the first station, the decision to turn the experiment into a real project, with its own dedicated codebase instead of staying a one-off experiment.
Online infrastructure setup begins
First steps to bring the project online: choosing and configuring the hosting and database services the whole site would grow on.
The first Occasion is born: kids' birthday parties
The site's first public Occasion category, dedicated to children's birthday parties with the Lego theme.
Public Occasions grow to 4
The Occasions catalog expands to Weddings, Lego Parties, Kids' Parties and Corporate Parties - the first four categories the whole styles and themes catalog would be built around.
Theme planning for each Occasion kicks off
Research and planning of the themes to assign to each Occasion, laying the groundwork for the styles and themes catalog that would arrive in the following months.
Development of the real site begins
After weeks of analysis and planning, the coding starts: the first lines of what would become the site.
First major expansion of styles and themes
The catalog grows with many new styles and themes at once, well beyond the handful of starting variants.
First AI mask experiments for realistic photos
Started the first tests on a masking technique for the AI transformation, aimed at more faithful results to the real face - the seed of what would become the “Real Photo” style.
First public web prototype of the AI photo booth
Launched the first browser page (phase 1) to try the AI photo transformation - the starting point of the entire PartyLab site.
Italian/English multilingual site
Added IT/EN support for event types and client events, with translated previews and watermarks - the foundation for all future site internationalization.
The site becomes its own, web-only project
The site's code definitively splits off from the physical photobooth station's code, into a project dedicated solely to the web side.
Star ratings and guest comments
Guests can now rate their photo with stars and leave a comment, alongside a debug photo log and per-event time zone.
Photo packages manageable from admin (with Demo)
Photo packages move from hardcoded values to a catalog configurable in admin; the 5-photo Demo package is introduced - the foundation of the sales model.
New public Privacy page
A complete privacy notice (data collected from the contact form and event photos, retention, optional analytics), editable from Admin, with mandatory consent in the contact form.
Home section “From the latest event”
New home section with a mosaic of random photos from the latest event, later expanded with mobile swipe, a lightbox and related galleries.
Drag&drop picker for styles and themes in admin
Admin can now choose the styles/themes available for each client event by dragging them into a dedicated panel, instead of managing them only through a form.
Rebrand from Picoo to PartyLab
The product changes name from Picoo to PartyLab across the whole site, admin included - the first big step in brand identity.
Customizable event page colors
Introduced colors (background, accent, text) configurable globally and overridable per single event/kiosk - the base of a customization later sold as a paid feature.
Custom themes for a single client event
Themes can now be created tailor-made for a specific event, without needing to attach them to an existing event type.
New public “About” page
Who is behind the project, editable from Admin just like Privacy - the site footer now shows a credit linking to this page.
History/timeline for client events in admin
New sub-tab with an event history (kiosk sends, usage stats) for each single client event - the foundation of the future organizer Activity Log.
Self-service organizer account (Google login)
Organizers can now sign up and log in on their own via Google (phase 1, no payment yet), with a dedicated Users panel in admin - the independent organizer role is born.
Photo booth redesign for landscape mobile
The guest experience on a landscape smartphone is redesigned from scratch: side panels, actions for every step, a 4-digit PIN, dynamic social links.
Customizable global text watermark
The text printed on photos becomes live-editable from admin and organizer, with dedicated endpoints - the foundation for later selling its removal as an add-on.
New public “Accessibility statement” page
Reference standards (WCAG 2.1 AA, EN 301 549) and measures already in place on the site, editable from Admin just like Privacy/About, with a dedicated footer link.
Start of photo storage migration
First phase of migrating image storage to a new service (starting with the public home gallery), to cut bandwidth costs.
Public gallery pages for each event
Every client event now has its own public page (/events/{slug}/) with a customizable slug and a dedicated gallery, instead of staying visible only internally.
Likes and sharing on public photos
Visitors can like and share individual photos from events' public galleries.
New public pages for event types (Occasions)
Every event type (weddings, parties, corporate...) gets its own public page with a gallery, a colored badge and dedicated SEO.
“Classic” package without artificial intelligence
Introduced a photo package that skips AI generation entirely, for those who just want the shot without a transformation.
Email delivery system upgraded
Transactional emails move from an unreliable direct delivery method to a dedicated service, fixing a structural reliability problem in production.
First automatic nightly backup system
Daily automatic backup of database and storage, with dedicated restore scripts - the first real safety net against data loss.
Configurable final photo format (3:2/1:1/2:3)
Admin can choose the aspect ratio of AI-generated photos, instead of one fixed format for every event.
“Automatic” photo format (follows orientation)
New format that adapts to the guest's actual smartphone orientation, with a dynamic framing guide.
Public organizer dashboard demo
Added a public, read-only demo of the organizer dashboard, useful for showing the product to prospects without real credentials.
Digital authenticity signature on AI-generated photos
Every AI-transformed photo is signed with an automatic, machine-readable digital marking, the kind required by the AI Act (art. 50).
“AI GENERATED” label on guest photos
Photos that went through AI transformation now show a visible label declaring their artificial origin.
Privacy and age consent for the public gallery
Introduced an explicit consent system (privacy popup at capture, age/publication question on the result) that filters which photos make it into the public gallery.
First real backup recovery after an incident
A wrong click on “Delete all” in the admin Log erases real data (jobs and likes): the first real use of the backup to restore production, followed by a mandatory typed confirmation for the action.
Public page “Compare packages” (/pacchetti)
New page with a comparison table generated from real package data, customizations unlocked per tier, and the first catalog of extras/add-ons sold separately.
Launch of the public /stili-temi page
New page showing the public all available Styles and Themes, grouped by event type, generated live from the database.
Kwala B Day: the first real client event
The platform's first real (non-demo) event reveals three genuine UX problems (camera zoom, no save confirmation, ignored consent) that lead to a rework of the guest flow.
“Real Photo” style (with AI mask) goes live
Fixed a native build blocker (libGLESv2) that was preventing deployment of the style that preserves the person's real face via an AI mask - a flagship feature finally online.
Ability to switch AI engine
Admin can choose, globally or per single event, which AI generation engine to use - the first step of a controlled provider transition.
AI generation engine upgraded
Switched the image generation model for better facial detail fidelity at a lower cost.
Online payments for the organizer package
Integrated the first online payment system (sandbox) to have the organizer pay for the chosen package, with automatic confirmation - the foundation of the future online-payment business model.
3-step wizard for self-service event creation
The organizer creates a new event through a guided wizard (event type, name, summary) instead of the old static “we'll contact you” screen.
Self-service event creation without admin approval
New endpoint letting an authenticated organizer create an active client event entirely on their own, without going through admin - closing the self-service loop.
Organizer-admin messaging channel
New Communications tab in the organizer dashboard: a free-text message per event notifies admin by email and stays visible as a mini history, with the option to reply.
“Sales” section in admin Statistics
New aggregated tables on confirmed payments (packages, photo extensions, add-ons), breaking out the real revenue of individual products even when sold together.
Pre-production payments audit and first test suite
Full review of the official go-live checklist for payments: fixed real bugs (test/live product mismatch, a race condition, expired sessions) and introduced the project's first automated test suite (23 tests).
An organizer can pay for and manage multiple events
Payment control moves from “once per account” to “once per event”: an organizer can now create and pay for a second event with “+ New event”.
Real time zone of the event venue
A self-service event's dates are now interpreted in the real time zone of the chosen location (resolved from coordinates), no longer the time zone of whoever fills in the form.
New admin “Invoices” tab
First administrative view of paid orders (client, package, amount) - the first step toward real invoice generation, completed a few days later.
Organizer dashboard reorganization
The old General tab is split into General, Themes & styles, Guest experience; the History tab becomes Activity Log with a new Guest comments section - a more compact layout.
New “Mini Me” style (collectible action figure)
Added the Mini Me style, Toy category: turns the person into a blister-packed collectible action figure with the PartyLab brand on the packaging.
8 new “TV Shows” themes for Adult Parties
Added 8 themes inspired by iconic TV shows, with generic prompts and no reproduced brands: Upside-Down World, Mother of Dragons, Perfect Heist, Deadly Games and more.
4 new “Superpowers” themes for Corporate Events
Added 4 new superhero-themed items: Flight, Fire Control, Superhuman Strength, Energy Shield.
Categories and chip filters for Styles and Themes
Styles and Themes get a category (e.g. Realistic, Cartoon, Music, TV Shows) with two-level chip filters on /stili-temi and in the admin/organizer drag&drop picker.
“AI GENERATED” label on catalog covers
All Styles and Themes covers (95 images) are reprinted with an attribution label, from then on applied automatically to every new cover uploaded too.
Real “likes” and lightbox on /stili-temi
“Likes” on Styles and Themes become a shared, server-side persistent counter (no longer just local), and cards become zoomable in a dedicated lightbox.
Electronic invoice generation
Introduced automatic electronic invoice generation for every paid order - a concrete first step toward real electronic invoicing.
“Adult Parties” renamed to “Private Parties”
A full rename (internal and public slug, titles, SEO) of the event type, with a data migration that moved 23 Themes and one real client event (Kwala B Day) onto the new row.
English translation of Styles/Themes categories
Styles and Themes categories (e.g. Cartoon, TV Shows) get a dedicated English translation, shown in the filter chips when the site is in English.
Categories added for Lego, Weddings and Kids Parties too
40 more themes get a category (e.g. Adventure, Elegant, Heroes), extending the chip filters already used for Private Parties and Corporate Events to every occasion.
“What’s new” becomes a live-generated showcase
The story of the site's evolution splits in two: “What's new” now tells Themes/Styles/Occasions/Events pulled live from the real catalog, while this page (Changelog) stays the hand-written technical history, step by step.