For .NET MAUI developers

Your .NET MAUI app,
as a real website.

The XAML, C# and view models you already ship to iPhone and Android, now a real website. Your app runs on your server and the browser gets finished HTML: nothing to download, no loading screen.

$dotnet add package MauiWeb
Finished HTML on the first response Your code never leaves your server Nothing for the visitor to download
Starting the app…

Live: one MAUI app, on desktop and phone

Every tap runs your C#.

This is a real MAUI app on our server, not a video. Tap a switch or drag a slider and watch the messages travel.

Starting the appBuilding a MAUI app for you on the server…
Your MAUI app, on the server
Starting a session…
Messages
0
Page updates
0
Last tap
waiting
  • Connecting to the app on the server…
→ sent to your app← updates to the page· connection
17.5KB

First response for a page with about 60 controls: the finished page, ready to read.

1.8ms

Server time for a tap, with 100 visitors using the app at once.

0MB

For the visitor to download before the app appears.

Measured on 25 October 2026. Real visitors add their own network time. How we measured

Why MauiWeb

The app you already built. Now on the web too.

No second codebase, no rewrite in another framework. The pages you made for iPhone and Android become your website.

Fix it once

One codebase for phone, desktop and web. A change you make shows up everywhere.

Opens instantly

Visitors see your app the moment the page loads. Nothing to download, no loading screen.

Found on Google

Every page is real HTML, so search engines can read it and screen readers can understand it.

Your code stays yours

Your app runs on your server and the browser only shows it. Your C# never reaches the visitor.

One app. A layout for every screen.

Web platform-specifics put a TabbedPage or Shell where a website needs it: a bottom bar on phones, a side rail on desktops, or a landing-page navbar. Pick one and watch the live app switch.

// Default: a bottom bar on narrow screens, like a phone app.
var tabs = new TabbedPage();
/tabs

Three steps to a website.

  1. 1Add a web project next to your app: dotnet new web -n MyApp.Web, then reference your shared MAUI project.
  2. 2Install MauiWeb: dotnet add package MauiWeb
  3. 3Make two calls. MapMauiWeb serves your app and UseMauiWeb draws it for the browser. Your pages stay exactly as they are.
  • Your layouts still work. Grids, stacks, sizes and SizeChanged behave as they do on a phone.
  • Free on your machine. localhost, private addresses and *.local, *.test hosts never need a license.
Program.cs
using MauiWeb.Hosting;

var app = WebApplication.CreateBuilder(args).Build();

// Your app, one copy per browser tab, drawn as HTML.
app.MapMauiWeb(() => MauiProgram.CreateMauiApp(b => b.UseMauiWeb()));

app.Run();

Every visitor gets their own app.

Each browser tab runs its own copy of your app, with its own state, exactly like each phone does. One server handles hundreds of visitors, and you scale out like any ASP.NET Core app.

How isolation and scaling work →

Build with it today, for free.

No key, no sign-up and no time limit while you build. You only pay when your site goes live.

Development

Free

Build and test without a key: localhost, private addresses and .local, .test, .localhost, .internal hosts. No sign-up, no time limit.

$dotnet add package MauiWeb

Community

Free

For open-source projects and students: a free key for one domain. Send us the project's repository or your university email.

Ask for a Community key →

Put your MAUI app on the web this week.

Free while you build. From $249 a year per domain when you go live, with 40% off your first year for the first 20 customers.