SERVPRO franchise group · Internal tools
One login for the six apps the team uses every day.
Job intake, scoping, daily updates and quality checks used to live in separate tools. Now it’s one portal, and what you see depends on your role.
- Client
- A SERVPRO franchise group (freelance)
- Role
- Freelance Full Stack Developer & AI Automation Developer
- Timeline
- May 2026 to now
- Stack
- React, Supabase, Google BigQuery, Claude Code
Portal home screen
The problem
Field and office staff were jumping between separate tools for the same jobs. Each tool had its own login, and nobody had the full picture.
What I set up and built
Sign in once
I set up one sign-in with role-based access, so each person only sees the apps their role needs. New people get a starting role from their job title in the employee directory, and a super admin manages roles, offices and access from one admin screen.
Field and office apps
Job Board, Scope App and Job Update for the field crew, and quality and management apps for the office, all opening from the same home screen. Their data comes from Google BigQuery through sync jobs that run when new data lands.
Tested before launch
Access is enforced in the database, not just hidden in the menu, and an app can’t be opened by typing its address. Every deploy runs automated build checks first.
Handover and adoption
- Live, with real users working real jobs.
- I walked managers and staff in different roles through the portal.
- A short “how this works” guide on the home screen and a help center inside each app cover the rest.
- Access is set by role, so nobody has to request it app by app.
Try it
A small working copy, with made-up data.
Portal access
Pick a job and see which apps that person gets.
Everyone signs in to the same app, but each person only sees what their job needs. These people are made up.
View as
Related work: SERVPRO portalRuns jobs end to end and signs off on quality.
Made-up people · no real company data