From e4e3bba11230fcb969b14efc6ed6daaa38bad67f Mon Sep 17 00:00:00 2001 From: Billy Chan Date: Fri, 21 Feb 2025 18:11:32 +0800 Subject: [PATCH 1/2] Introducing SeaORM Pro --- .../2025-02-22-introducing-sea-orm-pro.md | 125 ++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 Blog/blog/2025-02-22-introducing-sea-orm-pro.md diff --git a/Blog/blog/2025-02-22-introducing-sea-orm-pro.md b/Blog/blog/2025-02-22-introducing-sea-orm-pro.md new file mode 100644 index 0000000000..f99a6168be --- /dev/null +++ b/Blog/blog/2025-02-22-introducing-sea-orm-pro.md @@ -0,0 +1,125 @@ +--- +slug: 2025-02-22-introducing-sea-orm-pro +title: Introducing SeaORM Pro +author: SeaQL Team +author_title: Chris Tsang +author_url: https://github.com/SeaQL +author_image_url: https://www.sea-ql.org/blog/img/SeaQL.png +image: https://www.sea-ql.org/sea-orm-pro/img/01_banner.png +tags: [news] +--- + + + + +We are thrilled to introduce the newest member of the SeaQL ecosystem: [SeaORM Pro](https://www.sea-ql.org/sea-orm-pro/). SeaORM Pro is an admin panel solution allowing you to quickly and easily launch an admin panel for your application - frontend development skills not required (but certainly nice to have). + +## Preface + +An admin panel is essential for operating backend applications. But it often is an after-thought, or no dedicated resources (aka developer time) is put into developing them. + +Frontend engineers are usually focused on developing consumer-facing applications, which often led to insufficient effort being directed towards GUI of internal-facing applications. + +SeaORM Pro is designed to bridge this gap, providing a solution that is both quick to implement and reliable for long-term use. + +There are several engineering problems we are trying to solve: + +1. The tediousness of manually writing query handlers to select, sort, filter and paginate data. While this can be abstracted away for individual tables, custom code is often needed for queries involving joins. + + Solution: Seaography removes the need to write GraphQL resolvers manually, all you need to provide is a set of SeaORM entities (which can be generated with `sea-orm-cli`)! + +2. The difficulty in customizing frontend by writing frontend code. Certainly a barrier for us backend engineers to mess with React SPA code! + + Solution: SeaORM Pro allows customizing the frontend by writing TOML config, a language Rust developers already know (because of Cargo). + +3. The difficulty in keeping the admin panel in sync with the application's schema after adding new tables and columns. + + Solution: develop your application using SeaORM. You can share the same set of entities between your app and the admin panel, so any schema changes are automatically reflected in the GraphQL schema and the admin panel. You only have to touch the config to customize things + +4. The long term viability in managing growth in complexity. Low-code solutions will eventually hit a functionality ceiling, requiring a rewrite to implement new features. + + Solution: built using open-source and well-understood technologies, SeaORM Pro offer a pathway to develop a fully-fledged admin application + +## Architecture + + + +The tech stack is **RRLS** (pronounced release!): React, Rust, Loco, SeaQL. These four technologies form a full-stack solution for building data-centric applications. + ++ Frontend: Ant Design React ++ Backend: Loco.rs ++ Data access: Seaography + SeaORM ++ Database: MySQL / PostgreSQL / SQLite / SQL Server* ++ Language: Rust + +## Features + +SeaORM Pro can be used alongside with your existing Rust backend. It does not interfere with your active application in any way. In fact, you can easily create a SeaORM Pro admin panel to your operating SeaORM applications that you have already built. + ++ [Getting Started with Loco](https://www.sea-ql.org/sea-orm-pro/docs/install-and-config/getting-started-loco/) ++ [Getting Started with Axum](https://www.sea-ql.org/sea-orm-pro/docs/install-and-config/getting-started-axum/) + +### Customizable UI + +Customize the UI easily with a simple, elegant TOML syntax. You have full control over the style and the layout of admin panel: + ++ [Theme Config](https://www.sea-ql.org/sea-orm-pro/docs/site-config/theme/): customize site' title, logo, banner and menu item settings ++ [Dashboard Config](https://www.sea-ql.org/sea-orm-pro/docs/site-config/dashboard/): customize dashboard' info cards and charts settings ++ [Raw Table Config](https://www.sea-ql.org/sea-orm-pro/docs/raw-table-config/overview/): customize raw table' view, filter, create, update and delete settings ++ [Composite Config](https://www.sea-ql.org/sea-orm-pro/docs/composite-table-config/overview/): customize parent-child table' view, filter, create, update and delete settings + +### Dashboard + +A glance into the metrics. SeaORM Pro visualize your business statistics with charts. For example, numbers of newly acquired customer on each month and sales per week visualize in line chart. The dashboard UI is configurable via TOML syntax, chart data is fetch via by predefined query in the Rust backend. + + + + +### Table View + +The core of SeaORM Pro is its ability to create, read, update, and delete data in the database. There are two kinds of table view in SeaORM Pro, raw table and composite table: + +#### Raw Table + +Without configuration, each raw table corresponds to a table in the database, by default it will display all columns for all tables. You can configure the displayed columns and other settings via TOML. + + + + +#### Composite Table + +This is where SeaORM Pro shine. Afterall, SQL is relational! You can construct table views with data joining from multiple related tables. The underlying GraphQL query can be deeply nested. + +Data from parent-child relations (e.g. SalesOrder -> SalesOrderItem) are represented as collapsible nested tables. You can configure the settings via TOML. + + + + +### Create, Update and Delete + +Data is not editable by default. You can configure create, update and delete forms via TOML. You can also configure which columns are editable. Non-editable columns will be shown as read-only. + + + + + + + + + + +### GraphQL + +SeaORM Pro ships data via GraphQL endpoint backed by Seaography. + + + +### Dark Mode + +Customize the UI theme easily with light / dark mode support. + + + +## Launch Admin Panel in minutes + +Use SeaORM Pro with any Rust web framework, simply follow the 3 easy steps to setup an admin panel for existing SeaORM projects. + +Or even better, build your next application with our fullstack webapp template! + +[Try the Demo](https://sea-orm-pro-demo.sea-ql.org/admin/)! From fa4f040239f962f507f16e37949c3c2b96d0bbf8 Mon Sep 17 00:00:00 2001 From: Billy Chan Date: Mon, 24 Feb 2025 14:35:45 +0800 Subject: [PATCH 2/2] edit --- .../2025-02-22-introducing-sea-orm-pro.md | 40 +++++++++++++++---- 1 file changed, 32 insertions(+), 8 deletions(-) diff --git a/Blog/blog/2025-02-22-introducing-sea-orm-pro.md b/Blog/blog/2025-02-22-introducing-sea-orm-pro.md index f99a6168be..9b8035df21 100644 --- a/Blog/blog/2025-02-22-introducing-sea-orm-pro.md +++ b/Blog/blog/2025-02-22-introducing-sea-orm-pro.md @@ -48,16 +48,18 @@ The tech stack is **RRLS** (pronounced release!): React, Rust, Loco, SeaQL. Thes + Database: MySQL / PostgreSQL / SQLite / SQL Server* + Language: Rust +*SQL Server support via [SeaORM X](https://www.sea-ql.org/SeaORM-X/) + ## Features -SeaORM Pro can be used alongside with your existing Rust backend. It does not interfere with your active application in any way. In fact, you can easily create a SeaORM Pro admin panel to your operating SeaORM applications that you have already built. +SeaORM Pro can be used alongside with your existing Rust backend. It does not interfere with your active application in any way. In fact, you can easily create a SeaORM Pro admin panel for your operating SeaORM applications that you have already built. + [Getting Started with Loco](https://www.sea-ql.org/sea-orm-pro/docs/install-and-config/getting-started-loco/) + [Getting Started with Axum](https://www.sea-ql.org/sea-orm-pro/docs/install-and-config/getting-started-axum/) ### Customizable UI -Customize the UI easily with a simple, elegant TOML syntax. You have full control over the style and the layout of admin panel: +Customize the UI easily with the simple, elegant TOML syntax. You have full control over the style and the layout of admin panel: + [Theme Config](https://www.sea-ql.org/sea-orm-pro/docs/site-config/theme/): customize site' title, logo, banner and menu item settings + [Dashboard Config](https://www.sea-ql.org/sea-orm-pro/docs/site-config/dashboard/): customize dashboard' info cards and charts settings @@ -66,7 +68,7 @@ Customize the UI easily with a simple, elegant TOML syntax. You have full contro ### Dashboard -A glance into the metrics. SeaORM Pro visualize your business statistics with charts. For example, numbers of newly acquired customer on each month and sales per week visualize in line chart. The dashboard UI is configurable via TOML syntax, chart data is fetch via by predefined query in the Rust backend. +A glance into the metrics. SeaORM Pro visualize your business statistics with charts. For example, numbers of newly acquired customer on each month and sales per week visualize in line chart. The dashboard UI is configurable via TOML syntax, chart data is fetch via predefined query in the Rust backend. @@ -77,7 +79,7 @@ The core of SeaORM Pro is its ability to create, read, update, and delete data i #### Raw Table -Without configuration, each raw table corresponds to a table in the database, by default it will display all columns for all tables. You can configure the displayed columns and other settings via TOML. +Without any configuration, each raw table corresponds to a table in the database, by default it will display all columns for all tables. You can configure the displayed columns and other settings via TOML. Read [Raw Table Config](https://www.sea-ql.org/sea-orm-pro/docs/raw-table-config/overview/). @@ -86,7 +88,7 @@ Without configuration, each raw table corresponds to a table in the database, by This is where SeaORM Pro shine. Afterall, SQL is relational! You can construct table views with data joining from multiple related tables. The underlying GraphQL query can be deeply nested. -Data from parent-child relations (e.g. SalesOrder -> SalesOrderItem) are represented as collapsible nested tables. You can configure the settings via TOML. +Data from parent-child relations (e.g. SalesOrder -> SalesOrderItem) are represented as collapsible nested tables. You can configure the settings via TOML. Read [Composite Config](https://www.sea-ql.org/sea-orm-pro/docs/composite-table-config/overview/). @@ -98,15 +100,21 @@ Data is not editable by default. You can configure create, update and delete for +Read [Create Config](https://www.sea-ql.org/sea-orm-pro/docs/raw-table-config/create/). + +Read [Update Config](https://www.sea-ql.org/sea-orm-pro/docs/raw-table-config/update/). + +Read [Delete Config](https://www.sea-ql.org/sea-orm-pro/docs/raw-table-config/delete/). + ### GraphQL -SeaORM Pro ships data via GraphQL endpoint backed by Seaography. +SeaORM Pro ships data via GraphQL endpoint backed by Seaography. GraphQL playground is included, feel free to explore the CRUD interfaces that defined in GraphQL. @@ -116,10 +124,26 @@ Customize the UI theme easily with light / dark mode support. -## Launch Admin Panel in minutes +## Launch Admin Panel in Minutes Use SeaORM Pro with any Rust web framework, simply follow the 3 easy steps to setup an admin panel for existing SeaORM projects. Or even better, build your next application with our fullstack webapp template! -[Try the Demo](https://sea-orm-pro-demo.sea-ql.org/admin/)! ++ [Getting Started with Loco](https://www.sea-ql.org/sea-orm-pro/docs/install-and-config/getting-started-loco/) ++ [Getting Started with Axum](https://www.sea-ql.org/sea-orm-pro/docs/install-and-config/getting-started-axum/) ++ [Try the Demo](https://sea-orm-pro-demo.sea-ql.org/admin/)! + +## SeaORM Pro Plus + +SeaORM Pro is free-to-use software. All backend source code is MIT Licensed, but the frontend source code is close-sourced for the time being. + +[SeaORM Pro Plus](https://github.com/SeaQL/sea-orm-pro-plus) provides additional features and access to the frontend source code. + +You can access the repository as a [Pro tier Sponsor](https://github.com/sponsors/SeaQL/sponsorships?tier_id=249708). The license grant is perpetual (you can use the software forever) and you will receive updates while being a sponsor. + +As of the initial release, there is no additional features unlocked. We would prioritize answering questions and feature requests from sponsors. + +This should not be viewed as an attempt to monetize, but a means for us to crowd source ideas (and some funding) for the development of new features. So being a sponsor you'd play a role in shaping the product's future! + +Eventually, after reaching a certain level of maturity, we'd like to release a community version of SeaORM Pro under an open-source license so that it will be completely free (as in freedom). This is our end goal.