Skip to main content
Your progress
0 of 4 lessons complete0%
T3 / M3.7 / L2 OF 4 / Architect TIER / 9 min

Cloning + customization

Outcome

By the end of this lesson, you will be able to clone a preset, customize it for org-specific needs, and reason about the org-shared (not per-user) dashboard model and its limits.


TierArchitect
JTBD”Get from a generic preset to a dashboard that exactly fits the team’s working canvas, without breaking the preset for future updates.”
PersonasPlatform Engineer · FinOps Lead · Engineering Leader
PrerequisitesM3.7.L1: Four presets
Time9 minutes
Bloom verbClone (Apply), Customize (Create), Reason (Analyze)

1. Concept

Presets are immutable templates. To make a dashboard specific to your team, clone the preset first, this creates a new saved dashboard, then modify the clone. The original preset stays untouched and continues to be available as a re-clone source if ZopNight updates it.

Terminal window
WORKFLOW:
1. View preset (Executive / Engineering / FinOps / All Widgets)
2. Click "Clone" → creates a new saved dashboard
3. Modify the clone:
- Add widgets from the registry
- Remove widgets that don't apply
- Reorder widgets via drag-and-drop
- Pick widget size (Wide / Standard / Compact)
4. Save with a meaningful name
5. Optionally set as org default

Why clone vs edit-in-place

The clone pattern decouples customer customization from preset evolution:

Terminal window
PRESETS are versioned by ZopNight:
As new widgets ship, presets may be updated to include them
Bug fixes to default widget configurations propagate
CUSTOMER CLONES are static:
They reflect the customer's specific layout decisions
Don't auto-update when ZopNight updates the preset
Customer can re-clone the latest preset and re-apply changes
if they want to pick up updates

This means a customer cloning the FinOps preset today gets a snapshot. If ZopNight updates the FinOps preset next year to add a new widget, the customer’s clone does not change. They can re-clone the latest preset to see the new layout, then choose whether to migrate.

Customization options

Terminal window
ON A CLONED DASHBOARD (V1):
Add widgets from the registry (~25 available)
Remove widgets
Reorder via drag-and-drop
Pick widget size: Wide (full row) / Standard (half row) / Compact
Rename the dashboard
Set as org default
Delete the dashboard (with confirmation)
NOT YET CUSTOMIZABLE (V1):
Free-form grid resize (only standard sizes)
Per-user dashboard customization (org-shared only)
Cross-dashboard linking (no drill-through)
Custom widget creation (only selection from registry)
Themed colors or branding

The V1 scope is deliberately bounded. Cloning + modify gets most customers what they need.

Org-specific patterns

Terminal window
PATTERN A: Single org dashboard
Clone "FinOps" preset
Modify to remove widgets the org doesn't use
Add team-specific widgets if relevant
Set as org default
All users land on this one dashboard
Best for: small to mid-size orgs with one cost-discipline focus
PATTERN B: Multiple persona dashboards
Clone "Executive" → save as "Leadership Review"; org default
Clone "Engineering" → save as "Platform Engineering"
Clone "FinOps" → save as "FinOps Operations"
Each persona has their own; users bookmark theirs
Best for: mid-to-large orgs with distinct audiences
PATTERN C: Per-team views
Clone "Engineering" multiple times
Each clone is a per-team dashboard with team-scoped filters
Set per-team default via team detail page
Best for: large orgs with strong team boundaries

Pattern A is the most common. Pattern B emerges as orgs mature. Pattern C is for very large orgs.

Sharing dashboards

Dashboards in V1 are org-shared: anyone in the org can view any saved dashboard. There is no per-user private dashboard.

Terminal window
WHAT A USER CAN DO:
- View any saved dashboard in the org
- Set the org default (if Admin)
- Bookmark any dashboard as their personal landing (per-user)
- Switch between dashboards via the header switcher
WHAT A USER CANNOT DO (V1):
- Create a private dashboard not visible to others
- Customize a dashboard for themselves only
- Hide a dashboard from specific users

The bookmark + switcher gives per-user flexibility on top of the org-shared dashboards. Each user’s “preferred view” is their bookmark; the org has a single default for users without a bookmark.

Limits

