The same app, in five frameworks.
This is one Nifra app - one 50-item data loader, one component per framework - rendered through all five @nifrajs/web adapters. Every row is server-rendered to identical markup; flip a framework and its real client bundle loads and hydrates the panel live. The sizes below aren't estimates - they're the gzip bytes this site's build measured for each hydration bundle.
catalog.applive
Items (50)
- Item 1
- Item 2
- Item 3
- Item 4
- Item 5
- Item 6
- Item 7
- Item 8
- Item 9
- Item 10
- Item 11
- Item 12
- Item 13
- Item 14
- Item 15
- Item 16
- Item 17
- Item 18
- Item 19
- Item 20
- Item 21
- Item 22
- Item 23
- Item 24
- Item 25
- Item 26
- Item 27
- Item 28
- Item 29
- Item 30
- Item 31
- Item 32
- Item 33
- Item 34
- Item 35
- Item 36
- Item 37
- Item 38
- Item 39
- Item 40
- Item 41
- Item 42
- Item 43
- Item 44
- Item 45
- Item 46
- Item 47
- Item 48
- Item 49
- Item 50
Items (50)
- Item 1
- Item 2
- Item 3
- Item 4
- Item 5
- Item 6
- Item 7
- Item 8
- Item 9
- Item 10
- Item 11
- Item 12
- Item 13
- Item 14
- Item 15
- Item 16
- Item 17
- Item 18
- Item 19
- Item 20
- Item 21
- Item 22
- Item 23
- Item 24
- Item 25
- Item 26
- Item 27
- Item 28
- Item 29
- Item 30
- Item 31
- Item 32
- Item 33
- Item 34
- Item 35
- Item 36
- Item 37
- Item 38
- Item 39
- Item 40
- Item 41
- Item 42
- Item 43
- Item 44
- Item 45
- Item 46
- Item 47
- Item 48
- Item 49
- Item 50
Items (50)
- Item 1
- Item 2
- Item 3
- Item 4
- Item 5
- Item 6
- Item 7
- Item 8
- Item 9
- Item 10
- Item 11
- Item 12
- Item 13
- Item 14
- Item 15
- Item 16
- Item 17
- Item 18
- Item 19
- Item 20
- Item 21
- Item 22
- Item 23
- Item 24
- Item 25
- Item 26
- Item 27
- Item 28
- Item 29
- Item 30
- Item 31
- Item 32
- Item 33
- Item 34
- Item 35
- Item 36
- Item 37
- Item 38
- Item 39
- Item 40
- Item 41
- Item 42
- Item 43
- Item 44
- Item 45
- Item 46
- Item 47
- Item 48
- Item 49
- Item 50
Items (50)
- Item 1
- Item 2
- Item 3
- Item 4
- Item 5
- Item 6
- Item 7
- Item 8
- Item 9
- Item 10
- Item 11
- Item 12
- Item 13
- Item 14
- Item 15
- Item 16
- Item 17
- Item 18
- Item 19
- Item 20
- Item 21
- Item 22
- Item 23
- Item 24
- Item 25
- Item 26
- Item 27
- Item 28
- Item 29
- Item 30
- Item 31
- Item 32
- Item 33
- Item 34
- Item 35
- Item 36
- Item 37
- Item 38
- Item 39
- Item 40
- Item 41
- Item 42
- Item 43
- Item 44
- Item 45
- Item 46
- Item 47
- Item 48
- Item 49
- Item 50
Items (50)
- Item 1
- Item 2
- Item 3
- Item 4
- Item 5
- Item 6
- Item 7
- Item 8
- Item 9
- Item 10
- Item 11
- Item 12
- Item 13
- Item 14
- Item 15
- Item 16
- Item 17
- Item 18
- Item 19
- Item 20
- Item 21
- Item 22
- Item 23
- Item 24
- Item 25
- Item 26
- Item 27
- Item 28
- Item 29
- Item 30
- Item 31
- Item 32
- Item 33
- Item 34
- Item 35
- Item 36
- Item 37
- Item 38
- Item 39
- Item 40
- Item 41
- Item 42
- Item 43
- Item 44
- Item 45
- Item 46
- Item 47
- Item 48
- Item 49
- Item 50
Same loaders, streaming, islands, routing, and query cache across all five - only the adapter changes. Authored in bench/ssr, measured by site/build-frameworks.ts, and prerendered into this page (the request-time worker stays React-only - it never loads five runtimes).