Office Suite: five connected tools, one identity
An internal office suite for a software company. HR, projects, docs, a virtual office and a Mac meetings app, all sharing one sign-in.
- Engagement
- Internal suite
- Role
- Designed and built as Head of Backend Development
- Status
- Internal
In plain words
Before
Day-to-day work at a software company was spread across separate tools: people records and leave in one place, project plans in another, documentation somewhere else, and remote colleagues mostly visible through chat. Each tool had its own login and its own idea of who worked there and who belonged to which project. Handoffs between them were done by hand, so access easily drifted out of step.
What I built
I designed and built an internal office suite of five connected tools that share one identity.
- HR and Recruitment: employee records, leave approvals, payroll records and pay slips, expenses, documents, assets, and a hiring pipeline with interview scorecards and AI-assisted candidate-fit analysis.
- Project Management: backlogs, sprints, a Kanban board, Gantt and sprint reports, time logs, meetings and Slack notifications.
- Documentation Hub: project docs in Markdown, Mermaid and ERD with a full change history, plus an AI chat that only answers from documents you are allowed to see.
- Virtual Office: a live office scene with presence, chat, video meetings, screen sharing and attendance.
- Meetings companion for macOS: a native app that keeps each person’s meeting reminders running on their Mac, even offline.
HR decides who works there. The other tools check against it the first time someone signs in, and joining a project opens the right documentation automatically.
Under the hood
Architecture
- HR · identity
- Project mgmt
- Docs + scoped AI
- Virtual office
- Meetings (macOS)
Stack
- Laravel 11 and 12, Livewire 4, Filament 4
- React, Node.js, Express, Socket.IO
- mediasoup (WebRTC) for audio, video and screen sharing
- PostgreSQL, MySQL, SQLite
- Laravel Sanctum, API-key middleware, signed routes
- Gemini API, OpenRouter-compatible models
- SwiftUI and LaunchAgents (macOS)
- Docker, Caddy, Bitbucket Pipelines, queues and scheduled jobs, Slack API
Decisions
- HR is the single source of truth for people. Project Management and the Virtual Office verify a person against HR on first sign-in, then provision a local account, so everyday sign-in is fast and does not depend on a round trip to HR.
- Project membership is pushed from Project Management to the Documentation Hub through a bearer-token-protected internal endpoint, so access to project docs follows the delivery team automatically.
- Each integration surface gets its own control. Sanctum tokens with throttled issuance serve the desktop client, API-key middleware guards HR's credential-verification endpoints, and archive media uses signed routes.
- The documentation AI builds its context only from documents the user may see and is told to answer from those facts. A post-processing step removes any cited link that does not exactly match the authorised context.
- The macOS companion installs each synced meeting as a per-user LaunchAgent, keeps its session in the Keychain, and repairs and reconciles agents on every refresh. Schedules keep running offline, and it never touches agents it did not create.