Terminal window
PER-ORG CAPS:
Dashboards: 50
Widgets per dashboard: 50
Per-widget config: 4 KiB (ceiling for any single widget's config)
Total layout: 64 KiB (ceiling for the whole serialized layout)
ENFORCEMENT:
Soft limits at 75% (warning)
Hard limits at 100% (cannot add more without removing first)
WHY THESE LIMITS:
Performance: too many widgets means slow page loads
Cognitive: too many dashboards means no one knows which to use
Storage: bounded per-org footprint

The 4 KiB and 64 KiB caps are two independent ceilings, not a budget you multiply out. The 4 KiB bounds any single widget’s config; the 64 KiB bounds the serialized layout as a whole. They are not meant to be composed (50 × 4 KiB = 200 KiB would exceed 64 KiB); real widget configs run well under 4 KiB, so a full 50-widget dashboard stays comfortably inside the 64 KiB total. In practice whichever ceiling you hit first is the binding one.

Most customers do not approach these limits. If you do, consolidate: multiple 30-widget dashboards are usually two or three well-designed dashboards.

Widget configuration

Each widget has a small config payload:

Terminal window
EXAMPLE: Cost Trend widget config:
{
"time_range": "30d",
"compare_to": "previous_period",
"team_filter": null,
"currency_display": "USD"
}

The config is per-widget per-dashboard. The same widget on two different dashboards can have different configs (e.g., one shows team-platform’s trend, another shows team-product’s). This is what makes per-team Pattern C work.

Cross-references between dashboards

Terminal window
V1 LIMITATION:
Dashboards do not link to each other directly.
WORKAROUND:
Save bookmarks in a team wiki:
- "FinOps daily review" → /dashboards/finops-daily
- "Platform engineering" → /dashboards/platform-eng
- "Executive monthly" → /dashboards/exec-monthly
Users navigate via URLs; switcher in header for in-product navigation.

This is a known gap. Future versions may support drill-through.

How ZopNight uses cloning

The dashboard backend stores each saved dashboard as a row in dashboards with a layout_json column containing the widget arrangement. Cloning copies the preset’s layout_json and assigns a new UUID. Modifications update the layout_json in-place. The org’s default dashboard is a foreign key from org_settings.default_dashboard_id.

For admin troubleshooting, the dashboard’s layout_json is browsable in the API, which lets support reproduce a customer’s view without needing UI access.


2. Demo

A team’s customization workflow:

Terminal window
TEAM: platform-engineering (8 engineers)
GOAL: Start from FinOps preset; customize for daily engineering use
T+0 Admin opens Dashboards page
Selects FinOps preset
T+10 s Clicks "Clone preset" button
Default name suggested: "FinOps (clone)"
Renames to "Platform Eng Daily"
T+30 s Reviews current widgets:
✓ Cost Trend Keep (anomaly markers
surface here)
✗ Showback Remove (not relevant daily)
✓ Budget Health Keep
✓ Quick Insights Keep
✗ Cloud Spend Remove
✗ Recommendations Remove (use dedicated view)
T+1 min Adds widgets:
+ Top Costly (their team's resources)
+ Schedule Activity (past runs + what is due)
+ Schedule Success Rate (operational health)
T+1:30 Configures the per-widget config each one supports:
Cost Trend: scoped to team-platform
Budget Health: platform-team budgets only
T+2 min Reorders the slots:
1. Cost Trend (top: spend plus anomaly markers)
2. Schedule Activity (what ran, what is next)
3. Schedule Success Rate (paired beside it)
4. Top Costly (today's biggest line items)
5. Budget Health (longer-term tracking)
6. Quick Insights (action items)
There is no Sankey widget, no unit-economics widget and no
anomaly widget to add here: cost flow lives on the Cost Reports
page, unit economics is an overlay on the cost trend chart there,
and anomalies appear as markers on the Cost Trend widget.
T+2:30 Saves
T+3 min Sets as org default (everyone on the platform team
will land here)
T+3 min Bookmarks for personal use
TOTAL ELAPSED: 3 minutes from preset to customized + saved + default

The team now has a dashboard that exactly matches their daily workflow.


3. Hands-on (5 min)

Clone and customize a preset:

Terminal window
SELECTED PRESET to clone: __________
CLONE NAME: __________ (descriptive, your-team-specific)
WIDGETS TO REMOVE (not relevant to your audience):
□ __________
□ __________
□ __________
WIDGETS TO ADD (from registry):
□ __________
□ __________
□ __________
WIDGET CONFIGURATION CHANGES:
Widget: __________ Filter: __________
Widget: __________ Filter: __________
REORDER PRIORITY (top to bottom):
1. __________
2. __________
3. __________
SET AS ORG DEFAULT? Yes / No (why?)

If you can’t finish this exercise in 5 minutes, the preset was close to your needs. That’s a healthy sign: the presets are designed to be close to common needs.


4. Knowledge check

Q1

A team wants to remove “Showback by Team” from the FinOps preset:

A. Edit the preset directly
B. Clone the preset first; modify the clone; save under a new name. Presets are immutable templates that can be re-cloned from the latest version; clones are the customer’s customization surface. This pattern lets ZopNight update presets without breaking customer dashboards.
C. File a feature request
D. Cannot be done

Show answer

Correct: B. Clone, then modify. The pattern is fundamental to dashboard architecture.

Q2

Per-user dashboard customization:

A. Supported in V1
B. NOT supported in V1. Dashboards are org-shared. Users can bookmark their preferred saved dashboard and switch via the header switcher, but cannot create private dashboards. Future versions may add per-user customization.
C. Per-team only
D. Per-role only

Show answer

Correct: B. Org-shared model in V1. Bookmarks give per-user flexibility on top of shared dashboards.

Q3

Per-org dashboard limits:

A. Unlimited
B. 50 dashboards, 50 widgets per dashboard, 4 KiB per widget config, 64 KiB total layout. Soft warning at 75%, hard limit at 100%. The limits protect performance and prevent dashboard proliferation. Most customers do not approach these caps.
C. 10 dashboards
D. Per-tier limits

Show answer

Correct: B. Defined caps. Consolidation, not expansion, is the answer when approaching limits.


5. Apply

Clone presets at Dashboards → preset → “Clone preset” button. The clone editor supports drag-and-drop widget arrangement, per-widget configuration, and save-as-default.

For team-specific customizations, develop a naming convention (e.g., “Platform Eng Daily,” “FinOps Monthly Review”) so users can identify dashboards by purpose.


Glossary terms touched

Clone · Customization · Org-shared dashboard · Widget config · Layout JSON


Start with the bill.

Foundations takes about five hours. The first lesson is nine minutes.

Open curriculum. No login. No paywall. 237 lessons across 7 courses, three publicly verifiable credentials. Read it on the train, take the exam on a Saturday, list the credential on your résumé Monday.

5h median time to finish Foundations
0 logins, paywalls, or marketing forms
open curriculum, public credential verifier
Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 30% average cloud cost cut· 4 platforms · 1 console· Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 30% average cloud cost cut· 4 platforms · 1 console·