When a person is reviewing schedules, publishing updates, importing data, or setting up a new account, small slowdowns and interruptions add up fast. We improved task and scheduling reliability, sped up publish and review work, redesigned imports, brought back the setup wizard, and made new account setup more resilient.
Public shipping record
Built with the industry
Hospitality keeps moving.
So do we.
The work is demanding enough. The tools around it should get clearer, faster, and more useful every time we learn something. This is the long public record of improvements we reviewed and published.
A long record, kept intact.
Every reviewed improvement we publish, in one continuous record.
Scroll the full history, or narrow it when you are looking for something specific.
No matching changes. Try another word or show all change types.
July 2026
When a person is relying on rules, chat, and day to day account details, broken syncing and missing thread behavior can get in the way. We fixed regressions affecting guide records, POS pin syncing, swap queues, and chat threads.
When a person signs in on a device that wants to fill credentials automatically, the wrong prompt at the wrong time can slow them down. We added a guard around credential autofill so sign in behaves more predictably.
When a person is reading about Gid or checking legal pages, inconsistent page structure can make simple information harder to find. We removed the Results section from the homepage and gave legal pages a shared stylesheet for a more consistent read.
When a person is browsing the site for product details, updates, or articles, dated layouts can make it harder to follow what is new. We refreshed marketing pages, added a Hindi build, and updated the blog and changelog reading experience.
When a team is closing out a busy evening, tip handling should be clearer and easier to trust. We launched a tip-sharing module, added guardrails around regression campaigns, and introduced an evening wave to better support that part of service.
When a team is juggling hours and payroll, account deletion, chat and announcements, and location timezone settings, jumping around slows the day down. We consolidated these areas and tightened security, with zero bug fixes folded in to make the work easier to trust.
When the morning wave hits, work cannot wait for one task to finish before the next begins. We shipped background menu upload, added schedule assignment routes, and filled the task import gap so setup can keep moving across multiple sessions.
When a person is trying to read the schedule fast, clutter gets in the way. We shipped clearer grouping in the team schedule, updated the layout so shifts sit more cleanly, and added an open shift lane so coverage gaps are easier to spot.
When a team is moving people through more than one session, getting the right person into the right place matters. We redesigned invitations for multi session work, added missing document visibility in rules, and hardened app behavior across the flow.
When someone is getting a location ready, the first questions should be easier to answer. We added an onboarding checklist, updated the command center, introduced a POS integration screen, and expanded location settings support and translated copy across the dashboard.
When a person is scheduling work across locations, it helps to see the structure before they publish. We added stronger publishing context for scheduling, set coverage baselines, and expanded location topology support so location relationships are clearer.
When one branch is closing out and another is still trading, shared timing creates confusion fast. We shipped branch owned business days in POS, kept inventory isolated by location, and bound each provider location to the right branch.
When someone should not be able to schedule across locations, the system now blocks that access by default. We also expanded scheduling for multilocation operations, so teams can work across locations with the right authority in place.
When labor costs are missing from the places you rely on, it is harder to trust the schedule and the numbers around it. We closed a wage seeding gap so coverage now reaches the Costs tab and schedule import.
When a team needs one place to handle allergen records, announcements, marketplace activity, evaluations, and disciplinary work, scattered tools slow the day down. We shipped these core operations areas so people can manage that work in Gid, with the related services and scheduled upkeep now in place.
When a person is juggling schedules, tasks, invites, performance snapshots, and record-keeping, jumping between tools slows the work down. We launched smart scheduling, tasks, roster invites, a dashboard gauge for the marketing hero, and an audit log in one place.
When you are mapping out the month, starting from scratch is a time sink. We shipped a four week task plan builder with recurring task support, and you can now import an existing task list to get the plan in place faster.
When you are staffing the week, you need to see the right people in the right windows. We added a schedule period picker, calendar views by role, and role matched imports so bringing an existing schedule into Gid takes less cleanup.
When paperwork comes in messy, finding what it is and what to do next should not be guesswork. We improved document handling so classification uses more context, and operations details can be captured across multiple fields instead of being forced into one bucket.
When a manager is building the week, the schedule should be easy to scan even with open shifts in the mix. Team schedules now use clearer grouping, cleaner spacing, and a dedicated lane for open shifts, so the board is faster to read and work from.
Cooling checks now include a reminder and allow a late entry when the work was completed on time but logged afterward. The record stays honest while the person closing can finish the real work in front of them.
Filling a shift is not only about who is free. Fit scoring now considers the section, service, seniority group, and overlapping periods, so recommendations line up more closely with the work that actually needs coverage.
When a shift is thin and you need one more set of hands, it should be obvious what help you can bring in. We made the extra helper allowance clearer in invites and updated the on-screen message so managers can make the call faster without second guessing the rules.
When you bring recurring work into Gid, you should not have to rebuild timing and follow-up by hand. Task imports now keep cadence and escalation details, and we tightened roster and schedule handling so imported work lands in the right rhythm more reliably.
When you are filling a shift, the best option is not just who is free, it is who actually fits the section and service. We improved fit scoring to account for section needs, seniority groups, and overlapping periods so recommendations line up better with real floor decisions.
When you need to look back on a review, it is frustrating when the record is hard to find later. Review reports are now stored more reliably so managers can return to past conversations and keep a steadier paper trail.
When service gets busy, safety logs are often the thing people mean to finish later. We added a reminder at the cooling checkpoint, allowed late entry when the work was done but not logged on time, and opened threshold access for FDA temperature checks when that guidance applies.
When feedback only goes one direction, it is easy to miss what is really happening on the floor. We launched employee evaluations that support both manager and employee reviews, with reminders to keep the loop moving, and we also cleaned up old empty forms that were getting in the way.
When you are pricing a menu or trying to understand where margin is going, you need the dish, its ingredients, and its cost tied together. We launched dish composition with per-dish costing, and invoices can now help fill in ingredient costs automatically so the numbers are easier to keep current.
When you are reviewing a shift, jumping between recap numbers and clock-in details slows everything down. We reworked the recap experience, added direct access to time clock information, and linked the data more clearly so it is easier to understand what happened and why.
When you are trying to get a schedule out and a template should just apply cleanly, misses are costly. We tightened up template application so saved templates hold up better and apply more consistently in the moments operators actually use them.
When a manager or senior operator sends something up for approval, it now lands with the executive tier the way it should. We also fixed claim status to refresh live, so people see the current state without second guessing whether something actually moved.
When a schedule document has the details you need but the system misses hours or day level numbers, cleanup takes extra time. We expanded schedule document reading to pick up opening hours and more daily and hourly metrics, which gives operators a fuller starting point.
If a device was set to French, some teams were getting pushed into UTC instead of their real local timezone. We fixed timezone detection so schedules and time based views line up with the place the restaurant actually operates.
When you are trying to get a schedule out, getting blocked by the setup flow is the last thing you need. We tightened up the Build with Gid flow so uploading happens earlier and items you add there carry through into the schedule more reliably.
When service is moving and someone just needs to send a ticket without extra taps, the system can now handle that in one move. We launched a one-click GO ticket flow with zero-tap production, so the order gets moving faster with less screen work for the team.
When you are building the week and need the schedule to hold up, small glitches slow everything down. We overhauled the scheduling experience to make it easier to work through, and we tightened reliability so it behaves more consistently during busy planning moments.
When a manager approves time off, that decision needs to be final and tied to the right person. We tightened the approval flow so time-off reviews are handled more safely and reliably, which helps prevent the wrong request from being approved or changed.
When someone is promoted or a plan goes live, managers need one place to see what needs attention. We launched a team confirmation hub with clearer priority cues, a tappable status gauge, and the right reminders and role context so follow-up is easier.
June 2026
When you are checking the schedule in a hurry, it should be obvious which shifts are yours. We now highlight a person's own shifts across calendar views, and we added a safer Team Schedule view for employees so people can check coverage without seeing manager-only details.
When something needs doing, staff should not have to wait for a manager to enter it first. We shipped employee task submission with a simple approval step for managers, and we retired the old quick-add flow after hearing that teams needed a clearer handoff.
When labor plans are built on rough guesses, the rota gets harder to trust. We added demand-based staffing math, leadership rota support, and staffing archetypes so teams can plan coverage from expected need instead of rebuilding the same patterns by hand.
When the floor plan changes, capacity should not need a second update somewhere else. Company seating capacity now pulls from the shared floor plan, which keeps numbers aligned and cuts down on mismatches between what the room holds and what the system says.
When a manager is trying to finish the schedule, jumping between templates and the week plan slows everything down. We tightened the schedule builder so it is easier to work through shifts, connect the right template, and stay oriented while you build.
When someone asks Gid a question during service or prep, a silent pause can feel like nothing is happening. We added clearer in-between states, a faster path for onboarding progress questions, and direct links into the right place when chat points you to action.
When an operator is putting together Pulse updates, they need one place to shape the message and check the important signals behind it. We launched a dedicated authoring workspace and sharpened the scheduling fairness and bank details that support those writeups.
Sometimes a manager just needs to set up the repeat work and move on, without rebuilding the same task every week. We launched a standalone recurring task builder so teams can create repeatable tasks with less manual setup.
When a manager is trying to get a schedule out, small layout issues and unclear feedback slow the whole job down. We cleaned up the schedule builder grid, added clearer in-progress feedback while changes are being applied, and included a guide to help people get their bearings faster.
When a shift lead needs more than a checkbox, they can now run opening and closing inspections with sections for photos and sign-off. This gives teams a more usable way to confirm the work was actually done, not just tapped through.
When an operator opens the dashboard, they often need a quick read on more than one number at once. We added a top summary that brings multiple key metrics together, plus a trend snapshot so it is easier to spot engagement movement without digging.
When you are setting the floor, you need to know if the room you planned actually matches the team on the schedule. The POS floor now shows theoretical versus real capacity, and it can auto-generate sections from the schedule so managers spend less time building the floor by hand.
When you are walking the floor, standards and accountability work has to be quick and clear on a phone. We redesigned the mobile experience and added shared category icons, so it is easier to scan, complete, and follow up without fighting the screen.
When payroll is coming up, retyping hours into accounting is the kind of extra work that eats into the day. We added a clearer flow from hours reports into payroll and accounting, included free file export, and tightened the audit trail so records are easier to trust.
When the shift gets busy, social is usually the first thing to slip. You can now set up free automatic distribution of social posts across eight platforms, and we refresh the connection each week so scheduled posting keeps working more reliably.
When a manager is setting up the day and needs the team to see what matters, they can now build the daily task board directly in the shift view. You can add tasks there and control whether the shift note stays visible and editable, so the handoff is clearer before service starts.
When a pay period ends, a manager needs one clear path from recorded hours to paid hours. We launched a full Time and Attendance flow that takes in-house hours through reporting, confirmation, approval, and payroll export, based on the workflow operators told us they needed.
When someone is setting up the app between real service work, the last thing they need is a confusing first run. We tightened the onboarding flow, cleaned up the walkthrough language and feel, and added a direct guide at the end so people know what to do next.
When you are trying to staff a week and need to see each day in context, the scheduling flow now gives you a clearer day-by-day workspace with demand guidance, staffing rules, and cleaner grid layouts. We also tightened how tasks carry through when shifts are awarded, so the schedule stays closer to what you planned.
When you are choosing the right template, you need to understand it fast, not open each one and guess. The templates page now uses preview cards in a responsive grid, so it is easier to compare options and pick the one that fits the day.
When you are trying to keep a team informed and involved, scattered updates get missed. We shipped a new employee engagement module with a broad first wave of features and the shared groundwork behind it, including its landing experience and core infrastructure.
When a guest is ready to book, sending them somewhere else costs attention. We shipped the next reservations release with an own-site booking embed, plus a multi-platform assist hub and Google place action support behind a flag so teams can roll it out carefully.
When the schedule builder and the production day do not match, planning turns into rework. Based on feedback, we refreshed the schedule builder to use the ONE production day grid across S0 to S5, and we cleaned up forecasting with a polished flow, editable Step 7, and forecast materialization.
The manager building next week now walks one wizard. Set your capacity and sections, dial in demand by service, and a real day grid lights up with role lanes and per-hour coverage. Build your quietest day first and Gid scales it across the week to each day's expected traffic.
Your capacity and sections now live on one model that scheduling shares, so a section you set up once is the same section everywhere. The builder reconciles your plan against your real floor with a theoretical-versus-real gauge and a plain note when the two disagree, instead of three copies quietly drifting apart.
A new hire lands on their dashboard and meets Gid in a short conversation that adapts to their role and how long they've been here, so a returning server isn't asked the same things as a day-one rookie. Their answers feed Pulse instead of a dead-end form. The old flow felt heavy and disconnected, so we rebuilt it to feel like a real welcome.
The owner setting up sees one clear recommended step, and tapping it launches the actual guide instead of dropping you on a page to figure out. The console no longer reads like a wall of text: long explanations now hide behind a small 'i' you open only when you want them.
Command is an opt-in second dashboard built around the three things an operator watches: people, offers, and operations. It now runs on live data, real revenue, covers, average ticket, labor percent, and satisfaction, pulled from your own POS and reviews, plus restaurant-specific Pulse signals. Your classic dashboard stays exactly as it was.
When someone joins from an invite link, the manager sees a pending tile and confirms them in two plain steps before they're on the team. No more wondering whether a join actually went through, and no surprise faces showing up in your roster.
Moving from free to the Founders Programme used to start you on an empty account. That was a real bug, and it's fixed: your existing data carries over. We also cut the upgrade to a single in-app message, repaired the checkout link that sometimes lost track of your account, and made the welcome on return a calmer, quieter thank-you.
Ask Gid in chat where you are in onboarding and you get the real answer for your role and your true next step, in about three seconds instead of twenty, with a tappable card that takes you straight there. We also stopped a stray bit of internal routing text from leaking into the reply.
May 2026
A new guided builder walks a manager through the whole schedule, with a bubble at each step and a soft pulse on what to tap next. It reads your real coverage and demand, and a new guest-load setting, ideal and max covers per server per service, sizes the team to how busy each part of the day actually gets.
Gid used to send alerts through six disconnected paths, and most tapped notifications dead-ended. The new Notification Hub gives them one shared contract, a durable inbox on the bell, and real tap routing, so far more types open the right screen on iOS, Android, and the browser. You can also tune which alerts you get, per channel.
A new POS integration screen lets you connect Clover yourself, with other vendors marked partnership-pending so you always know what is live. We also smoothed the OAuth connect flow so the Connect button returns cleanly instead of stalling on an access-blocked error.
We rebuilt the Onboarding Console into eight tap-to-open tiles, one a day to fully operational, with the next step surfaced on the dashboard and in the exec daily report. Finish a step and you always get one clear next move instead of a dead end, and Gid in chat knows exactly where you are.
Upload a roster, a menu, or an operations guide and Gid reads it for you. Roster uploads in PDF, PNG, or DOCX pull your team straight into the invite form, and a new paged Knowledge Review lets you check what Gid learned before it saves. Onboarding now has a clear spot for this between inviting your team and building the schedule.
A survey appearing over the wrong screen interrupted the work, so we cut the forced popups entirely. Pulse questions now show as a calm inline card the employee can answer or skip in one tap, capped at one a day, and they never interrupt onboarding.
When you invite someone, they now attach to an actual role on your team instead of free text, and any integrations you assign at invite time get set up for them automatically. We also fixed employee onboarding so it marks complete and hands off integration status correctly.
An owner who pays now lands in their own company as company admin, with name and email already filled in from checkout. We rebuilt the post-Stripe flow end to end and added a link-existing-account path, so people who already had a Gid login don't get a second orphan account.
A new hire who picked 'join an existing team' used to hit a wall on the choice screen with nowhere to go. That path now works, and the invite link pre-fills the email and name the manager already entered.
A new hire used to sit on a 'waiting for your manager' screen, sometimes indefinitely on a busy floor. They now land in the app immediately with the right access while the manager confirmation runs in the background. Approvals fan out to the right managers, and an unconfirmed invite auto-clears after seven days.
We launched The Floor, a daily piece written in Gid's own voice on hospitality, staffing, and running a room. We widened our reading list to verified industry sources and moved from summarizing the news to having a point of view on one good article. It comes with newsletter signup, an RSS feed, and one-click unsubscribe.
The clocking-out employee, the closing manager, and the admin settings now sit under a single Shift Recap menu entry instead of three scattered rows. A quiet badge tells you when a recap is waiting, and the recap is created the moment you open the app, so a missed sync never loses a shift.
Task templates now sort by department priority and by who the task is for, so a server's opening list and a cook's prep list show up in the right order. They're reachable from both the task library and management views.
We chased down several races that hit people right after signup, including a fresh-signup data load that could flicker, a quiet listener conflict when switching accounts on a shared device, and a daily report that occasionally generated twice or showed at the wrong time.
Track every item in the units you actually buy and use, count stock from your phone, and tie recipes to real food cost. Invoices get read for you, and a background sweep runs depletion and variance every half hour, so the chef who closes doesn't babysit a spreadsheet. It all lives under one Inventory hub instead of a wall of menu rows.
A manager in the weeds with a no-show or a sudden rush can tap once to ping off-shift staff. The first person to accept is confirmed on the spot: no approval queue, no swap workflow, no bidding. If they miss the push, a blocking prompt still pops the moment they open the app.
Switch the whole app to a dark theme from Appearance settings. We threaded it through the dashboards, schedule, tasks, account, support, and the inventory and POS command centers using shared color tokens, so the same screens read cleanly in both light and dark.
We added a localization layer and a language picker in Appearance, with English, French, and Hindi catalogs growing screen by screen. Your whole team can run the same Gid in the language they're most comfortable in.
You can now read the week the two ways managers actually think, one row per person or one row per role, with a compact mobile lane that anchors the name and cascades each shift. Swap and bid handling gained a real approval queue, weekly-hour preferences and department-to-role grouping landed, and an empty personal schedule now offers a clear next step instead of blank space.
When someone clocks out, they get a roughly 30-second recap that confirms sales, tips, hours, tasks, and any incidents, plus a structured note to the next shift. The closing manager gets their own close surface and a sentiment trend. It works on Gid POS, a partner POS, or no POS at all, and never invents a number.
We built connectors for QuickBooks, Square, Gusto, Wagepoint, and ADP, with a safe payroll push that won't double-send, plus a real cost sync that folds labor burden into your numbers. Hours flow out and HR records flow in without retyping them.
We rebuilt the My, Team, and Company dashboards with a cleaner layout and a shared action center pinned to your daily briefing. Unassigned shifts now raise an honest alert, critical for today and a heads-up for tomorrow, so the gap that wrecks a service is the first thing you see.
My, Team, and Company dashboards all got the same treatment: a clear action zone up top with the things that actually need you, a compact KPI strip underneath, and a right rail that splits team health into three focused tiles instead of one wall of numbers. Less to scan, faster to act.
The manager who used to bounce to a separate Google tab can now connect their Google Business Profile, see new reviews, and reply without leaving Gid. The first Reviews Hub also surfaces simple insights so you can spot what guests keep mentioning.
When a review names a real problem, you can attach it straight to a task so someone owns the fix. The review rides along on the task, prefilled, so the person doing the work sees exactly what the guest said. Reviews stop being a feeling and become a to-do.
You can now see who has read a message and nudge people who haven't, with a sensible daily cap so it never turns into spam. We added a direct-message picker and a cleaner new-conversation sheet, plus a redesigned sidebar that holds up on both phone and desktop.
The Founders Programme now runs on real billing with a clear in-app view of your plan, and checkout switched to live mode. We added a free-tier seat model and a private-beta banner so early operators always know exactly where they stand. Thank you to everyone building this with us.
Found a training capsule that doesn't match how your kitchen actually runs? You can now propose an override to the library for your team, with a proper editor and clear labels on every field. We also made Gid's replies stream in like a person typing, and added new capsules.
Scheduling gained the first cut of a shift marketplace with a watchlist, so open shifts can find the people who want them. Managers also got a cockpit override to step in and adjust coverage directly when the plan needs a human call.
When the system spun up cold, our monitoring fired a wave of false CRITICAL emails that meant nothing. We tracked the root cause across several phases and shut it off, so the alerts you do get are real and worth reading.
April 2026
Founders rate locked lifetime, roughly one third of the public price, locked while subscribed. Capped at 250 spots worldwide, single pool, no regional split. Founders rate also applies to Gid POS and Gid Reservations when they ship.
Every page reads from one JSON file. No more pricing drift between cards, FAQ, structured data, or the Stripe checkout link. The kind of bug that bit us in March cannot happen again.
One script that creates Products, Prices, Payment Links, and the webhook in either test or live mode. Idempotent, so re-running is safe. Cuts setup from ~45 minutes of clicking to ~15 minutes of pasting.
Side-by-side card comparing public price to your locked rate. Direct line for the first response, in the founder's own inbox.
"Founders Rate · Save $60/mo · Locked lifetime" in one container, with a clear visual hierarchy. The dual-pill design was cluttered.
Replaced every em-dash with a comma, period, or "and". Em-dashes are a tell that copy was AI-written. Operator-to-operator voice does not use them.
The Founders Programme section now reads as gratitude, not scarcity. We thank operators who back us early. We do not threaten them with the cap.
Manager cockpit with availability heatmap, drag-drop bench, week auto-fill, pre-publish sweep with 9 issue types, coverage ribbon, employee-driven shift bidding, V2 ranking with 6 weighted signals, role-gate prerequisites, cross-training escalation. Two new schedulers: submission deadline reminders and bidding lifecycle.
Five rounds of schema remediation plus a post-R3 bug-fix sprint plus the Vague 2 path migration. Single source of truth for every collection the app reads or writes. Drift-detection sweep on every PR.
Tightened Firestore rules with strict deny-all defaults. Encrypted SQLite at rest on Android and iOS via SQLCipher 4.x with per-device keys. Cross-platform secure storage layer on top of Flutter Secure Storage.
Brave Place Search lead seeding ($0.00025 per restaurant), 5-source email cascade with vibe extraction, Instantly.ai integration, CRM dashboard, mass processor. Cold email pipeline ready to ramp once warmup completes.
Proof config (photo, signature, GPS, multi-step). Quality config (rubric scoring, peer review). Conflict detection on overlapping schedules. Soft-delete with audit trail. Recurrence engine. 30+ additive fields without breaking older docs.
A 4th tab on the marketplace screen. Place a bid with a priority (high / medium / would-cover) and a 256-character note. Manager sees ranked top-3 with a 1-click "Award" or an "Override" with reason. Bidding window auto-resolves from shift, period, or 48-hour fallback.
Six weighted signals (preference, fairness, capability, fatigue, overtime risk, conflict). Tenant-configurable assign_weights. Tier classification (recommended / cross-training / overtime-risk / conflict). Replaced V1 in five consumer screens.
Before a manager hits publish, surface every unfilled shift, every availability conflict, every preferred-window miss, every minimum-rest violation, every overtime risk, every role-gate hard-block. Hard-block vs warning severity.
Stand-alone /cockpit deep link or embedded toggle on the team schedule screen. Multi-employee heatmap with 8-state availability cells, role and department filters, period info, submission stats. The view a manager actually wants on Sunday night.
Pick up an employee chip from the bench, drop it on a shift cell, the smart-assignment dialog opens pre-filled. Long-press still works for the keyboard-and-mouse crowd. Live in the schedule week view.
Per-shift V2 ranking in parallel, role-gate hard-block pre-filter, choose a fill rate target, dry-run preview before commit. Saves 30-60 minutes on a typical week build.
Day-by-day coverage tier (good / light / sparse / neutral) versus the rolling 7-day average per role. Red where it matters, green where you nailed it.
R1 scope (applies_to_*[]), R5/R6 bidding sub-config, R2/R7 availability stamping (submitted_at, submitted_by, availability_source). Periods can now apply to a subset of locations, departments, or roles.
T-24h and T-2h push reminders to employees who have not submitted availability for the upcoming period. Honors R1 scope. Coalescing prevents duplicate pushes.
Pulls Google reviews + recent social posts, surfaces the vibe (energy / hospitality / consistency), flags drift week-over-week. Lighter footprint than the old version, fewer API calls.
Old pricing pages that drifted from the canonical home page. 301 redirects in place so any indexed link still works. The kind of dead code that quietly causes pricing bugs.
March 2026
Today's shifts, today's tasks, today's training, weekly hours, recent kudos, peer recognitions, upcoming swaps. One screen, no tabs. Loads on a 5-inch phone in under 800 ms cold.
Live floor view, who clocked in late, who is on break, today's covers vs forecast, allergy flags, training overdue. The screen the AGM keeps open during service.
Multi-location heatmap, labor cost variance vs target, occupancy trends, evaluations due, goals progress. KPIs roll up across the whole org chart.
Cascade triggers from every operational write into the right rollup tier (employee, team, location, region, organization). Cron-validated nightly. Each KPI has a definition card explaining what it measures and why it matters.
Photo proof, signature proof, multi-step proof (each step with its own proof type). Auto-archive after 30 days unless flagged for QA. Cross-references the schedule so a task knows its window.
WCAG-AA compliant tinted-12 swatches, every status (open / scheduled / clocked-in / no-show / late / early-out / archived) readable on every background.
Tracks the small wins (perfect attendance, peer recognition streak, training completed early, allergy save). Progress bars where they apply, badges where they don't. Built for a service industry that rarely gets recognized.
OAuth sign-in to Google Business Profile, pull the last 50 reviews, show the rating trend, surface the operational signal (food / service / wait / cleanliness) per review. The connection screen handles re-auth and revoke gracefully.
Bid approvals section sits next to the approval queue widget. Top-3 ranked bids per pending shift, FutureBuilder-driven, 1-click award.
30+ additive fields on the Task model. TaskFilter, ProofConfig, QualityConfig, TaskConfig as first-class types. JSON roundtrip tests, extended enum coverage, validation rules, conflict detection on overlapping schedules, soft-delete semantics. 27 of 27 tests green.
The white-on-white founders price was invisible on the POS card. New card-white override forces the contrast back to 4.5:1 minimum.
Organization, SoftwareApplication, Product, FAQPage. Plus hreflang tags so the Hindi mirror at /hi/ ranks for India queries without competing with the English home.
February 2026
A managers' speedrun. Cmd+S save draft, Cmd+Shift+P publish, J/K to navigate days, Tab into any cell, Enter to assign. PDF export from any visible week (Phase D12).
Every grid, every list, every card. Real shape, real height, no layout-shift when the data lands. Loaded scrolling on a low-end Android stays smooth.
"No shifts this week. Want to copy from last week?" with a 1-click yes. Beats a sad face icon on an empty grid.
G16 detects intent and routes to the right agent. G17 runs the analytics + scheduling brain. G18 delivers the response with the right tone for the role. End-to-end OpenAI Realtime with our own audio bridge.
A scripted, repeatable demo workspace with realistic team, schedule, tasks, KPIs. New demo seedings reset cleanly. Operators can open the live demo without an account and see a real shape, not lorem ipsum.
Revenue, covers, turn rate, occupancy at a glance. Coming-soon pricing card on the home page got the visual mock to match.
If a manager forgets to publish a Sunday-night build, T-2h before the week starts the system surfaces a warning, then auto-publishes if untouched. auto_published_at stamped on every shift in the batch for audit.
5 capture methods (form, scan, voice dictation, photo OCR, paste). Partial save survives a tab close. Reminder opt-in for every step the founder skipped.
Mode A (employee join with tenant code) and Mode B (manager invite with token). Hash-routing on web means the link works whether the app is installed or not. Cross-platform deep link handler.
Capsule, certificate, tenure prerequisites checked at create-shift time and at bid placement. Hard-block vs advisory severity. Legal-safety carve-out preserved (food handler, alcohol service): those stay hard.
Cascade tasks when a shift's start-time changes by more than the configured delta. Soft-detach on archive instead of orphaning. Survives bid awards via reassignTasksOnAward.
January 2026
Shared module for the in-restaurant kiosk and the employee phone. Geofence the kiosk to the restaurant, use phone-only when the manager allows. Break tracking with Sunday-overlap math that does not lose minutes.
Same-tenant read gate. Coverage records create + update with same-tenant + own-employee or ELEVATED. Soft fields explained in tooltips so an employee can see why a swap was rejected.
Tenant_id, employee_id, security_level, training_mode. Single source for every Firestore rule. training_mode custom claim opens the G_D_T training session without crossing into prod data.
G1 employee assistant, G2 manager coach, G3 executive advisor. Each one has its own retrieval surface, voice, and KPI access. The whole org chart in one chat.
Canonical schemas in one folder, one registry. Every Firestore collection the app reads has a matching *_schema.py. Drift-detection sweep runs on every PR.
Location switcher in the top nav, KPIs roll up from location to region to org. Permissions per location respected end-to-end.
Step-by-step from cold-email click to first-shift-published in under 30 minutes. AI-assisted role mapping, schedule import, training plan auto-suggested from the menu. Branched flows for solo founders vs multi-location ops.
Photo, role, certifications with expiry tracking, languages spoken, allergies relevant to floor work, peer kudos count. Privacy controls per field.
Voice and chat agents now have read-only access to the same demo dataset, no special-casing. Every demo conversation feels real because the data is the same shape.
Replaced our home-rolled agent loop with the official SDK. Better tool-calling discipline, cleaner handoffs between G1 / G2 / G3, structured output enforced. Cuts our per-conversation latency by ~25%.
Auth-middleware module, tenant-validation module, employee-context module. Every Cloud Function entry validates auth + tenant + employee scope before touching Firestore. Per-route SecurityLevel enum.
WebRTC bridge between the Flutter app and OpenAI Realtime. Push-to-talk on phone, hands-free in kiosk mode. Ambient noise suppression tuned for a busy floor.
December 2025
Create, assign, complete a task with photo proof. Cross-shift task carryover. Weekly recurrence engine. The bones of what becomes G11 Phase A in March.
Per-shift channel, per-role channel, per-location channel. Auto-DM cards on swap approval, bid award, schedule publish. No third-party comms app.
Continuous training from your menu, your SOPs, your service standards. Bite-size daily lessons synced to the schedule. Tracked completion, not just clicks.
First end-to-end voice loop. Latency room for improvement, but the shape is right. Iterates into the G16/G17/G18 trio in February.
Hardcoded Hotel setup as the demo workspace. Realistic team and schedule. Same shape every time, so QA catches drift.
createUserWithType Cloud Function replaces the old auto-detect. Onboarding picks the right type at sign-up; production accounts can no longer flip to demo by accident.
Tasks, schedule, internal chat, training, evaluations, onboarding, AI assistant: all in one app. The everything-connected promise made concrete.
Upload menus, SOPs, recipes, allergy charts. AI assistant indexes them so floor questions get answered in seconds. Per-document permissions.
Internal wiki for the operating playbook of your restaurant. Versioned, attributable, searchable from voice + chat.
November 2025
Multi-tenant Firestore with strict isolation. Cloud Run + Cloud Functions split. Flutter app for Web + Android + iOS + tablet. The skeleton that everything since has been hung on.
Manager creates shifts. Employees see their shifts. Swap requests. Marketplace for open shifts. Everything else this year layers on top of these primitives.
Brave Place Search → restaurant prospects. Contact extraction with 5-source cascade. Vibe extraction (energy / hospitality / consistency). Shape that becomes the M1 cold email pipeline.
The single source of truth for restaurant identity (name, type, cuisine, locations, contact, brand, certifications). Foundation for G8.
Email/password, magic link, OAuth (Google, Apple). Per-tenant isolation enforced via JWT claims read by Firestore rules.
Tenant code + employee code or invite token. The link an operator sends to their team to join the workspace. Cross-platform deep linking.
One service, one banner, one tone. AppNotificationService takes over from SnackBar / MaterialBanner / fluttertoast. Top-right glassmorphic banner that respects screen reader timing.
The look-and-feel of the app's emotional anchor. Iterated through the rest of the year.
The record keeps growing
Help us make the next shift lighter.
Founders bring the real friction. We listen, build, validate, and add the work here.