Welcome to Fluent CMS If you find it useful, please give it a star ⭐
Fluent CMS proves valuable even for non-CMS projects by eliminating the need for tedious CRUD API and page development.
- CRUD APIs: It offers a set of RESTful CRUD (Create, Read, Update, Delete) APIs for any entities based on your configuration, easily set up using the Schema Builder.
- Admin Panel UI: The system includes an Admin Panel UI for data management, featuring a rich set of input types such as datetime, dropdown, image, rich text, and a flexible query builder for data searching.
- Easy Integration: Fluent CMS can be seamlessly integrated into your ASP.NET Core project via a NuGet package. You can extend your business logic by registering hook functions that execute before or after database access.
- Performance: Fluent CMS is designed with performance in mind, boasting speeds 100 times faster than Strapi (details in the performance vs Strapi test). It is also 10% faster than manually written APIs using Entity Framework (details in the performance vs EF test).
source code FluentCMS.Blog
- Admin Panel https://fluent-cms-admin.azurewebsites.net/
- Email:
[email protected]
- Password:
Admin1!
- Email:
- Public Site : https://fluent-cms-ui.azurewebsites.net/
-
Create your own WebApplication.
-
Add FluentCMS package
The next command copies the compiled Admin Panel code to your wwwroot directory. The frontend code, written in React and jQuery, is available in the admin-ui folder within this repository.
For Mac, use the following command. For Windows, the directory should be located at $(NuGetPackageRoot)fluentcms\1.0.0\staticwebassets. Please replace0.0.4
with the correct version number.dotnet add package FluentCMS cp -a ~/.nuget/packages/fluentcms/0.0.3/staticwebassets wwwroot
-
Modify Program.cs, add the following line before builder.Build(), the input parameter is the connection string of database.
builder.AddSqliteCms("Data Source=cms.db").PrintVersion(); var app = builder.Build();
Currently FluentCMS support AddSqliteCms, AddSqlServerCms, AddPostgresCMS
-
Add the following line After builder.Build()
await app.UseCmsAsync(false);
this function bootstrap router, initialize Fluent CMS schema table
-
If everthing is good, when the app starts, when you go to the home page, you should see the empty Admin Panel Here is a quickstart on how to use the Admin Panel Quickstart.md
-
If you want to have a look at how FluentCMS handles one to many, many-to-many relationships, just add the following code
var schemaService = app.GetCmsSchemaService(); await schemaService.AddOrSaveSimpleEntity("student", "Name", null, null); await schemaService.AddOrSaveSimpleEntity("teacher", "Name", null, null); await schemaService.AddOrSaveSimpleEntity("class", "Name", "teacher", "student");
These code created 3 entity, class and teacher has many-to-one relationship. class and student has many-to-many relationship
-
To Add you own business logic, you can add hook, before or after CRUD. For more hook example, have a look at Program.cs
var hooks = app.GetCmsHookFactory(); hooks.AddHook("teacher", Occasion.BeforeInsert, Next.Continue, (IDictionary<string,object> payload) => { payload["Name"] = "Teacher " + payload["Name"]; });
-
Source code of this example can be found at WebApiExamples
If you're interested in improving FluentCMS, please read our CONTRIBUTING.md guide.
- Web Server:
- Admin Panel Client:
- Code admin-ui
- Doc Admin-Panel-UI
- Schema Builder:
- Code schema-ui
- Doc Schema-Builder-UI