Skip to main content

My Workday: The personal cockpit in the Staffbase intranet

How a My Workday widget with greeting, tasks and quick links turns the intranet into the starting window – without an external to-do tool.

3 min read
My Workday: The personal cockpit in the Staffbase intranet

Most employees open five to eight different tools every morning before they can be productive: Outlook for mail, time tracking for hours, the HR portal for holiday requests, a desk booking app, a wiki, a ticket system. Each tab a separate login, each tool a separate mental switch.

The My Workday Widget turns the intranet into the one starting window. Personal, focused, with the four most important tasks for today and the four most important tools at a glance.

A cockpit in 16 settings

The widget has no magic. It has 16 editor settings:

  • 1 × subtitle (e.g. “Your personal day starter”)
  • 1 × fallback name in case no user context is available
  • 1 × accent color, 1 × theme
  • 4 × task texts (the editor sets them team-wide, e.g. “Stand-up at 09:30”)
  • 4 × quick links with label and URL

That’s it. What these 16 editor-time settings turn into in the browser is a personal greeting with first name, localized date, four checkable tasks and four shortcuts.

Three Builder features in one widget

My Workday combines three Widget Builder concepts that rarely appear together in the architecture world:

1. user context for personalization. The Widget Builder injects user.firstName, user.lastName, user.email into the template – every employee sees their first name, nobody needs to configure anything:

1<h2>{{t "greeting.morning"}}, {{coalesce user.firstName settings.fallback_name}}!</h2>

The coalesce helper provides a clean fallback if no user context is present (demo, anonymous preview, …).

2. datetime helper for locale + timezone:

1{{datetime with_locale=widget.contentLanguage with_timezone=browserTimezone output_format="DDDD"}}

In English: “Wednesday, April 15, 2026”. In German: “Mittwoch, 15. April 2026”. One line, perfectly localized.

3. localStorage for the done state of tasks. Unlike Pulse Check or Kudos Wall – which store real runtime user data in a Data Table – the tasks in My Workday are per-user browser-local. Why? Because setting up a Data Table for “is the stand-up done yet?” would be overkill. Browser localStorage is enough:

1var dayKey = 'mein_tag_' + new Date().toISOString().slice(0,10);
2var done = JSON.parse(localStorage.getItem(dayKey) || '[]');

The key contains the date, so the done state automatically resets daily.

When settings, when Data Tables, when localStorage?

My Workday is a good example of the right choice of persistence layer:

DataPersistenceWhy
Task texts (team-wide same)Editor settingOne editor configures for everyone
Quick link URLsEditor settingSame
Accent color, themeEditor settingBranding is editor config
Done state per tasklocalStoragePer user, per day, no aggregation
(Hypothetical:) shared team tasksData TableCross-user, persistent, with analysis

The rule of thumb: editor decides → settings. User decides, only for themselves → localStorage. User decides, visible to others → Data Table.

When to use this widget

  • Personal cockpit on the intranet homepage – every employee sees their day
  • Onboarding day 1 – new colleagues find the most important tools immediately
  • Frontline workers – mobile-optimized, no external apps needed
  • Location-specific – per location a variant with its own tasks and links

Setup steps and all 16 settings are in the My Workday gallery entry .

  • Kudos Wall – team recognition alongside the day starter
  • QR Links – quick links as QR codes for frontline workers
  • Weather Widget – weather next to the day starter