Custom widgets

15 ready-made dashboard tiles to copy

Templates for the custom widget editor: cost curve, earned value, risk exposure, portfolio timeline. Paste the code, set the scope, save - the tile is done.

15 templates · project and portfolio level · every query runs with the viewer's permissions

ACTUAL€840.0KJanFebMarAprMayJunBudgetPlanActual

From template to tile in three moves

All it takes is the administration permission and two minutes. None of it requires programming skills.

  1. 01

    Create the widget

    Administration → Custom widgets → 'New widget'. Give it a name and an icon, then set the scope to project or portfolio.

  2. 02

    Paste the code

    Copy the template's complete code block into the editor. The live preview renders it against sample data right away.

  3. 03

    Set the size and save

    Enter the recommended tile size and save - the widget is then available for selection in the dashboards.

  • Every template states its scope. A portfolio widget placed at project level stays empty, and the other way round.
  • Where money is involved, a currency constant sits at the very top of the code. Set it to the tenant's currency.
  • Every query runs with the viewer's permissions. Anyone not allowed to see the data gets an explanatory note instead of the tile - that is intended, and every template handles it.

Three ready-made bundles

If you would rather start than search: each of these bundles covers one recurring meeting.

Project management

The weekly meeting set

The four tiles that answer the same four questions every week: what is coming up, where is it stuck, what does the risk cost us, and on whose desk is it piling up.

PMO and internal audit

The audit set

Governance gaps before someone else finds them: untreated risks, fair-weather status lights, overdue reports and quality gates nobody has decided on.

Executive management

The board set

The portfolio on four tiles: when things land, where the benefit sits, where the money clusters, and whether output matches spend.

All templates

Filter by scope, target role and topic. The code can be copied straight from the card.

Level
Role
Topic

15 templates

The widget API

What the code has to work with

A custom widget is a small, self-contained function. It receives a context, may load more data, writes HTML into an output target and reports back when it is done. There is no more contract than that - which is why the templates are this short and why they run without a single dependency.

  • widget.data

    The tile's context: the project with its dates and budget, plus the active color scheme so the tile stays readable in light and dark mode.

  • widget.query("…")

    Load what the context does not carry: costs, work breakdown structure, risks, opportunities, milestones or the projects of a portfolio - page by page, with the viewer's permissions.

  • widget.el

    The output target in the dashboard. The templates write finished HTML and SVG into it, with no framework and no external library.

  • widget.done()

    Tells the dashboard that the tile has finished drawing. Until then it shows its loading state.

Without copying

You do not have to take the template

There is a chat below the code in the editor. Describe what the tile should show - the AI writes the code, runs it itself in the real sandbox, corrects its own errors and presents a validated proposal as a diff. Accepting and saving stay a deliberate click. The templates here are still the faster route whenever one of them fits.

Frequently asked questions

What tends to be open before the first widget of your own.

Not to copy one. Create the widget, paste the code block, set the scope and size, save. To adapt it, the constants at the top of the file are usually enough - currency, thresholds, time windows. Only rewriting the presentation itself calls for actual code, and even then the AI widget agent can take over.

Creating, editing, activating and deleting requires the administration permission. Every signed-in person may see the widgets and add them to their dashboard - what numbers they see inside is still governed by their own permissions.

No. Every query inside a widget runs with the viewer's permissions, not with those of the person who created it. Anyone not allowed to see a project's cost data gets an explanatory note instead of the tile at that point. Every template in this library handles that case explicitly.

In the personalizable dashboards: the portfolio dashboard, the dashboard of a portfolio container and the project profile. The scope decides where a widget is offered at all. Inside the dashboard, tiles can be dragged, resized and hidden freely.

Yes. Every save that changes the code automatically creates a revision - the last thirty per widget, with timestamp, the person who saved and whether the version was written by hand or came from an accepted AI proposal. An older version can be loaded back into the editor and becomes the current one again with a normal save.

No. Custom widgets are part of the feature set regardless of edition. Only the AI widget agent in the editor requires a configured AI module, because it runs through the tenant's AI provider.

Width by height in grid units. The dashboard grid has twelve columns, and one height unit is roughly 38 pixels. The figure is a starting point that makes the tile look right immediately - inside the dashboard, every tile can be resized freely afterwards.

Build your own tile

Try WORKSPACE.PM for thirty days with every feature. The templates on this page work in a trial tenant exactly as they do in production.