Company apps monorepo

Choose an app or go to global admin.

This portal is the landing page for the shared workspace. App-specific admin stays inside each product app; shared users, customers, and Odoo live in the global admin area.

Shared shell

One monorepo, multiple apps, one consistent platform layer.

Keep shared tokens, route metadata, and admin surface structure in packages while each app keeps its own business logic and app-specific admin screens.

Open Global AdminManage Customers
Shared customersApp-specific admin stays localPortal at /

Estimator

Roof Estimator Web

Quoting, projects, pricing, and field workflows for the roofing team.

App-specific admin stays inside this app.

Operations

Supervisor Checklist

Checklist-driven supervision workflows for the second product line.

The checklist app keeps its own admin screens.

Platform

Global Admin

Shared users, customers, and Odoo controls for the whole company.

Global admin is shared across every app.

App-specific admin entry points

Each product keeps its own admin surface inside the app boundary. Use these links when you want the app-level tools instead of the shared global admin area.

App-specific admin

Roof Estimator Web Admin

Open the admin screen inside Roof Estimator Web.

Estimator admin stays in the app.

App-specific admin

Supervisor Checklist Admin

Open the admin screen inside Supervisor Checklist.

Checklist admin opens directly to the admin workspace.

Global admin entry points

Shared platform administration is intentionally small at first: users, customers, and Odoo. Those routes are the right place to centralize common records before pushing anything down into an individual app.

3shared customers
2active
1inactive

Global admin

Users

Manage user access, roles, and platform-level account records.

Shared identity and permissions live here.

Global admin

Customers

Maintain one customer record set that all apps can read and populate.

Customers are global, even when created in a product app.

Global admin

Odoo

Control the shared Odoo connection, sync status, and inbound mapping rules.

Integration settings belong at the platform layer.

Shared customer sample

These records are coming from the shared customer layer used by the apps.

Harborview Estates
Harborview Estates · estimator
Active
Summit Ridge HOA
Summit Ridge HOA · crm
Active
Nomads Roofing Internal
Nomads Roofing Internal · invoice
Inactive