Apr 28 → Aug 29, 2026 · 28 screenshots

The journey, with receipts.

Every image below is an unedited original — original filenames, no re-encoding, bugs kept next to fixes. Why were they saved? Not to show off later — each one was captured to compare Morph's native render against what the browser renders for the same HTML/CSS. If you think this is fake, check the commit history: commits around each screenshot's date line up with the bug fixes and features the images show. Originals live in morph/records/ with manifest.json. This page only shows byte-identical copies.

verify: open manifest.json, then run sha256sum "records/<original name>.png" — hashes match the copies served here. Still unsure? git log --since=2026-04-01 --until=2026-09-01 lines up with the screenshot dates and fixes.

Note: screenshots stop in August because documenting moved into docs/ and the layout engine was mostly done. These shots existed to compare Morph's render against the browser — with focus shifted to JS-to-C++ logic, states, and window management, there was nothing left to compare visually.

Apr 28, 2026 · web video editor

Phase 0 — Why Morph exists

Fighting frame accuracy in a browser timeline (studio.levizr.com) is what caused Morph: compile JSX + CSS to native instead.

2026-04-28 — Timeline component wired into the editor
2026-04-28originsha 72fac1cf1b82

Timeline component wired into the editor

VS Code: app/editor/page.tsx renders <Timeline />.

Screenshot from 2026-04-28 12-50-41.png

2026-04-28 — Timeline ruler 0–28s, empty canvas
2026-04-28originsha c784f63e2ab0

Timeline ruler 0–28s, empty canvas

localhost:3000/editor ruler renders but canvas stays empty.

Screenshot from 2026-04-28 21-43-45.png

2026-04-28 — Playhead math debug logs
2026-04-28originsha 7aec7c7480c4

Playhead math debug logs

Close-up ruler with Playhead.tsx:63 Calculated time logs.

Screenshot from 2026-04-28 21-52-29.png

May 8, 2026 · first native window

Phase 1 — HTML2GL birth

First native windows with no browser: lexer, parser, layout, OpenGL rendering.

2026-05-08 — First native window, garbled glyphs
2026-05-08bug keptsha e02e1583daec

First native window, garbled glyphs

HTML2GL App opens. Text rasterization bug renders garbled glyphs.

Screenshot from 2026-05-08 11-49-00.png

2026-05-08 — Test Page red H1 renders natively
2026-05-08milestonesha e86104f3b088

Test Page red H1 renders natively

VS Code html2gl source behind. H1 color:red works, no browser.

Screenshot from 2026-05-08 12-40-47.png

2026-05-08 — Body CSS class styling test
2026-05-08milestonesha 021d671c63b0

Body CSS class styling test

body{background:white;color:black} via <style>. CSS parser working.

Screenshot from 2026-05-08 12-45-34.png

2026-05-08 — Levizr Engine UI dashboard
2026-05-08milestonesha 69a710702ebb

Levizr Engine UI dashboard

System Status row, Run/Stop Engine buttons. HTML straight to GPU calls.

Screenshot from 2026-05-08 12-49-22.png

May 21–22, 2026 · bug-to-fix pairs

Phase 2 — Hero boilerplate

Build beautiful apps seamlessly hero. Bugs kept next to their fixes.

2026-05-21 — Hello World clipped bar bug
2026-05-21bug keptsha a5f92c872c99

Hello World clipped bar bug

Red bar + white strip on black. Clipping/viewport bug, kept as evidence.

Screenshot from 2026-05-21 22-04-01.png

2026-05-22 — Hero buttons overlapped (bug)
2026-05-22bug keptsha 4ac2614ff6f0

Hero buttons overlapped (bug)

Get Started and Learn More overlap. Positioning bug.

Screenshot from 2026-05-22 13-12-40.png

2026-05-22 — Hero centered (fix)
2026-05-22fixsha 705046054bb2

Hero centered (fix)

Same hero correctly centered with pill badge. Pair with previous shot.

Screenshot from 2026-05-22 13-38-25.png

2026-05-22 — Hero overflow clipped (bug)
2026-05-22bug keptsha 60f6a36e2f9d

Hero overflow clipped (bug)

Title cut off. Viewport regression, kept honestly.

Screenshot from 2026-05-22 13-52-04.png

2026-05-22 — Two-line title wrap
2026-05-22milestonesha 0a86c7aba6b2

Two-line title wrap

Title wraps and centers. Line-break handling verified.

Screenshot from 2026-05-22 22-45-38.png

May 23–24, 2026 · overlays and stretch bugs

Phase 3 — Layout and scroll

Nav, nesting, scroll viewport, modals. Failures included on purpose.

2026-05-23 — NovaEngine nav + Next-Gen Layout
2026-05-23milestonesha fd2313823934

NovaEngine nav + Next-Gen Layout

