Case study 10 / 18 · Websites & apps
Amethyst
Status: Internal tool, not publicly available
An internal finance-management application for double-entry accounting, shared expenses, document management, and reporting. Its mobile-first design combines an installable web experience with an INR-based financial model.
Case study
Amethyst is the internal finance-management system for Rekndl, part of Emladris’s internal tooling. It covers double-entry accounting, shared expenses, supporting documents and reporting, across web, backend, worker and native-bridge code.
The problem
Bring internal financial records, shared expenses, supporting documents and reporting into one consistent workflow, with a single accounting database as the source of truth.
What was built
- A mobile-first, installable web app on a double-entry accounting foundation.
- Shared expenses, document management, financial reports and multi-currency handling.
- Integrations for document storage in Google Drive and a one-way reporting mirror in Google Sheets.
Key decisions
- PostgreSQL is the canonical financial database.
- Amounts are based in INR, on Asia/Kolkata time, with an April-to-March financial year.
- Google Sheets is a reporting mirror, never the source of truth.
- Entries start manual, rather than promising automatic bank or revenue imports.
Outcomes
- Built through twelve documented phases, followed by a production-readiness remediation (gates 0–4) that has been merged.
Where it stands
Internal and not publicly available. Connecting real Google resources, testing on native devices, off-site restore checks and review by a professional accountant are still to come.
How it was built
Frontend
- React
- TypeScript
- Vite
- Tailwind CSS
- TanStack Query — Server state
- React Hook Form and Zod — Validated finance forms
- Recharts — Financial reports
- Vite PWA — Installable web app
- Capacitor — Native bridges for biometric sign-in, push notifications and document scanning
Backend
- NestJS
- Prisma
- BullMQ — Background jobs
- Passport and JWT — Google and token-based sign-in
Data
- PostgreSQL — The canonical financial database
Integrations
- Google OAuth
- Google Drive API — Document storage
- Google Sheets API — One-way reporting mirror
Infrastructure
- Docker Compose
Testing
- Vitest
- Jest
- Testing Library