A modern, high-performance React UI implementation for the ABP Framework. This project serves as a drop-in replacement for the default Angular UI, offering improved performance, better SEO capabilities, and a more modern development experience with advanced features like visual page building and component documentation.
- ABP React
Check out the live demo at https://abpreact.antosubash.com/
-
π¨ Modern UI/UX
- Responsive design with Tailwind CSS v4
- Dark/Light theme support
- Modern component library with Radix UI
- Beautiful animations and transitions
-
π Authentication & Authorization
- Login/Logout functionality
- User registration
- Password recovery
- Role-based access control
- OpenID Connect support
-
π Multi-tenant Support
- Tenant management
- Tenant switching
- Tenant-specific configurations
-
π₯ User Management
- User CRUD operations
- Role management
- Permission management
- Profile management
-
π Content Management System (CMS)
- Visual page builder with Puck editor
- Drag-and-drop interface with 20+ content blocks
- Real-time preview and responsive design
- Comment system with moderation tools
- Dynamic menu management with visual builder
- Multi-tenant content isolation
- SEO optimization and performance tools
-
βοΈ System Features
- Multilingual support
- Theme customization
- Settings management
- Feature management
- Email configuration
-
π§ͺ Development Tools
- Storybook for component documentation
- TypeScript for type safety
- ESLint and Prettier for code quality
- Husky for git hooks
- Vitest for testing
Before you begin, ensure you have the following installed:
- Node.js (LTS version recommended)
- pnpm (Package manager)
- .NET 8 (Backend framework)
- ABP Framework (Backend framework)
- Install the ABP React .NET Template:
dotnet new install Anto.Abp.React.Template
- Create a new project:
dotnet new abp-react -o my-project-name --apiUrl your-api-url
Note: Use kebab-case for project names (e.g.,
my-project-name
) as it will be used for package organization.
- Copy the environment variables:
cp .env.sample .env
- Update the
.env
file with your project-specific values:
- API URL
- Authentication settings
- Other configuration options
- Navigate to your project directory:
cd my-project-name
- Install dependencies:
pnpm install
- Start the development server:
pnpm dev
- (Optional) Start Storybook for component development:
pnpm storybook
ABP React is built with modern web technologies:
- Next.js 15 - React framework for production
- TypeScript - Type-safe JavaScript
- Tailwind CSS v4 - Utility-first CSS framework
- Radix UI - Accessible component primitives
- TanStack Query - Data fetching and caching
- React Hook Form - Form management
- Zod - Schema validation
The project aims to provide a production-ready React UI for ABP Framework applications, focusing on:
- Performance optimization
- SEO friendliness
- Modern development experience
- Full ABP Framework integration
- Visual content creation
ABP React includes a powerful visual page builder powered by Puck:
- Drag-and-Drop Interface: Create pages visually without coding
- Component Library: Pre-built components for common UI patterns
- Responsive Design: Built-in responsive design tools
- Real-time Preview: See changes instantly as you build
- Template System: Save and reuse page layouts
- Hero sections
- Text blocks and headings
- Image galleries and carousels
- Cards and containers
- Buttons and forms
- Grid layouts and spacers
- And many more...
The project includes comprehensive component documentation with Storybook:
# Start Storybook development server
pnpm storybook
# Build Storybook for production
pnpm build-storybook
# Run Storybook tests
pnpm test-storybook
Storybook provides:
- Interactive component documentation
- Component testing and validation
- Design system guidelines
- Accessibility testing
- Visual regression testing
Storybook is fully integrated into the CI/CD pipeline:
- Automatic Building: Storybook is built on every push to main and pull request
- Testing: Storybook tests run automatically to ensure component quality
- Docker Deployment: Storybook is containerized and deployed to GitHub Container Registry
- Artifact Storage: Storybook build artifacts are stored for 30 days
- Storybook Build Job: Builds and tests Storybook on every change
- Docker Image: Creates and pushes Storybook Docker image to GHCR
- Development: https://abp-react-storybook.antosubash.com
- Docker:
http://localhost:80
(rundocker run -p 80:80 ghcr.io/your-repo/storybook:latest
) - CI Artifacts: Download Storybook build artifacts from GitHub Actions
ABP React includes Docker support for easy deployment:
# Build the application
docker build -t abp-react .
# Run the application
docker run -p 3000:3000 abp-react
# Build Storybook
docker build -f Dockerfile.storybook -t abp-react-storybook .
# Run Storybook
docker run -p 80:80 abp-react-storybook
The Docker setup includes:
- Multi-stage builds for optimization
- Nginx configuration for production
- Security headers and caching
- Non-root user execution
The project maintains high performance scores across all Lighthouse metrics. View the detailed report here.
We welcome contributions! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Make your changes
- Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
Please ensure your code:
- Follows the existing code style
- Includes appropriate tests
- Updates documentation as needed
- Passes all CI checks
# Development
pnpm dev # Start development server
pnpm build # Build for production
pnpm start # Start production server
pnpm lint # Run ESLint
pnpm format # Format code with Prettier
# Storybook
pnpm storybook # Start Storybook
pnpm build-storybook # Build Storybook
pnpm test-storybook # Test Storybook
# API Generation
pnpm gen-api # Generate API client from OpenAPI spec
For support, please:
- Open an issue in the GitHub repository
- Contact antosubash@outlook.com
- Join our community discussions
This project is licensed under the MIT License - see the LICENSE file for details.
Special thanks to:
- ABP Framework - The foundation of this project
- React - The UI library
- Next.js - The framework
- TypeScript - The language
- Tailwind CSS - The styling
- Puck - The visual page builder
- Storybook - The component documentation
- Anto Subash - Project Maintainer
- Sajan - Contributor