Moonlight
Moonlight is a software product developed by Loom Bridge FZCO to help investors, founders and holding companies improve financial visibility across multiple entities, projects and business operations.
The platform is designed to support project-level reporting, document-backed financial entries, operational workflows, role-based access and integration with accounting systems such as QuickBooks.
Moonlight does not replace accounting software. It acts as an operational visibility layer between business activity and accounting records, helping teams review, verify and understand financial data before it reaches the books.
Moonlight is in active development. The product is already used in pilot setups, but the team continues to ship changes to the data model, the API and the UI on a weekly basis. Some features described in these docs are stable, others are being refined, and a few are planned and noted as such where relevant.
What you can do today
The current build of Moonlight covers:
- Financial entries: income and expense records with a status lifecycle and an audit trail
- Documents: invoices, contracts and payment proofs attached to entries with a review workflow
- Completeness checks: a configurable rule that an entry needs both a basis document and a payment proof before it is treated as verified
- Refunds and reimbursements: linked entries that keep the relationship between an original operation and its correction
- QuickBooks (Intuit) integration: push, pull and webhooks per workspace, with manual or automatic sync modes
- Workspaces and projects: separate environments for each company or holding entity, with project-level slicing inside
- Roles and permissions: granular access so an investor sees a workspace read-only while a finance team works in it
- Reports: income, expenses, party breakdown, tag allocation and a Sankey flow view
Items that are designed but not yet exposed in the UI are flagged inside their respective pages (for example, tax mappings are currently API-only).
System architecture
Moonlight has four components:
| Component | Description | Tech |
|---|---|---|
| Moonlight Server | REST API backend | NestJS 11, TypeORM, PostgreSQL, Google Cloud Pub/Sub |
| Moonlight UI | Frontend application | React 19, Vite 7, Tailwind, shadcn/ui |
| Moonlight SDK | TypeScript SDK for data ingestion | Zero runtime deps, ESM + CJS |
| Moonlight Docs | This documentation site | Docusaurus 3.9 |
Integration patterns
There are two ways to feed data into Moonlight today.
Direct sync with an accounting system. A workspace connects to QuickBooks and the server keeps both sides in step.
SDK ingest with moderation. An external app (an expense tool, a Telegram bot, a custom integration) sends operations into Moonlight via the SDK. An accountant reviews each entry before it is pushed to the books.
Live environments
| Service | Stage | Production |
|---|---|---|
| Frontend | stage.moon-light.app | moon-light.app |
| API | stage-api.moon-light.app | api.moon-light.app |
| Docs | stage-docs.moon-light.app | docs.moon-light.app |
Stage is where new behavior is tried out first. Production tracks the version that pilot teams are running on.
Quick start
# Start infrastructure (PostgreSQL, Pub/Sub emulator, MinIO, Flyway migrations)
docker-compose up -d
# Start the backend
cd moonlight-server
cp .env.example .env
npm install
npm run start:dev
# Start the frontend
cd moonlight-ui
cp .env.example .env
pnpm install
pnpm dev
The API runs on http://localhost:3000, Swagger UI on http://localhost:3000/api/docs, and the frontend on http://localhost:5173.
For a full setup guide with environment variables and database details, see Development Setup. For an overview of the API, see API Reference.
Where to go next
- New to the product? Start with Why we built Moonlight.
- Investor or holding manager? Read Stop chasing founders and Due diligence after the term sheet.
- Engineer or accountant? Jump into Core Concepts and the Accountant Workflow.