Project
Rayfin XP
- React
- TypeScript
- Microsoft Fabric
- Rayfin
- Power BI
- rough.js
A fun take on a Microsoft Fabric data app, built on the
@microsoft/rayfin Data App template.
Instead of a plain dashboard, your analytics live inside a tiny Windows XP
desktop.
What it is
The whole experience boots like an old PC and drops you onto a Bliss-wallpaper desktop with working icons, a Start menu, and a taskbar clock:
- XP boot loader — the black logo screen with the sliding loading bar, then the blue welcome splash.
- 🎨 MS Paint — the classic Paint chrome (tool palette + 28-color box) whose canvas is a painted data dashboard: KPI tiles and hand-drawn
rough.jscharts (bar, pie, line, table) fed by a live Power BI semantic model, with Region / Category slicers that re-query the model. All thick black outlines and Comic Sans. - 💬 MSN Messenger — an MSN-style chat window for the Data Agent: ask it about revenue, regions, trends, top products, or the category mix (Nudge included 😄).
- 💣 Minesweeper & 📝 Notepad — because of course.
The data layer
The Paint dashboard is wired to a live Power BI semantic model (contosoSales,
registered in fabric.yaml). Each visual calls a query factory — a .dax query
plus a TypeScript factory — through the useSemanticModelQuery hook, and the
Region / Category slicers inject DAX filters so the whole canvas re-queries on
selection.
The MSN chat is a small keyword-intent agent: it matches your message to a premade DAX query and runs it live against the same semantic model the dashboard uses, then formats the reply MSN-style. There’s no LLM and no API key — answers come straight from the model.
Because Fabric auth can’t be mocked, the live charts and agent answers only render inside the Fabric portal embed; standalone, the desktop, Minesweeper and Notepad still run with no sign-in.
Why I built it
It started as an excuse to learn the Rayfin Data App template end to end — semantic-model queries, slicer-driven DAX filters, and Fabric embedding — and turned into a nostalgia project. It’s a personal hobby build, not affiliated with or endorsed by Microsoft.