Open Source

Write UI in C#. Ship JavaScript.

eQuantic UI compiles your C# components to optimized TypeScript/JavaScript. Build reactive web UIs with the language and tools you already know.

Why eQuantic UI?

The best of both worlds: C# productivity with JavaScript performance.

Write UI in C#
Use familiar C# syntax to define your UI. No JavaScript required.
Compiles to TypeScript
Automatic compilation to optimized TypeScript/JavaScript bundles with Bun.
Server Actions
Seamless client-server communication with [ServerAction] attribute.
Enterprise Hot Reload
Instant feedback during development with eqc --watch, maintaining application state.
Full C# Debugging
Native Source Map support allows you to debug your C# code directly in the browser DevTools.
Zero-runtime CSS
Styles are extracted at build-time into static CSS, eliminating client-side computation overhead.
Modern C# Support
Full support for C# 12 features including Recursive Patterns, using var, and advanced switch expressions.

See the Magic

Write declarative UI in C#. The compiler generates optimized TypeScript.

using eQuantic.UI.Core;
using eQuantic.UI.Components;

[Page("/counter")]
public class Counter : StatefulComponent
{
    [ServerAction]
    public async Task<int> IncrementOnServer(int value)
    {
        return value + 1;
    }

    public override ComponentState CreateState() => new CounterState();
}

public class CounterState : ComponentState<Counter>
{
    private int _count = 0;

    public override IComponent Build(RenderContext context)
    {
        return new Container {
            ClassName = "counter",
            Children = {
                new Heading($"Count: {_count}", 1),
                new Row {
                    Gap = "1rem",
                    Children = {
                        new Button {
                            Text = "+",
                            OnClick = () => SetState(() => _count++)
                        },
                        new Button {
                            Text = "Server +",
                            OnClick = async () => {
                                _count = await Component.IncrementOnServer(_count);
                                SetState(() => {});
                            }
                        }
                    }
                }
            }
        };
    }
}

20+ Production-Ready Components

Everything you need to build modern web applications.

Layout
Container
Row
Column
Grid
GridItem
Stack
Box
Flex
Input
TextInput
TextArea
Select
Checkbox
Radio
RadioGroup
Switch
Slider
Display
Text
Heading
Badge
Avatar
Card
Table<T>
List
Feedback
Alert
Toast
Spinner
Navigation
Button
Link
Navbar
Sidebar
Tabs
Breadcrumb
Overlay
Modal
Drawer

Get Started in Minutes

Install the template, create your first component, and see it running in your browser.

Coming Soon - NuGet packages in development
# Install the template
dotnet new install eQuantic.UI.Templates

# Create a new app
dotnet new equantic-app -n MyApp
cd MyApp

# Run with hot reload
dotnet run

Built on Proven Technologies

C# / .NET 8
TypeScript
Bun
ASP.NET Core
Roslyn Compiler
Write UI in C#. Ship JavaScript. | eQuantic Tech