Skip to content

Ivy-Interactive/Ivy-Framework

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4,183 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

logo

NuGet NuGet Downloads License CI website codespaces AGENTS.md

Build Full-Stack Applications in Pure C#

Ivy is a modern C# framework that lets you build reactive full-stack web applications entirely in pure C# - using familiar React-style components, hooks, and declarative patterns. No frontend/backend split, no HTML/CSS/JS - just write type-safe C# code and ship beautiful, production-ready internal tools at lightning speed.

Quick Start   •   Docs   •   Samples   •   Examples   •   Current Sprint   •   Roadmap

Simple Example

Ivy takes a lot of inspiration from frameworks like React. If you know React, you'll feel right at home. Here's a simple counter app built with Ivy:

public class SimpleCounterApp : ViewBase
{
   public override object? Build()
   {
       var count = UseState(0);
       
       UseEffect(() =>
       {
           Console.WriteLine($"Count changed to: {count.Value}");
       }, [count]);

       return Layout.Vertical(
           Text.Block($"Count: {count.Value}"),
           new Button("Increment", onClick: _ => count.Set(count.Value + 1))
       );
   }
}

Features

⚙️ Architecture

  • Rich Widget Library: Extensive set of pre-built widgets to build any app. If you need more, an external widget framework is coming soon, where you can integrate any React, Angular, or Vue component.
  • External Widget Framework: Easily integrate any third-party React component.
  • Hooks: Familiar React-style hooks for state management, side effects, and lifecycle events.

🎨 UI Components

  • Forms: Create complex CRUD forms with validation and data binding.
  • Data Tables: Sort, filter, and paginate data.
  • Charts/Dashboards: Build interactive charts and dashboards with ease.

⚡ Developer Experience

  • Hot-Reloading: Full support for hot-reloading with maintained state as much as possible.
  • LLM Code-Generation Compatibility: Designed to maximize compatibility with LLM code generation tools.

Ivy maintains state on the server and sends updates over WebSocket. The frontend consists of a pre-built React-based rendering engine. With Ivy, you never need to touch any HTML, CSS, or JavaScript. Only if you want to add your own widgets.

Tools

The Ivy.Console CLI provides a suite of tools to streamline your development workflow:

🚀 Getting Started

  • Project Initialization: Quickly set up new Ivy projects with predefined templates.
  • AI-Powered App Generation: Generate applications using AI based on your specifications.
  • MCP: Teach any coding agent to use Ivy Framework for building full-stack applications.

🔌 Integrations

  • Authentication: Built-in support for popular authentication providers like Supabase, Auth0, Clerk, and Microsoft Entra.
  • Database: Easy integration with SQL Server, Postgres, Supabase, MariaDB, MySQL, Airtable, Oracle, Google Spanner, Clickhouse, Snowflake, and BigQuery.

📦 Production

  • Deployment Management: Manage deployments to Azure, AWS, Google Cloud, or Sliplane with ease.
  • Secrets Management: Securely manage sensitive information within your applications.

See Demo Video

Usage

Quick Start

⚠️ Note: Ivy.Console is still in beta, and the agentic features require an account. Register for a free account to be among the first to try these features.

Make sure you have the .NET 10 SDK installed.

  1. Install Ivy CLI:

    dotnet tool install -g Ivy.Console
  2. Create a new project:

     ivy init --hello
  3. Run:

    ivy run --browse
  4. Open http://localhost:5010 in your browser.

You can also run ivy samples to see all the components that Ivy offers and ivy docs for documentation.

Want to help build Ivy Framework?

About

The ultimate framework for building internal tools with LLM code generation by unifying front-end and back-end into a single C# codebase.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors