Personal Dashboard

How a Local Dashboard Unified Notion Tasks and Calendars into a Single, Always‑On View

The Challenge

Daily execution relied on two parallel systems: Notion for task management and multiple calendars (meetings and time‑blocked work sessions). Many calendar entries effectively were tasks, which blurred the line between what needed doing and when to do it.

The friction was clarity and timing: seeing the current task, the event in progress, the next commitment, and exactly how many minutes were available — without bouncing between apps or breaking focus.

Before: Fragmented Workflow

  • Constant app switching between calendar and Notion
  • Meetings-as-tasks lived apart from task lists
  • Unclear time remaining before the next event
  • Context switching eroded focus between calls
  • No single place to see the “in‑progress” task
  • Lacked a dependable return point after each meeting

After: Unified Daily Control

  • Tasks + calendar combined in one dashboard
  • Current and next events always visible
  • Prominent “minutes until next event” countdown
  • In‑progress Notion task pinned on the right
  • Immediate focus resumption between meetings
  • Lower cognitive load; fewer context swaps

The Solution

A two‑part system: a macOS app (Swift) aggregates tasks from Notion and events from local calendars (Outlook and Apple Calendars) and exposes a local JSON web service. A front‑end dashboard (Node.js + React with Material Design) runs in Docker and consumes that service to render an always‑on view on a small monitor.

Key Features

Unified Task & Schedule

Notion tasks and calendar events appear together in a single, distraction‑free interface.

Always‑On Display

Lives on a dedicated small monitor to anchor the workday.

Live Countdown

Shows exact minutes until the next calendar event.

In‑Progress Task

Right‑hand panel pins the current Notion task for instant refocus.

Local & Private

All processing and data stay on the Mac; no external cloud dependency.

Between‑Meeting Flow

Gives a stable return point after every call or event.

How It Works

Aggregation:

Swift app fetches Notion tasks and merges Outlook/Apple Calendar data locally.

Local Service:

Exposes a lightweight JSON API on the Mac for low‑latency consumption.

Dashboard:

React (Material Design) front‑end in Docker renders current + next events and the live countdown, with the in‑progress task pinned.

Focus Loop:

Between meetings, glance once to resume the exact task without hunting through apps.

The Dashboard in Action

Personal Dashboard Interface showing current task, calendar events, and countdown timer

Live dashboard view: Current task on the right, upcoming meetings on the left with countdown timer

Technical Implementation

Designed for reliability, privacy, and immediacy — everything runs locally for zero‑latency feel and full data ownership.

Technology Stack

Swift logo
Swift
Node.js logo
Node.js
React logo
React
Material UI logo
Material UI
Docker logo
Docker
Notion logo
Notion

Architecture Highlights

  • Local‑first, private architecture — all data stays on the Mac; no third‑party cloud.
  • Swift aggregation service — unified JSON feed for tasks + calendars.
  • React + Material Design UI — glanceable typography and layout for distance viewing.
  • Dockerized front‑end — consistent, portable deployment to the display.
  • Low‑latency UX — live countdown timer and real‑time status of current/next events.

Results & Impact

The dashboard became a single source of truth. At a glance, it shows the event in progress, what’s next, and the exact time remaining — making it effortless to return to the right Notion task between commitments.

Measurable Outcomes

  • Zero guesswork — live countdown removes timing uncertainty.
  • Faster context recovery — in‑progress task is always visible.
  • Reduced cognitive load — no app toggling to regain the thread.
  • Consistent daily rhythm — a reliable anchor between meetings.

Why This Approach Works

This project follows the Evans Consulting Services playbook: identify operational friction, build a purpose‑built tool, and deliver a working system that immediately reduces overhead.

Rather than adapting to a generic productivity app, the solution fits the real workflow: local data, glanceable UI, and an always‑ready display.

Key Success Factors

  • Built around the actual day — mirrors how work really happens between meetings.
  • Single‑purpose interface — no clutter; only what drives focus.
  • Local control & privacy — zero external dependencies.
  • Low friction to glance — fast, readable, and always available.

Ready to get started?

Let's discuss how I can help reduce operational friction and build solutions tailored to your needs.