Changelog
Every feature, fix, and improvement — shipped fast, documented here.
Top Management — an executive role that sees the numbers, never the guests
Some people on a hotel's team need the performance numbers and nothing else — no reservation list, no guest names, no way to open a booking and see who's staying in room 214. Top Management is a new role built around that boundary: it can see the Dashboard and Rapports, both built entirely from aggregate figures, and every other screen in the app responds with a plain "you don't have permission to view this screen" instead of quietly rendering a stripped-down version. The restriction isn't just a hidden menu — the API itself refuses booking and guest data for this role regardless of which route is used to ask for it, so there's no client-side trick that gets the names back.
Bridg_ Table — social links on the hero, only the ones you set
A restaurant with an Instagram full of plated shots and a WhatsApp line guests actually book through had nowhere to put either on the widget. Image de marque now has a Réseaux sociaux card — Instagram, Facebook, TikTok, WhatsApp, X, each entirely optional and independent — and the hero shows a small icon for exactly the ones filled in, nothing more. Leave all five blank and the row simply doesn't render.
Bridg_ Table — keyboard access, sharing, a proper loading state
The floor plan was the one part of the widget you couldn't reach without a mouse or a finger — tables lived on an SVG canvas with no keyboard path in or out. They're now real focusable, operable controls: tab to one, see a clear copper focus ring, hit Enter or Space to pick it. The same themed focus ring now shows up consistently on every pill-shaped control in the flow — zone chips, occasion tags, time slots, the party counter, the room switcher. Past the accessibility work: a confirmed reservation can now be shared (native share sheet on mobile, a copied link on desktop) instead of only living in an email, a day with nothing free shows "Complet" right on the date field before you even open the calendar, and the first-load skeleton now traces the actual layout — hero, stepper, fields — instead of two grey rectangles.
Bridg_ Table — availability dots, a photo carousel, and social proof
A round of the kind of small conveniences that separate a booking form from a booking experience. The calendar now shows a dot under any day with at least one open table, instead of making guests click through each date blind; picking a fully-booked day surfaces the next open one with a single tap instead of a dead end. The hero band got a real photo carousel when a restaurant has more than one image, plus an optional rating-and-review-count line next to the star classification — self-reported by the property, since Bridg_ doesn't aggregate reviews itself. And the guest form picked up quick occasion tags (birthday, date night, business dinner, family celebration) that write themselves into the special-requests field instead of asking every guest to type it out.
Bridg_ Table — one floor plan per room, and a wider stage on desktop
Two rounds of feedback on the 2.11.0 redesign, both addressed. First: a restaurant with several physical rooms was getting one combined floor plan, which made no sense — two rooms don't share a coordinate space. There's now a room switcher, in the back-office editor and on the public widget alike, so each room gets its own plan; if a guest already picked a room at the reservation step, the table step locks straight to it instead of showing tables from rooms they didn't choose. Second: the reservation card was quietly narrower than the hero band sitting above it, which is what made everything feel cramped once the stepper grew to four steps — widths now match, the card no longer crowds the hero above it, and the stepper's longest label got trimmed so its rhythm holds at any step count.
Bridg_ Table — a visual pass worthy of the category leaders
A craft pass across the entire public reservation engine, end to end, with the category's best (Resy, Tock, SevenRooms) as the bar rather than a checklist. Nothing about how the widget behaves changed — every screen, transition, and micro-interaction got more considered instead: bolder hero typography, a stepper that actually fills as you progress, warmer floor-plan tables that cast a real shadow and glow softly when picked, icon-led form fields, and a confirmation ticket with a small pulse of its own when your table is booked. It reads as one deliberate product now, not a form with steps.
Bridg_ Table — the floor plan, properly sized for a phone
A floor plan drawn in virtual coordinates has an obvious failure mode on a small screen: shrink it to fit and the table labels and resize handle shrink right along with it, past the point of being readable or tappable. The floor-plan canvas now measures its own real rendered size and keeps labels, the resize handle, and each table's touch target above a readable/tappable floor regardless of screen size — desktop is untouched, since it never needed the floor. The back-office editor's headers and tab list, which used to compress awkwardly next to a button on a narrow phone, now stack and scroll properly instead.
Bridg_ Table — draw your floor plan, let guests pick their table
Table assignment stops being invisible. A new floor-plan designer in Bridg_ Table lets a property draw its dining room exactly as it really is — drag tables into place, resize and rotate them freely, color-code them by zone — and, once it's arranged, choose to let guests pick their own table from that same plan on the public widget instead of getting a silent auto-assignment. Every table shows live, per-slot availability, and the chosen table follows through to the confirmation ticket. Left off by default until a property has actually drawn its plan, so nobody sees a pile of overlapping default tables by accident.
Bridg_ Table — make the booking engine your own
A hotel restaurant is its own brand, not just a room-service line item — so Bridg_ Table now lets it look like one. A new "Image de marque" tab gives the restaurant its own name, description, logo and photo gallery, separate from the property that hosts it, plus six color pickers for the public widget's palette. Nothing is mandatory: every field falls back cleanly to the property's own identity and to the existing Encre & Cuivre theme, so a restaurant nobody has touched looks exactly as it did yesterday.
Bridg_ Table — a booking engine that looks the part
The public reservation widget is rebuilt end to end: a guided flow instead of a dense one-page form, time slots grouped by service the way the category leaders do it, a tactile party-size counter, a real calendar picker, and a confirmation screen designed like a keepsake rather than a receipt — complete with a working "add to calendar" file. It's built entirely in the visual language already established across the marketing site and dashboard, so it reads as one product, not a bolted-on widget.
Bridg_ Table — an activatable module, not a plan tier
Restaurant reservations (introduced in 2.6.0 as a plan-tier feature) are now a module activated per client from a dedicated admin screen, independently of their subscription plan — the same idea as the loyalty program, but for the whole feature. A client without it doesn't see it: no menu entry, no access, not even by typing the URL directly. Testing this surfaced a real gap — the module's read routes weren't checking entitlement at all, only the write ones — now closed.
Restaurant reservations — a new module for in-house dining
A property can now open table reservations for its restaurant, activated per plan the same way the loyalty program is. Guests book through a public widget with no login and no payment step, get an instant confirmation with a self-service link to change or cancel, and the property receives a printable back-office letter for every new, modified or cancelled reservation. The allocation engine assigns the best-fitting table on its own, and falls back to combining two adjacent tables when no single one is free.
House rules on children — adults-only properties, adult age threshold
Two rules that belong to the house rather than to a rate plan. A property can now declare that it does not accommodate children at all, and can set the age from which an occupant counts as an adult. Above that age they enter the room price through the occupancy tier instead of being billed as a child — previously a teenager came out cheaper than an adult even where the property treated them as one.
Dashboard focus — revenue and average rate first
The dashboard now opens on the two figures a hotelier actually reads first. Revenue and average rate get a full-width row of their own instead of being buried among ten identical tiles; occupancy rate and tonight's occupancy are gone from that view. The channel-level sales switch introduced in 2.3.0 has been withdrawn.
Cancellations reach the hotel, marketing references appear within the minute
A cancellation coming from an OTA released the inventory without a word to the property — staff discovered the departure by reading their calendar, or never did. Every cancellation path now notifies the hotel. Separately, opting a property into the marketing references took up to 24 hours to show, and the screen never explained why nothing happened.
Daily production report, property activation, disabled rooms kept out of sight
A production report now lands every evening — the whole portfolio first, then each property, with the day's sales placed on their arrival dates over a rolling 60-day horizon. Super admins can activate or deactivate a property in one click, and a deactivated property genuinely disappears from the booking engine. Disabled room types no longer surface where they cannot be sold.
Child pricing moves to the property, connectivity provider hidden
The child-age policy lived on each rate plan, so eight rate plans meant eight identical grids to maintain — and a forgotten one showed up nowhere. It now belongs to the property, with a per-rate override for the case that warrants it: the meal plan. A simulator shows what a grid produces before it is saved.
Child supplements by age bracket
Children counted towards capacity but never towards price — the ages collected at booking were ignored by every calculation. Rate plans can now carry age brackets: free under 3, half price to 11, a fixed amount beyond, with a cap on how many children are billed.
Bulk update rebuilt, availability and rates sent correctly to the channels
The bulk update screen offered seven flat buttons mixing two independent dimensions, several of them duplicating actions available elsewhere. It is now a scope × attribute matrix with a server-side preview that counts exactly what will be written. Underneath, several defects were sending the wrong availability and rates to the channels.
Audit log, booking filters, marketing references
An activity log now records who did what, per property and across the platform. The bookings list gains date filters and sorting, and properties can opt into appearing among the references on the public site.
Real PDF generation for contracts & proposals, monthly billing option
Contract and proposal PDFs are now generated server-side (headless Chromium) instead of relying on the browser's print dialog, so "Download PDF" always produces a real file directly. Proposals also gain an Annual/Monthly billing-period option for offers structured as recurring payments instead of a single annual sum.
Foreign-currency visibility on the bookings list & reports
Follow-up to v1.13.0: bookings taken in a currency other than the property's own are now easy to spot at a glance, and reports break out how much revenue came from each currency instead of only showing the converted grand total.
Automatic currency conversion for reservations & reporting
Reservations taken in a currency other than the property's own (OTA bookings, corporate, or manual entry) are now converted to the property's currency at the exchange rate in effect at booking time, and every dashboard, report and KPI rolls up the converted figures — no more USD or EUR bookings silently mislabeled as DZD.
Booking engine — correct room count on a repeat search
Fixes the auto-selected room quantity on the booking engine getting stuck on a stale value after searching again with a larger party — the previewed price now always matches the number of rooms actually required.
Branded confirmation emails, corrected KPIs & custom date range
Confirmation emails now pick up each property's own brand colors automatically, ADR and related KPIs are corrected to reflect actual room-nights sold, and the dashboard gains a custom "from / to" date range.
Notifications, Best Offer & exports PDF
Live admin health notifications, a 'Best Offer' highlight on rate plans, PDF export for contracts and proposals, per-occupancy OTA rate configuration, and new Terms/Use Cases marketing pages.
Guides canaux, KPIs analytics & écrans admin
Structured French integration guides per channel, four new analytics KPIs, and four new full admin management screens: emails, proposals, contracts and analytics.
Corporate Booking Engine
A new private booking channel for corporate accounts — admin management, PO upload, its own calendar driven by corporate rates — plus a dedicated channel-availability management page.
Tri des chambres & tarifs par canal
Room display preferences, dedicated OTA rate-plan colour coding, and layout refinements across the calendar and booking-calendar search.
SEO, GEO & site multilingue
Full multilingual routing launch for the marketing site (French / English / Arabic with hreflang), a GEO push for AI answer engines, a public search page, dynamic per-property currency display, and new manual pricing-override modes in the calendar.
Encre & Cuivre : refonte + durcissement sécurité
Full 'Encre & Cuivre' rebrand rolled out across marketing, dashboard and admin, alongside a critical security upgrade (6 high-severity advisories), major refactors, an accessibility pass, and layout performance fixes.
Landing & Performance
Premium redesign of the public landing page trust section, logo visibility improvements, and a full development-server stability fix.
Sync, Billing & Emails
Major OTA sync engine hardening, billing upgrade gates across the dashboard, admin support mode, and automated hotel email notifications.
Reports, Notifications & i18n
Complete Reports page with KPIs and Excel export, real-time booking notifications with sound, No Show workflow, full booking engine internationalisation (FR / EN / AR with RTL), and a detailed help documentation page.
Dashboard, Booking Engine & Admin
Full dashboard overhaul with KPI tooltips, revenue chart, and Excel export. Complete booking engine redesign with a warm design system. SUPER_ADMIN panel, user management with invitation emails, and deep OTA connectivity.
Initial Release
First production-ready release of Bridg_. Core booking engine, bidirectional OTA integration (Booking.com, Expedia, Agoda…), calendar with live pricing, property media management, and all foundational backend APIs.