Ivy is the ultimate framework for building internal tools and dashboards using Pure C#, unifying frontend and backend into a single cohesive codebase. It can also be used to build general-purpose full-stack applications. Ivy's main focus is on developer's experinece, UI and UX.
Welcome to Ivy
Ivy eliminates the traditional frontend/backend split by bringing React-like declarative patterns directly to C#. You build your entire project—UI, logic, and data access—in one place.
Easiest Way: File-based Apps in under 1 minute
The fastest way to try Ivy is using .NET 10's file-based apps feature. This allows you to create a self-contained full-stack application in a single script-like file without any project files.
Make sure to have latest .NET installed, download it here
- Create a new file called
HelloWorldApp.cs. - Paste the following code:
#:package Ivy@*
using Ivy;
using Ivy.Shared;
using Ivy.Views;
var server = new Server();
server.AddApp<HelloWorldApp>();
await server.RunAsync();
[App]
class HelloWorldApp : ViewBase
{
public override object? Build()
{
return Layout.Center()
| new Card(
Layout.Vertical().Gap(6).Padding(2)
| new Confetti(new IvyLogo())
| Text.H2("Hello there!")
| Text.Markdown("Welcome to the fantastic world of Ivy.<br>Let's build something amazing together!")
| new Separator()
| Text.Markdown("You'd be a hero to us if you could :ivy-branded-star: us on [Github](https://github.com/Ivy-Interactive/Ivy-Framework)")
)
.Width(Size.Units(120).Max(500));
}
}
Understanding the Code
Let's break down each part of the file-based application.
Package Reference
#:package Ivy@*
This is a direct Ivy nuget package reference. It tells the .NET runtime to download and use the latest version of the framework, allowing you to run this file as a standalone script without a project file.
Server Initialization
var server = new Server();
server.AddApp<HelloWorldApp>();
await server.RunAsync();
This part initializes the Ivy server, registers your HelloWorldApp view, and starts the server. The server handles all state management and real-time communication. Learn more about the Ivy program here.
The View
[App]
class HelloWorldApp : ViewBase
{
// ...
}
In Ivy, your UI is organized into views. By inheriting from ViewBase, you get access to all the hooks and lifecycle methods. The [App] attribute tells Ivy to show this view in the main navigation.
The Build Method
public override object? Build()
{
return Layout.Center()
| new Card(
// ...
);
}
The Build() method is where you define your UI. It returns a tree of components that Ivy renders on the client. Just like in React, whenever state changes, this method is called again to determine the new UI structure.
UI Composition
Layout.Center()
| new Card(...)
Ivy uses a fluent API and the pipe operator (|) to compose layouts and widgets. This makes it easy to read and build complex hierarchical UIs. Learn more about the Card widget here.
- Run it immediately using the Ivy CLI:
dotnet run HelloWorldApp.cs
Ivy will start a local server at http://localhost:5010. Open it in your browser to see your interactive "Hello" app!
Advanced Projects: Regular Projects in under 3 minutes
For larger applications that require multiple files, services, and deep integrations, we recommend creating a regular Ivy project using the CLI.
Installing the CLI
To use the ivy command, you'll need the .NET 10 SDK installed. Then, install the Ivy CLI globally:
dotnet tool install -g Ivy.Console
Verify the installation:
ivy --version
Initializing a Project
Create a new directory for your project and initialize it. We recommend using the --hello flag to include an example hello app:
mkdir MyProject
cd MyProject
ivy init --hello
Running Your Project
Run the project with hot reloading enabled:
dotnet watch
What You Can Do
- Database Integration: Connect to SQL Server, PostgreSQL, Supabase, and more with
ivy db add. - Authentication: Add Auth0, Clerk, or Microsoft Entra with
ivy auth add. - Deployment: Deploy to AWS, Azure, GCP, or Sliplane with
ivy deploy. - AI Agentic Features : Generate entire back-office applications from your database schema using
ivy app create. You can also try and generate an entire application with a DB using theivy db generatecommand.
Community & Resources
- Official Documentation: Comprehensive guides and API references.
- Ivy Samples: Real-time demo of all Ivy widgets and layouts.
- App Gallery: See real-world applications and integrations built with Ivy.
- Ivy Framework GitHub: The core framework source code. Open-source and free to use.
- Ivy Examples GitHub: A collection of example projects to kickstart your development.
