Manual List Builder

DataTables vs Tabler — which renderer should I use?

Luna can render lists in two visual styles. Both produce a table from the same column / filter / sort configuration; they differ in what they do on the page after it loads.

Tabler table (default)

A standard, server-rendered HTML table styled with Tabler. Sorting, filtering, and pagination all happen via standard form posts and URL query strings (?sort=start_date&dir=asc&page=2).

Use Tabler when:

  • You want the URL to reflect the current view (bookmarkable, shareable).
  • You want printable, screen-reader-friendly output.
  • You don't need every-keystroke search or instant column reordering.
  • The list ships in an internal app where load time matters more than fancy interactions.

This is the right default for most government workflows — predictable, fast, accessible.

DataTables (advanced)

The DataTables JS library renders the same HTML table but takes over on the client side after page load. It adds:

  • Instant column-header sort (no page reload).
  • Per-column search inputs.
  • Show/hide column toggles.
  • CSV / Excel / PDF export.
  • Drag-to-reorder columns.

Use DataTables when:

  • The list is for power users who need to slice the data many ways.
  • Your record count fits in one server response (≲ 2,000 rows).
  • You're OK requiring JavaScript for the list to be useful.

What's required for DataTables

If you pick DataTables as the renderer:

  • The DataTables JS bundle must be included in the app's layout. Most LUNA-generated apps already pull it in via the luna/datatables component package; install that before publishing a DataTables list.
  • The list response is a single page of all rows — pagination becomes client-side. This won't scale past a few thousand rows.

How to switch

Open the list editor → Settings → Renderer → pick Tabler or DataTables. Switching is non-destructive — your columns, filters, and sort survive.

Rule of thumb

Start with Tabler. Switch to DataTables only when a real Creator says they need it.