Skip to content

Instantly share code, notes, and snippets.

View mattleibow's full-sized avatar
🏠
Working from home

Matthew Leibowitz mattleibow

🏠
Working from home
View GitHub Profile
@mattleibow
mattleibow / perfect-nav-spec.md
Created May 7, 2026 17:25
The Perfect Navigation System for .NET MAUI — cross-platform comparison and ground-up design

The Perfect Navigation System for .NET MAUI

What Would It Look Like If We Started From Scratch?

This document compares navigation systems across platforms and frameworks, identifies what each gets right and wrong, and proposes what a ground-up replacement for MAUI navigation would look like. The goal is to design the ideal system first, then layer backward compatibility on top — not the other way around.


Part 1: The Landscape Today

@mattleibow
mattleibow / shell-v2-spec.md
Created May 7, 2026 17:13
Shell v2: Incremental Navigation Redesign — spec for discussion

Shell v2: Incremental Navigation Redesign

Problem Statement

Shell's current architecture conflates navigation structure (tabs, flyout, modals) with navigation operations (pushing pages with parameters). This creates five interrelated pain points that push developers toward workarounds or away from Shell entirely:

  1. Split registration model — Tab roots must be declared in AppShell.xaml; pushed pages must use Routing.RegisterRoute. Restructuring your app (promoting a pushed page to a tab) requires refactoring both XAML and startup code.

  2. No scoped parameters for repeated routes — Shell's flat ShellRouteParameters dictionary means you can't push the same page type twice with different state (e.g., /product/apple/compare/product/banana). Path parameters compound this by making the pattern more tempting without delivering scoped delivery.

@mattleibow
mattleibow / deps-diagram.md
Last active May 6, 2026 19:04
SkiaSharp Build Dependency Graph

SkiaSharp Pipeline Stage Flow

Actual ADO Pipeline Execution

graph TD
    P[prepare] --> NM[native_macos<br>10 jobs]
    P --> NW[native_windows<br>19 jobs]
    P --> NL[native_linux<br>25 jobs]
 P --&gt; NWASM[native_wasm16 jobs]
@mattleibow
mattleibow / native-build-deps.md
Last active May 2, 2026 02:02
SkiaSharp Native Build Dependency Graph

Build Dependency Graph

Auto-generated by python3 scripts/infra/caching/generate-dep-graph.py Explore: paste the mermaid block into mermaid.live

Pipeline Stages

flowchart TB
@mattleibow
mattleibow / skiasharp-api-decoupling-analysis.md
Created April 30, 2026 15:38
Deep Research: Decoupling SkiaSharp's Public API From Skia — agreements, disagreements, and creative alternatives

Deep Research: Decoupling SkiaSharp's Public API From Skia

Context: This is a research-driven response to a thought experiment proposing that SkiaSharp should evolve from a 1:1 Skia mirror into a "Skia-inspired but independently versioned" API. Five parallel research agents investigated the actual codebase, tooling, consumer impact, and creative alternatives.


✅ What I AGREE With

1. "Churn is concentrated, not pervasive" — Verified, mostly.

@mattleibow
mattleibow / skia-analyst-issue.md
Last active April 29, 2026 17:11
SkiaSharp API Gap Analysis — 50 actionable items from full Skia m88-m148 scan

Skia Analyst Report

50 actionable items · 16 already bound · 29 no action needed
m147 (full scan) · Generated 2026-04-29

Legend

Status (squares)

@mattleibow
mattleibow / skia-analyst-2026-04-29.html
Created April 29, 2026 07:54
Skia Analyst: Full scan m147 — 95 findings, both changelog and gap analysis
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Skia Analyst — m147 (full, 2026-04-29)</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<style>
:root{--bg:#f6f8fa;--border:#d8dee4;--row-hover:#f0f4f8;--muted:#656d76;}
body{background:var(--bg);color:#1f2328;font-size:14px;}
@mattleibow
mattleibow / v3.119.4-preview.1.1..origin_main.html
Created April 28, 2026 12:48
SkiaSharp Release Notes: v3.119.4 → 4.147.0 main (30 findings with upstream Skia m134-m147 benefits)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Release Notes — v3.119.4-preview.1.1..origin/main (2026-04-28)</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<style>
:root{--bg:#f6f8fa;--border:#d8dee4;--row-hover:#f0f4f8;--muted:#656d76;}
body{background:var(--bg);color:#1f2328;font-size:14px;}
@mattleibow
mattleibow / v3.119.2..origin_main.html
Created April 27, 2026 15:42
SkiaSharp Release Notes: v3.119.2 → 4.0 main (37 findings with upstream benefits)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Release Notes — v3.119.2..origin/main (2026-04-27)</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<style>
:root{--bg:#f6f8fa;--border:#d8dee4;--row-hover:#f0f4f8;--muted:#656d76;}
body{background:var(--bg);color:#1f2328;font-size:14px;}
@mattleibow
mattleibow / sample-scout-2026-04-27.html
Created April 27, 2026 15:42
Sample Scout: 437 Skia GMs analyzed with gallery-ready fields, prompts, and coverage status
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Skia GM Sample Scout</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<style>
:root{--bg:#f6f8fa;--border:#d8dee4;--muted:#656d76;}
body{background:var(--bg);color:#1f2328;font-size:14px;}