# Serenity

> Business Apps Made Simple with Asp.Net Core MVC / TypeScript

- **URL**: https://www.freshcrate.ai/projects/Serenity
- **Author**: serenity-is
- **Category**: Frameworks
- **Latest version**: `10.0.1` (2025-11-24)
- **License**: MIT
- **Source**: https://github.com/serenity-is/Serenity
- **Homepage**: https://serenity.is
- **Language**: C#
- **GitHub**: 2,682 stars, 811 forks
- **Registry**: github
- **Tags**: `admin-dashboard`, `admin-panel`, `aspnet`, `business-application`, `c#`, `code-generation`, `crud`, `csharp`, `datagrid`

## Description

Business Apps Made Simple with Asp.Net Core MVC / TypeScript

## Recent releases

| Version | Date | Urgency | Changes |
| --- | --- | --- | --- |
| `10.0.1` | 2025-11-24 | Low | ### Features  - First .NET 10 version. You'll need to install Visual Studio 2026 and .NET 10 SDK. - Please stay at 9.2.x versions if you still need to use Visual Studio 2022 and .NET 8. - Strict Content-Security-Policy (CSP) is enabled in StartSharp template by default. - AddCspDirective overloads for ControllerBase and HttpContext - Instead of using sleek-vars.rtl sleek-vars.ltr etc. change the values of --l, --r variables based on rtl. Increase number of supported columns to 100 from 50 |
| `9.1.3` | 2025-11-14 | Low | - `@serenity-is/domwise` is our new library to create DOM elements with full TypeScript support. It is primarily based on [jsx-dom](https://github.com/alex-kinokon/jsx-dom) with integrated signal support via [@preact/signals-core](https://github.com/preactjs/signals) and some extra types / ideas from [ryansolid/dom-expressions (SolidJS)](https://github.com/ryansolid/dom-expressions) and [lusito/tsx-dom](https://github.com/Lusito/tsx-dom). `@serenity-is/domwise` also exports signal functions like |
| `9.0.0` | 2025-10-10 | Low | - **Type registration via decorators** (e.g., `Decorators.registerClass`, `Decorators.registerEditor`, etc.) is now deprecated (it still works but is not recommended):      ```ts     import { Decorators, Widget } from "@serenity-is/corelib";      @Decorators.registerClass("MyProject")     export class MyType extends Widget<any> {     }     ```      Instead, use a static `[Symbol.typeInfo]` property declaration:      ```ts     import { Widget } from "@serenity-is/corelib";      exp |

## Dependency audit

- **Score**: 100/100
- **Total deps**: 9
- **Resolved**: 9
- **Unresolved**: 0
- **License conflicts**: 0
- **Warnings**: 0
- **Scanned**: 2026-05-11

## Citation

- HTML: https://www.freshcrate.ai/projects/Serenity
- Markdown: https://www.freshcrate.ai/projects/Serenity.md
- Dependencies JSON: https://www.freshcrate.ai/api/projects/Serenity/deps

_Generated by freshcrate.ai. Indexes github releases for AI-agent ecosystem packages._
