Skip to content

.CARBON

Bring any Vite frontend. Write application logic in .NET
MacOSWindowsLinuxAndroidIOS
Terminal window
npx @dotcarbon/create-app my-carbon-app
Terminal window
cd my-carbon-app
carbon dev

Your frontend

Use React, Vue, Svelte, SvelteKit, Solid, Preact, Lit, Angular, Nuxt, Vanilla, or an existing Vite application.

The .NET ecosystem

Write commands and services in C#. Use ordinary NuGet packages without a Carbon-specific wrapper.

Typed bridge

Source-generated C# handlers and generated TypeScript declarations keep IPC calls checked end to end.

Native webviews

Carbon uses the operating system webview rather than shipping a browser engine with every app.

Capabilities

Assign command permissions to labeled windows and keep privileged plugins explicitly scoped.

Production bundler

Produce desktop installers, mobile packages, signed updater metadata, icons, and platform resources.

Your frontend invokes a named command. Carbon dispatches it to generated C# code, serializes the result, and resolves the frontend promise. The same backend assembly can be referenced by desktop, Android, and iOS hosts.

src-shared/AppCommands.cs
public partial class AppCommands : IPlugin
{
public string Namespace => "app";
[CarbonCommand("greet")]
public string Greet(GreetRequest request) => $"Hello, {request.Name}!";
}
ui/src/app.ts
import { invoke } from '@dotcarbon/api'
const message = await invoke('app:greet', { name: 'John Doe' })

Continue with Create a project, or read the architecture overview to see how the hosts, runtime, bridge, and bundler fit together.