|
| 1 | +# Official React UI for ABP Framework Is Here |
| 2 | + |
| 3 | +The official React UI for ABP Framework is no longer just something on the way. |
| 4 | + |
| 5 | +With **ABP 10.4.0-rc.1**, the new React UI is available as a beta/preview experience in the modern template system. This RC gives the community an early chance to try it, share feedback, and help us polish the final details before **ABP 10.4 stable**, where we plan to make the React UI generally available. |
| 6 | + |
| 7 | + |
| 8 | + |
| 9 | +## Why this matters |
| 10 | + |
| 11 | +ABP Framework has always been about helping teams build modern, maintainable, production-ready applications faster. With the official React UI, we are extending that same vision to teams who want ABP on the backend and React on the frontend without losing the built-in application features that make ABP productive from day one. |
| 12 | + |
| 13 | +This is not another empty starter. The goal is a **first-class UI option** that fits into the ABP application startup experience and works naturally with familiar ABP concepts such as authentication, authorization, localization, multi-tenancy, modularity, runtime configuration, and deployment. |
| 14 | + |
| 15 | +There is one important detail: the React UI belongs to ABP's **modern template system**. You create it with the `--modern` flag in the ABP CLI or by selecting the modern template flow in ABP Studio. You can find the technical documentation here: [React UI documentation](https://abp.io/docs/10.4/framework/ui/react). |
| 16 | + |
| 17 | +## A quick look at the architecture |
| 18 | + |
| 19 | +The final shape is clearer now: a modern React solution consists of two main parts. |
| 20 | + |
| 21 | +First, there is **your React application**. This is the application-facing SPA that you own and customize. It contains the frontend code you work with every day, including pages, components, routing, API integration, runtime configuration, and authentication setup. |
| 22 | + |
| 23 | +Second, there is the **ABP Admin Console**. The Admin Console is a pre-built React application that provides the standard ABP module management pages. It is delivered through the `Volo.Abp.AdminConsole` NuGet package, so it can evolve with ABP package updates while your own React application stays focused on your product's business features. |
| 24 | + |
| 25 | +For layered and single-layer modern applications, the Admin Console is embedded in the backend and served under `/admin-console/*`. For microservice solutions, it runs as a standalone React app under `apps/react-admin-console/` and is served through the web gateway. In both cases, the main React app can link users into the Admin Console when they need administrative screens. |
| 26 | + |
| 27 | +This split is a practical design choice. Your business UI stays yours, while administration capabilities remain available, consistent, and upgradeable. |
| 28 | + |
| 29 | +## A different frontend philosophy |
| 30 | + |
| 31 | +One of the most important things to understand is that this React UI is **not** being shaped with exactly the same architecture as some previous UI options. |
| 32 | + |
| 33 | +We are not trying to ship the whole frontend experience as a closed set of page implementations coming from npm packages. Instead, the generated solution includes the actual page code inside the app itself. You can open it, understand it, refactor it, redesign it, and adapt it without fighting against a packaged black box. |
| 34 | + |
| 35 | +The Admin Console covers ABP's standard module administration pages. Your own React application remains intentionally open and direct. That gives teams a good balance: built-in administrative power from ABP, and full ownership of the product-facing frontend. |
| 36 | + |
| 37 | +## Built for AI-driven development |
| 38 | + |
| 39 | +The new React UI is also shaped for the era of **AI-assisted development**. |
| 40 | + |
| 41 | +React, TypeScript, Vite, React Router, Axios, Zod, React Hook Form, and shadcn/ui are technologies that modern coding assistants understand very well. Just as importantly, the generated application contains real frontend code in the solution. That gives AI tools and coding agents concrete project context to read, extend, and refactor. |
| 42 | + |
| 43 | +This direction also fits the broader ABP AI story. ABP Studio already includes an AI assistant experience, and the new **ABP AI Agent** is being introduced to bring code generation, project understanding, issue fixing, and natural-language application evolution directly into the ABP workflow. You can follow that work here: [The Future of ABP Studio: AI Agent + Code Generation](https://abp.io/community/events/community-talks/the-future-of-abp-studio-ai-agent-code-generation-live-fekeoyjr). For the wider toolset, see the [ABP AI Toolkit](https://abp.io/ai/toolkit). |
| 44 | + |
| 45 | +## What the React experience looks like |
| 46 | + |
| 47 | +The current template already points to the kind of experience React developers expect from a modern application: |
| 48 | + |
| 49 | +- A Vite-powered React + TypeScript frontend |
| 50 | +- React Router for client-side routing |
| 51 | +- OIDC authentication against the ABP Auth Server |
| 52 | +- Axios-based HTTP client integration |
| 53 | +- Runtime configuration through `dynamic-env.json` |
| 54 | +- Localization and permission-aware behavior integrated with ABP application configuration |
| 55 | +- shadcn/ui components that live in your project and can be customized directly |
| 56 | +- Zod and React Hook Form for form handling and validation |
| 57 | +- Vitest for frontend tests |
| 58 | +- A dedicated Admin Console for ABP module administration |
| 59 | + |
| 60 | +From the source code and the documentation, it is clear that the React UI is being built as a real ABP solution experience, not just a login page plus a few demo screens. |
| 61 | + |
| 62 | + |
| 63 | + |
| 64 | +## More than a hello world |
| 65 | + |
| 66 | +The generated React app is intentionally small enough to understand, but it is not empty. |
| 67 | + |
| 68 | +Depending on the selected options, it can include a sample Books CRUD page that demonstrates how to build a full create/read/update/delete flow against an ABP backend. It also includes simple reference pages and pre-configured application plumbing such as authentication, HTTP client setup, localization, and permission checks. |
| 69 | + |
| 70 | +The Admin Console provides the standard management experience for ABP modules, including identity management, roles, organization units, settings, audit logs, OpenIddict administration, language management, text templates, GDPR, SaaS and tenant management, and other module pages depending on your solution configuration. |
| 71 | + |
| 72 | +That is the core value: developers get a clean React application to build their product, while ABP continues to provide the administrative capabilities expected from a production-ready application platform. |
| 73 | + |
| 74 | +## Try it with ABP 10.4 RC |
| 75 | + |
| 76 | +During the RC period, you can create a modern React solution with ABP 10.4.0-rc.1: |
| 77 | + |
| 78 | +```bash |
| 79 | +abp new Acme.BookStore --template app --modern --version 10.4.0-rc.1 |
| 80 | +``` |
| 81 | + |
| 82 | +The React UI is the default UI option when `--modern` is used, but you can also pass it explicitly: |
| 83 | + |
| 84 | +```bash |
| 85 | +abp new Acme.BookStore --template app --modern --ui-framework react --version 10.4.0-rc.1 |
| 86 | +``` |
| 87 | + |
| 88 | +For a single-layer application: |
| 89 | + |
| 90 | +```bash |
| 91 | +abp new Acme.BookStore --template app-nolayers --modern --version 10.4.0-rc.1 |
| 92 | +``` |
| 93 | + |
| 94 | +For a microservice solution: |
| 95 | + |
| 96 | +```bash |
| 97 | +abp new Acme.BookStore --template microservice --modern --version 10.4.0-rc.1 |
| 98 | +``` |
| 99 | + |
| 100 | +Once ABP 10.4 stable is released, the same modern React experience is planned to become generally available without needing to target the RC version explicitly. |
| 101 | + |
| 102 | +## What's next |
| 103 | + |
| 104 | +The React UI is now real in ABP 10.4 RC, and the final polishing work continues toward the stable release. The big story is no longer a roadmap promise. The big story is that **official React support has arrived in ABP Framework**, and it is being prepared for GA with ABP 10.4 stable. |
| 105 | + |
| 106 | +If you have been waiting for an official React path in ABP, this is the right time to try it and share feedback. |
0 commit comments