Internal operations platform built for Synctom to manage clients, finances, leads, and team operations in one place
Full-stack Developer
October 2025 – December 2025
Internal Tool / Web Application
Production
Proprietary codebase — developed during employment at Synctom

Reverie is an internal operations platform built for Synctom to replace scattered tools with a single place to manage clients, invoices, employees, leads, expenses, and quarterly financials. I built the employee management system, financial reporting, quarter closing, project tracking, and parts of the frontend UI. The rest was built by a colleague. The platform is actively used by the Synctom team for day to day operations.
Synctom was managing client records, employee attendance, salary payments, leads, and finances across disconnected tools with no single source of truth. There was no way to get a clear picture of quarterly performance, track which leads converted to clients, or know the cash position at any given point without manually pulling numbers from multiple places.
A centralized internal platform where every part of the business connects. Invoices feed into financial reports, leads convert directly into clients, employee attendance feeds into salary calculations, and quarter closing automatically handles carryovers and archives. Built with Next.js and Appwrite as the backend service.
Dashboard with KPI cards covering monthly retainer revenue, active clients, quarterly revenue, profit and loss, and cash on hand
Finance charts and quarterly summaries built with Recharts
Real time activity feed pulling from invoices and employee actions via Appwrite subscriptions
Full invoice management with auto generated invoice numbers, line items, percentage and fixed discounts, tax configuration, and status workflow from draft through to paid or overdue
PDF invoice generation with company branding, client details, line items, discounts, and payment terms via jsPDF and autotable
Employee management with profile image uploads, attendance tracking with check in and check out times, monthly salary processing with optional bonuses, per employee notes, and soft delete termination
CSV and Excel export for employee records
Quarter closing system that validates cash position, handles withdrawals, creates automatic carryover invoices or expenses, and archives leads and invoices on close
Quarterly P&L statements with revenue breakdown between retainers and projects and expense breakdown between business costs and salaries
Quarterly targets with real time progress tracking across revenue, client acquisition, retainer income, and lead conversion
Lead management with source tracking, status and priority workflow, assignment to employees, follow up dates, and one click conversion to client
Client management with retainer tracking, financial history, and lead conversion
Expense management with receipt uploads, category tracking, and approval status
Project management with basic CRUD
Appwrite authentication with protected routes and session management
This was the most complex thing I built in this project. Closing a quarter meant validating the quarter was still open, calculating the exact cash position, checking withdrawals against available cash, creating a system carryover record that was either an invoice or an expense depending on whether the balance was positive or negative, archiving all leads, and closing out invoices. Every step had to happen in the right order and any failure had to leave the data in a clean state. Getting the edge cases right, especially around duplicate carryover prevention and withdrawal validation, took the most time.
The quarterly P&L had to pull paid invoices, expenses, and salaries, filter them correctly by quarter date ranges, separate retainer income from project income, and calculate profit margins per quarter. I used Appwrite queries to fetch only what was needed and did the aggregation on the server side to keep the client lean and the numbers accurate.
Used Appwrite realtime subscriptions to keep the dashboard activity feed live without polling. Any invoice update or employee action propagated to the feed instantly across all connected sessions.
This was my first time using a BaaS in production. I had to get comfortable with Appwrite's collections model, permissions system, and realtime subscriptions while shipping features. The tradeoff of faster backend setup was absolutely worth it for an internal tool at this scale.
Delivered and actively used by the Synctom team for managing their day to day operations. The platform gave the team a single place to track finances, employees, leads, and clients for the first time.