logoSharoon S.

  • Home
  • Projects
  • Case Studies
  • About
  • ⌘ K or /
© 2026 - Made with by Sharoon.

Reverie

Internal operations platform built for Synctom to manage clients, finances, leads, and team operations in one place

Role

Full-stack Developer

Timeline

October 2025 – December 2025

Type

Internal Tool / Web Application

Status

Production

Technical Stack

frontend
Next.js
Next.js
TypeScript
TypeScript
Tailwind CSS
Tailwind CSS
Shadcn UI
Recharts
backend
Appwrite
Appwrite
services
Appwrite Auth
Appwrite Database
Appwrite Realtime
jsPDF

Proprietary codebase — developed during employment at Synctom

Reverie
01 // Vision

Project Vision

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.

02 // Problem

The Friction

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.

03 // Solution

The Strategy

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.

04 // Features

Core Features

1

Dashboard with KPI cards covering monthly retainer revenue, active clients, quarterly revenue, profit and loss, and cash on hand

2

Finance charts and quarterly summaries built with Recharts

3

Real time activity feed pulling from invoices and employee actions via Appwrite subscriptions

4

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

5

PDF invoice generation with company branding, client details, line items, discounts, and payment terms via jsPDF and autotable

6

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

7

CSV and Excel export for employee records

8

Quarter closing system that validates cash position, handles withdrawals, creates automatic carryover invoices or expenses, and archives leads and invoices on close

9

Quarterly P&L statements with revenue breakdown between retainers and projects and expense breakdown between business costs and salaries

10

Quarterly targets with real time progress tracking across revenue, client acquisition, retainer income, and lead conversion

11

Lead management with source tracking, status and priority workflow, assignment to employees, follow up dates, and one click conversion to client

12

Client management with retainer tracking, financial history, and lead conversion

13

Expense management with receipt uploads, category tracking, and approval status

14

Project management with basic CRUD

15

Appwrite authentication with protected routes and session management

05 // Hurdles

Hurdles & Breakthroughs

#1   Quarter closing system

Resolution_Strategy

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.

#2   Financial reporting across interconnected data

Resolution_Strategy

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.

#3   Real time activity feed

Resolution_Strategy

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.

#4   Learning Appwrite under a real deadline

Resolution_Strategy

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.

06 // Impact

Final Outcome

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.

07 // Reflection

Key Learnings

"The quarter closing system was a good lesson in thinking through stateful operations carefully. When a process touches multiple collections and has real financial consequences, the order of operations and failure handling matter a lot more than they do in typical CRUD work. It also gave me my first real experience shipping a collaborative codebase and coordinating on shared UI without stepping on each other."
Contents
Got an idea? Let's turn it into something real
ssharoon166@gmail.com
Github
LinkedIn
Let's Talk