← all workproject

SnapshotDiff

A disk cleaner with undo. One .NET 10 Blazor core runs unchanged in MAUI (Windows, macOS, Android), Photino (Linux) and Blazor Server.

.NETBlazorMAUIPhotinoSQLiteTailwind
schematic — no public UI
SnapshotDiff.CoreRazor Class Library · .NET 10 · one feature per sliceScannerTrashExportExclusionsConfigMAUIWin · Mac · AndroidPhotinoLinuxBlazor Serverbrowser

Architecture

Blazor Hybrid core→MAUI shell→Photino shell→Blazor Server shell

The idea

A cross-platform desktop file-cleaner where the entire UI and logic is one Blazor Hybrid core, mounted identically in MAUI, Photino and Blazor Server — write once, ship three shells.

How it startedresearch

Explored the Blazor Hybrid hosting models to see how far a single component tree could be pushed across native shells without per-shell forks.

Decisions & tradeoffs

SQLite-backed trash + undo instead of destructive deletes; Tailwind for a native-feeling UI; a strict boundary so the shells share 100% of the app code.

Development

About 10k lines of C# and Razor, with 150+ tests pinning the same behaviour in all three hosts.

By the numbers

1
shared core
3
hosts
150+
tests
~10k
lines of C# + Razor

History

  1. Mar 2026launchedReleased: one Blazor core in three apps — desktop, mobile, browser.