Skip to main content

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.

Development status

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:

ComponentDescriptionTech
Moonlight ServerREST API backendNestJS 11, TypeORM, PostgreSQL, Google Cloud Pub/Sub
Moonlight UIFrontend applicationReact 19, Vite 7, Tailwind, shadcn/ui
Moonlight SDKTypeScript SDK for data ingestionZero runtime deps, ESM + CJS
Moonlight DocsThis documentation siteDocusaurus 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

ServiceStageProduction
Frontendstage.moon-light.appmoon-light.app
APIstage-api.moon-light.appapi.moon-light.app
Docsstage-docs.moon-light.appdocs.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