DEV Community

Cover image for NGB Reports: Canonical + Composable Reporting on .NET and PostgreSQL
NGB Platform
NGB Platform

Posted on

NGB Reports: Canonical + Composable Reporting on .NET and PostgreSQL

I just published a new demo of NGB Reports — the reporting layer of NGB Platform.

NGB Platform is an open-source, metadata-driven business platform for building accounting-first industry solutions. The goal is not to build isolated CRUD applications, but complete business applications where documents, catalogs, accounting, operational registers, audit history, workflows, and reports are part of the same architecture.

This demo focuses specifically on reporting.

Why reporting matters in business applications

In many business systems, reporting is added late.

The application starts with forms, tables, documents, and workflows. Then, at some point, users need visibility:

  • What happened?
  • Which documents created accounting entries?
  • What is the current balance?
  • Which invoices are still open?
  • What is the profitability by project?
  • Can I drill down from a report number to the source document?

If reporting is treated as a separate dashboard layer, it often becomes disconnected from the real business model.

For NGB, reporting is a first-class platform capability.

Reports need to understand the same metadata, document model, accounting structures, and navigation patterns as the rest of the application.

What the demo shows

The video walks through reporting inside the Agency Billing vertical, but the reporting engine itself is platform-level and reusable across different NGB-based industry solutions.

The demo covers:

  • Canonical accounting reports
  • Composable business reports
  • Report Composer
  • Grouping
  • Filters
  • Fields
  • Sorting
  • Report variants
  • Drilldowns from reports to source documents
  • Document-aware reporting
  • The reporting architecture behind the platform

Canonical reports vs composable reports

NGB Reports supports two important reporting models.

Canonical reports

Canonical reports are predefined reports with strong business semantics.

Examples include accounting reports such as:

  • Trial Balance
  • Balance Sheet
  • Income Statement
  • Cash Flow Statement
  • General Journal
  • Account Card
  • General Ledger
  • Ledger Analysis

These reports are not just generic grids. They represent known accounting/reporting concepts and can have specialized execution logic, validation rules, paging strategies, and drilldown behavior.

Composable reports

Composable reports are more flexible.

They allow users to configure:

  • Row groupings
  • Column groupings
  • Visible fields
  • Filters
  • Sorting
  • Aggregations
  • Variants

This is useful for business-specific reports such as unbilled time, invoice registers, project profitability, aging reports, and operational summaries.

The goal is to provide flexibility without turning the system into an unstructured reporting sandbox.

Report Composer

One of the main parts of the demo is the Report Composer.

The Composer allows users to configure report layout and behavior directly from the UI:

  • General parameters
  • Grouping
  • Filters
  • Fields
  • Sorting
  • Variants

The important design goal is that the frontend is metadata-driven. The UI does not need to hardcode every report layout manually. The backend provides report definitions and presentation metadata, and the frontend renders the report experience consistently.

This keeps the platform extensible as new verticals and reports are added.

Drilldowns and document-aware reporting

For business users, numbers in reports should not be dead ends.

If a report shows a balance, invoice, account, project, or document-related value, the user should be able to navigate to the underlying source.

In the demo, reports can drill down into source documents and related business records. This is especially important for accounting-first applications because users often need to trace a number back to the document or posting that produced it.

This is one of the areas where reporting becomes tightly connected to the platform architecture.

Reports are not only about displaying data.

They are also about explainability.

Architecture direction

NGB Reports is designed around a few principles:

  1. Metadata-driven definitions

    Reports are described by definitions and presentation metadata, instead of being hardcoded page by page.

  2. Reusable platform engine

    The same reporting infrastructure can be reused across different verticals.

  3. Canonical + composable model

    Some reports need strong predefined semantics. Others need flexible user composition.

  4. Document-aware navigation

    Reports should connect back to documents, catalogs, accounts, and business entities.

  5. Production-oriented execution

    Reporting needs to handle paging, validation, stable execution paths, and performance considerations from the beginning.

Tech stack

NGB Platform is built with:

  • .NET
  • PostgreSQL
  • Vue
  • Metadata-driven architecture
  • Kubernetes-oriented deployment practices

The reporting engine is part of the broader NGB Platform architecture, which includes documents, catalogs, accounting, operational registers, reference registers, audit history, background jobs, and vertical-specific business modules.

Links

Video demo:

https://youtu.be/euqMDpjEcsM

GitHub:

https://github.com/ngbplatform/NGB

Website:

https://ngbplatform.com

Documentation:

https://docs.ngbplatform.com

Final thought

Reporting is not just a UI table.

In accounting-first business applications, reporting is part of the core product architecture.

It needs to be connected to documents, accounting entries, business entities, auditability, and navigation.

That is the direction behind NGB Reports.

Top comments (0)