Hardware FixRecommendedDevice not working? Your driver may be the problemCheck updates for common hardware issues.Fix DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PC×
Skip to content
World desk4 min

How Does Fitz Use One Component Source for SSR and WebAssembly?

Fitz’s reported dual-target approach compiles shared .fitzv component source for SSR and browser WebAssembly, with implementation details and clear limits to the project’s claims.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Fitz can compile a single .fitzv component source for server-side rendering and for client-side WebAssembly. In Martin Palopoli’s 2026 implementation report, both targets use the same template, state, and events: the server backend emits an HTML string, while the browser backend compiles Rust to WebAssembly and constructs DOM through web-sys. This is a project account, not an independent compatibility or performance study.

What “write it once” means in Fitz

Fitz’s .fitzv files are single-file UI components. The reported setup has two ways to execute them: an SSR backend that produces an HTML string, and a client-WASM backend built with fitz build --target wasm-client. The latter compiles Rust to WebAssembly and creates browser DOM using web-sys.

As an Amazon Associate I earn from qualifying purchases.

The shared input is the component source, including its template, state, and event definitions. The outputs differ by runtime: HTML from the server versus browser DOM from the WASM target. That shared source can reduce the need to maintain separate component implementations, but it does not by itself establish identical behavior in every environment or eliminate target-specific implementation work.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What had to change for the browser target

Palopoli describes a companion library of about 40 importable components, originally rendered on the server and styled with scoped CSS. Making those components compile for the browser exposed several gaps in the WASM backend.

Raw HTML and SVG

Some components need markup such as SVG to be interpreted as markup, not displayed as escaped text. The author says the browser implementation of raw_html(x) uses set_inner_html for that purpose. The Html type also needed a small generated struct shim so existing helpers could work with it. In the SSR emitter, the marker is stripped because the existing interpolation already inserts raw markup.

Using an API that inserts raw HTML is a security-sensitive boundary: the report explains how the rendering path was enabled, but it does not provide an independent security review of input handling. Do not read compilation success as evidence that arbitrary HTML is safe to insert.

Rank #2
Sale
HTML and CSS: Design and Build Websites
  • HTML CSS Design and Build Web Sites
  • Comes with secure packaging
  • It can be a gift option

Typed list props and defaults

Components such as Select, RadioGroup, and BarChart need structured data, not just scalar values. The WASM support was extended to clone non-nullable state fields such as Vec<FieldOption> and to lower nominal struct literals used in defaults. Palopoli reports that these changes let those components render with data in the browser.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Building lists inside helpers

A pager helper needed to create a local list by iterating over a range and adding entries with .push. The report says range iteration and list pushing were added to helper bodies. This is a distinct requirement from accepting a typed list as a component prop: helper code also needs enough list operations to assemble values during rendering.

Events that normally fall through to a parent

Pager and ConfirmDialog use events that, in the server-side LiveViews pattern described by the author, bubble to a parent. A standalone browser mount has no such parent unless a composing component supplies one. The implementation routes a bound callback slot when the parent binds the event, and uses an inert no-op when the event is unbound.

This makes the components usable in the reported standalone browser context while preserving a route for a parent to handle events. The report does not establish that every integration pattern or event behavior has been independently tested.

Rank #4
Sale
Web Design with HTML, CSS, JavaScript and jQuery Set
  • Brand: Wiley
  • Set of 2 Volumes
  • A handy two-book set that uniquely combines related technologies Highly visual format and accessible language makes these books highly effective learning tools Perfect for beginning web designers and front-end developers

What the reported counts show—and what they do not

In 2026, Martin Palopoli reported that 38 of 38 companion components compiled to WASM and that 22 components ran in the live gallery. These are the author’s project totals, not independent audit results. Compilation across the library and execution of a subset in a gallery are different milestones.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Palopoli described the gallery as running “22 companion components compiled to WebAssembly, in the browser, from their exact server source,” including badges, cards, alerts, inputs, a button with an SVG icon, a select and radio group with live options, a bar chart, and the controlled Pager and ConfirmDialog. The examples demonstrate the range of components represented in that gallery; they do not establish measured speed, bundle size, accessibility, or production readiness.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

What remains outside the report

The account is useful as an implementation description, but it is not a comparative evaluation. It supplies no controlled performance comparison, bundle-size measurements, independent security review of raw HTML insertion, or accessibility results. Nor does it quantify developer productivity or show that shared source removes all differences between server and browser behavior.

Fine-grained reactivity is described as a next step. Palopoli says it is needed so live text inputs can retain their caret during patch-in-place updates; the report gives no delivery date. That distinction matters when assessing the current scope: the stated component compilation and gallery results should not be mistaken for a claim that every interactive detail is complete.

Source

Martin Palopoli, “Write it for the server, run it in the browser: dual-target UI components in Fitz,” DEV Community. The page displays “Posted on Sep 24” without a year; the article is associated with 2026 in the available publication listing.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Outdated Drivers Are Slowing You DownFree scan - exact matches
Windows Errors? Fix Them Before They SpreadFree repair scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.