OfficeOS
OfficeOS is an independent SaaS product I designed and built end to end: a multi-tenant internal operations platform that brings employee management, attendance, leave, daily reporting, announcements, and feedback into one role-aware workspace. It was validated through a real deployment/demo environment. I focus here on the product and engineering decisions, not on any internal company data.
The problem
Small and growing teams often run internal operations across scattered spreadsheets, chats, and email. There's no single place that respects who can see and do what — so attendance, leave, reporting, and announcements stay fragmented and hard to audit.
Who it's for
- Small-to-mid-sized teams that have outgrown spreadsheets
- Founders and operators who need a single internal source of truth
- HR and admins managing day-to-day people operations
User roles
- Admin
- HR
- Employee
- Developer (internal panel)
My responsibility
What I actually did on this project — kept honest, especially on collaborative work.
- Designed the multi-tenant data model and role-based access rules
- Built every role's interface and the shared operations modules
- Implemented authentication, Firestore data layer, and security rules
- Deployed and maintained the product on Vercel
Product decisions
- Made roles a first-class concept so every screen is access-aware by default
- Chose Firestore for fast iteration on an evolving operations schema
- Kept the AI assistant explicitly labelled as a prototype rather than overselling it
Architecture
Next.js App Router frontend on Vercel; Firebase Authentication for identity; Cloud Firestore as the multi-tenant datastore with role-scoped security rules. Tenancy is enforced both in the data model and in the access layer.
Key features
Every feature is labelled by its real state. Nothing planned is shown as shipped.
- Admin / HR / Employee role-based access (RBAC)Implemented
- Employee managementImplemented
- Attendance trackingImplemented
- Leave request & approval workflowsImplemented
- Daily reportsImplemented
- Company-wide announcementsImplemented
- Company settingsImplemented
- Feedback systemImplemented
- Developer panelImplemented
- Multi-tenant structureImplemented
- AI assistantPrototype
Challenges
- Designing role-based access that stays correct as features grow
- Modelling multi-tenant data without leaking one tenant's data into another
- Keeping a broad feature set coherent under one consistent interface
Solutions
- Centralised role checks and route-level guards instead of ad-hoc per-page logic
- Tenant-scoped Firestore collections plus security rules as a second line of defence
- A shared component and layout system so every module feels like one product
Security considerations
- Role-based access enforced in both UI and Firestore security rules
- Tenant isolation in the data model
- No sensitive internal company data is exposed in this portfolio
Deployment
Continuous deployment to Vercel from the project repository.
Current limitations
What this project does not do yet — stated plainly.
- The AI assistant is an early prototype, not a finished feature
- Some advanced reporting and analytics are still on the roadmap
Lessons learned
- Designing for roles from day one is far cheaper than retrofitting access control
- A consistent shared UI system keeps a large feature set from feeling like many apps
Future roadmap
- Deepen analytics and reporting
- Mature the AI assistant from prototype toward a reliable feature
- Expand company-settings and customisation per tenant