Nav, Deploy App button, stacked cards. Scroll viewport test.

Screenshot from 2026-05-23 22-06-10.png

2026-05-23 — Scrolled: About Our Engine Layout
2026-05-23milestonesha a0a98614a939

Scrolled: About Our Engine Layout

Custom bounds, nesting, scroll calculation. Core Architecture cards.

Screenshot from 2026-05-23 22-30-06.png

2026-05-23 — Flexbox Rules nested cards
2026-05-23milestonesha 46e42f7d5f71

Flexbox Rules nested cards

Architecture, FreeType, Flexbox cards compute correctly.

Screenshot from 2026-05-23 22-30-12.png

2026-05-24 — Modal grey overlay bug — border + rounded corners
2026-05-24bug keptsha 0f0c3d0d9d83

Modal grey overlay bug — border + rounded corners

Grey box overflowed while implementing CSS border + border-radius. This is where the border-box sizing implementation landed — saved to compare against the browser render.

Screenshot from 2026-05-24 00-12-06.png

2026-05-24 — Get Started full-width stretch bug
2026-05-24bug keptsha ab8af9ce90e2

Get Started full-width stretch bug

Blue button stretches full width. Flex sizing bug.

Screenshot from 2026-05-24 11-39-14.png

2026-05-24 — Button row tearing bug
2026-05-24bug keptsha ab64222f3afd

Button row tearing bug

Blue bar fragments. Inline/block interop bug.

Screenshot from 2026-05-24 11-49-37.png

May 25, 2026 · side-by-side proof

Phase 4 — Browser vs Morph parity

Chrome (left) vs Morph (right) on a 12-section stress page. Pixel parity — plus one honest failure.

2026-05-25 — Stress 1–3: nesting, wrap, interleave
2026-05-25browser vs morphsha 2b922f59b8f4

Stress 1–3: nesting, wrap, interleave

Deep nesting 8 levels, 25 inline wrap, block/inline groups match.

Screenshot from 2026-05-25 23-30-26.png

2026-05-25 — Stress 4–6: margins, display:none
2026-05-25browser vs morphsha a5d3ee63653c

Stress 4–6: margins, display:none

Margin collapsing chain, display:none adjacency, min/max combo.

Screenshot from 2026-05-25 23-30-46.png

2026-05-25 — Stress 6–7: combo + siblings
2026-05-25browser vs morphsha 81a89c094be1

Stress 6–7: combo + siblings

Border+padding+min/max box and 10 siblings margins agree.

Screenshot from 2026-05-25 23-31-03.png

2026-05-25 — Stress 9–12: fonts, edge cases
2026-05-25browser vs morphsha cbc7e9e24a39

Stress 9–12: fonts, edge cases

Font sizes, zero-height empties, pure-inline and blocks-only rows.

Screenshot from 2026-05-25 23-31-12.png

2026-05-25 — Green overlay: 1000px border experiment
2026-05-25bug keptsha f0b203ea47e1

Green overlay: 1000px border experiment

Border experiment: border set to 1000px to compare what the browser does vs what Morph does. The giant green block is Morph over-painting.

Screenshot from 2026-05-25 23-57-51.png

May 30 – Aug 29, 2026 · launch

Phase 5 — Real apps

Debugger, Calculator, public indexing, and auth lifecycle.

2026-05-30 — Box-model view: devtools experiment, later dropped
2026-05-30milestonesha 915bd8f0c9d2

Box-model view: devtools experiment, later dropped

Wanted to see how the box model looks, so coded this into Morph devtools. Removed afterwards because many bugs arrived; dropped for now, may come back in future.

Screenshot from 2026-05-30 14-57-10.png

2026-08-06 — Calculator dark app
2026-08-06milestonesha 805881fed2be

Calculator dark app

Working Morph Calculator. Real widget, not a mock.

Screenshot from 2026-08-06 21-46-07.png

2026-08-29 — Google indexes morph.levizr.com
2026-08-29launch proofsha 86c2b7c9e9d5

Google indexes morph.levizr.com

Morph and Morph Docs appear in search. Public launch proof.

Screenshot from 2026-08-29 20-13-02.png

2026-08-29 — Morph Login welcome back
2026-08-29milestonesha 8fdb6cbb5d5b

Morph Login welcome back

Glass login card with Username/Password and Sign in.

Screenshot from 2026-08-29 21-58-00.png

2026-08-29 — Login unmounted, memory freed — button transparent-bg bug
2026-08-29milestonesha 92a62e01690d

Login unmounted, memory freed — button transparent-bg bug

Signed-in state proves lifecycle and memory management (form unmounted, memory freed). Bug kept: Sign out button CSS does not support transparent background — renders solid instead.

Screenshot from 2026-08-29 21-58-09.png