Building reports
The report editor
A tour of the Golden Reports report editor - its panels, the design surface, layers, and pages.
The report editor is where you design report templates. It runs inside the Manager: open a report from the Reports list and the editor opens in place.
This page is a tour: where each panel is, what it does, and the mental model behind the screen. If you've never opened the editor before, read this top-to-bottom; if you're already familiar with the UI, the Blocks reference and Parameters, variables & queries pages will be more useful.
A note on the Studio
You may also see "Studio" mentioned in product communications - that's the standalone desktop application currently in development. For the time being, all editing happens inside the Manager, and these docs describe that experience. The desktop Studio will share the same editor and the same documentation.
The layout
The editor is a four-region workbench:

- The top toolbar is for global actions: theme selection, zoom, undo/redo, view mode, preview, export, share.
- The left rail holds collapsible panels for navigating and organizing the report: Pages (the list of pages in the report), Layers (the nested block tree), and more.
- The design surface in the centre is the report itself. It supports zoom, rulers, guides, snapping, and live preview.
- The right inspector holds the panels that configure the current selection: Properties and Styles.
The design surface
The design surface renders the report exactly as it will be exported. Selection is WYSIWYG: click a block, see its handles, drag to move, drag the handles to resize.
A few features worth knowing:
- Pages. Every report has a first page; that's all that matters for reports rendered as a dashboard or embedded inside a website. For printed reports, you can add more pages - a typical use is a front cover, the content body, and a back cover. The left rail's Pages panel is where you add and reorder them. Inside a flowing content area, the page-break block forces a break between printed pages.
- Page headers and footers. Drop a page-header or page-footer block anywhere on a page and it will repeat across every page in the same flow. They commonly hold logos, page numbers, and report titles.
- Rulers and guides. Toggle rulers from the toolbar; drag from a ruler to drop a guide. Blocks snap to guides as you move them. The unit (mm, in, px) is configurable per workspace.
- Selection handles. Selecting a block reveals dimension handles, position read-outs, and a context menu (duplicate, delete, change layout).
- Move, resize, rotate, scale. All available directly on the canvas, with snap-to-guide built in.
The panels in the left rail
Pages
Lists every page in the document. Add, duplicate, reorder, delete. A page has its own size, margins, orientation, and grid; you can mix portrait and landscape pages in one document.
Pages are most useful for printed reports - typical printable layouts have a front cover, a content body, and sometimes a back cover, each modelled as its own page. For reports rendered as a dashboard or embedded in a website, the first page is usually all you need; extra pages are inert in that context.
Layers
A nested tree of every block on the current page, including containers (sections, columns, stacks, grids) and their children. Layers are the easiest way to select something that's buried under another block. Toggle visibility, lock a block in place, or reorder by drag.
Elements
The block palette. Drag any block onto the design surface. The palette is grouped by category (Layout, Content, Charts, Page, etc.) and shows previews, icons, and descriptions for each block. Installing a custom block plugin adds a new group to the palette automatically.
Visual
Workspace and document-level visual settings: theme, colour scheme (light/dark), page background, default fonts. Changes here are global to the report.
Data
The data wiring panel. It has three tabs:
- Schema - shows the data context bound to the report (a GraphQL schema), with every type and field.
- Query - the GraphQL query the report runs against that schema. Arguments here are parameter-bound or literal, with a live result preview.
- Variables / Parameters - define parameters (the report's inputs) and variables (the values the template can reference). The "man-in-the-middle" rule between parameters, query arguments, and variables is explained in Parameters, variables & queries.
Code
The raw HTML/Liquid template for the report. Most authors stay in the visual surface, but the Code panel is the underlying truth - edit it directly when you want to write pure HTML, paste in something you have lying around, or debug what the visual editor produced.
The right inspector
When you select a block on the design surface, the inspector populates with the block's properties.
Properties
Block-specific bindings: a Table's columns, a Chart's series, a Heading's text, a KPI's value field. The shape of this panel depends entirely on the selected block.
The Properties inspector also exposes a block's bindings. Every property can be:
- a literal (a number, a string, a colour),
- a variable reference (a name pinned in the Variables panel),
- a query result reference (a field from the report's query result),
- or a Liquid expression (for text content, formatting, conditional rendering).
The little chip next to each property tells you which it currently is, and clicking it lets you swap the binding type.
Styles
Styles for the selected block. The Styles inspector covers typography, spacing, borders, colours, layout, and per-property breakpoints. Styles compose with the document's theme; an explicit value overrides the theme, an unset value inherits.
Undo, autosave, and recovery
- Undo/redo work uniformly across every change you can make - drag, resize, property edit, query addition. There's no "this kind of change can't be undone" case.
- Autosave runs continuously while you edit. You don't have to remember to save.
- Recovery. If you close the tab mid-edit, your work is there when you reopen the report.
Keyboard shortcuts
A non-exhaustive list of the most useful ones:
| Action | Shortcut |
|---|---|
| Undo / Redo | ⌘Z / ⌘⇧Z (Ctrl on Linux/Windows) |
| Save | ⌘S |
| Duplicate selection | ⌘D |
| Delete selection | Backspace / Delete |
| Group/ungroup | ⌘G / ⌘⇧G |
| Toggle preview | ⌘P |
| Toggle layers panel | ⌘1 |
| Toggle properties panel | ⌘2 |
| Toggle data panel | ⌘3 |
The exact shortcuts may evolve; the toolbar tooltips are always authoritative.
Next
- See the catalog of placeable units: Blocks reference.
- Learn the binding model: Parameters, variables & queries.
- Pick up Liquid for templated text: Liquid templating.