A modern, enterprise-grade editorial platform built for the next generation of content creators and publishers.
New Andalus is an open-source editorial platform that combines the power of modern web technologies with enterprise-grade security, performance, and scalability. Built with Next.js 15, React 19, and TypeScript, it provides a seamless content creation and publishing experience for individuals, teams, and organizations.
- Next.js 15 with App Router and React Server Components
- React 19 for cutting-edge UI development
- TypeScript 5.3+ for type safety and developer experience
- Tailwind CSS for responsive, utility-first styling
- Radix UI for accessible component primitives
- Drizzle ORM with PostgreSQL for type-safe database operations
- Advanced rich text editor powered by TipTap
- Real-time collaborative editing capabilities
- Image upload and automatic optimization
- SEO-friendly content management
- Auto-save and comprehensive version control
- Markdown support with live preview
- Comprehensive input validation and sanitization
- CSRF protection and intelligent rate limiting
- Security headers and Content Security Policy
- Real-time security monitoring and alerting
- OWASP Top 10 compliance
- Multi-factor authentication support
- Core Web Vitals optimization (LCP < 2.5s)
- Redis caching with intelligent invalidation
- Database query optimization and monitoring
- Real-time performance tracking
- Prometheus metrics integration
- Comprehensive error tracking
- Docker containerization with multi-stage builds
- Kubernetes deployment manifests
- CI/CD pipeline with GitHub Actions
- Multi-environment support (dev, staging, production)
- Comprehensive testing suite (unit, integration, e2e)
- Infrastructure as Code with Terraform
- Hot reload development environment
- Comprehensive TypeScript types
- ESLint and Prettier configuration
- Automated testing with Vitest and Playwright
- Detailed documentation and examples
- Docker Compose for local development
# Clone the repository
git clone https://github.com/Oualidl290/new-andalus.git
cd new-andalus
# Run the setup script
./setup.sh
# or on Windows: setup.bat
# The application will be available at http://localhost:3000- Node.js 20+ or Bun 1.0+
- PostgreSQL 16+
- Redis 7+
- Docker (optional, for database services)
-
Clone the repository:
git clone https://github.com/Oualidl290/new-andalus.git cd new-andalus -
Install dependencies:
npm install # or bun install -
Start database services:
# Using Docker Compose (recommended) npm run db:up # Or use your local PostgreSQL and Redis instances
-
Set up environment variables:
cp .env.example .env.local # Edit .env.local with your configuration -
Initialize the database:
npm run db:push npm run db:seed
-
Start the development server:
npm run dev
-
Open your browser: Navigate to http://localhost:3000
npm run dev # Start development server with Turbopack
npm run build # Build for production
npm run start # Start production server
npm run type-check # Run TypeScript type checkingnpm run lint # Run Biome linting
npm run lint:fix # Fix linting issues automatically
npm run format # Format code with Biome
npm run format:check # Check code formattingnpm run db:up # Start PostgreSQL and Redis containers
npm run db:down # Stop database containers
npm run db:reset # Reset database (destroy and recreate)
npm run db:generate # Generate Drizzle migrations
npm run db:push # Push schema changes to database
npm run db:migrate # Run database migrations
npm run db:studio # Open Drizzle Studio (database GUI)
npm run db:seed # Seed database with sample datanpm run test # Run tests in watch mode
npm run test:run # Run tests once
npm run test:ui # Run tests with UI
npm run test:coverage # Generate test coverage reportnpm run docker:build # Build production Docker image
npm run docker:run # Run production container# Clone and start
git clone https://github.com/Oualidl290/new-andalus.git
cd new-andalus
./setup.sh # or setup.bat on Windows
# The application will be available at http://localhost:3000When running docker-compose up -d, the following services are available:
- Web Application:
http://localhost:3000 - PostgreSQL:
localhost:5432 - Redis:
localhost:6379 - Adminer (Database UI):
http://localhost:8080 - RedisInsight (Redis UI):
http://localhost:8001 - MailHog (Email Testing):
http://localhost:8025 - MinIO (Object Storage):
http://localhost:9001 - Grafana (Monitoring):
http://localhost:3001 - Kibana (Search UI):
http://localhost:5601
# Build production image
docker build -t new-andalus:latest .
# Run production container
docker run -p 3000:3000 \
-e DATABASE_URL="postgresql://..." \
-e REDIS_URL="redis://..." \
new-andalus:latestcd platform
docker-compose up -d
The application will be available at http://localhost:3000
### Option 2: Local Development
#### Prerequisites
- **Node.js 20+** or **Bun 1.0+**
- **PostgreSQL 16+**
- **Redis 7+**
- **Docker** (optional, for database services)
#### Setup Steps
1. **Clone the repository:**
```bash
git clone https://github.com/new-andalus/platform.git
cd platform
-
Install dependencies:
npm install # or bun install -
Start database services:
# Using Docker Compose (recommended) npm run db:up # Or use your local PostgreSQL and Redis instances
-
Set up environment variables:
cp .env.example .env.local # Edit .env.local with your configuration -
Initialize the database:
npm run db:push npm run db:seed
-
Start the development server:
npm run dev
-
Open your browser: Navigate to http://localhost:3000
npm run dev # Start development server with Turbopack
npm run build # Build for production
npm run start # Start production server
npm run type-check # Run TypeScript type checkingnpm run lint # Run ESLint
npm run lint:fix # Fix linting issues automatically
npm run format # Format code with Prettier
npm run format:check # Check code formattingnpm run db:up # Start PostgreSQL and Redis containers
npm run db:down # Stop database containers
npm run db:reset # Reset database (destroy and recreate)
npm run db:generate # Generate Drizzle migrations
npm run db:push # Push schema changes to database
npm run db:migrate # Run database migrations
npm run db:studio # Open Drizzle Studio (database GUI)
npm run db:seed # Seed database with sample datanpm run test # Run tests in watch mode
npm run test:run # Run tests once
npm run test:ui # Run tests with UI
npm run test:e2e # Run end-to-end tests
npm run test:coverage # Generate test coverage reportnpm run security:audit # Run security audit
npm run security:scan # Comprehensive security scan
npm audit # Check for vulnerabilitiesnew-andalus/
βββ π src/
β βββ π app/ # Next.js App Router pages
β β βββ π (auth)/ # Authentication pages
β β βββ π admin/ # Admin dashboard
β β βββ π api/ # API routes
β β βββ π articles/ # Article pages
β βββ π components/ # React components
β β βββ π admin/ # Admin-specific components
β β βββ π auth/ # Authentication components
β β βββ π editor/ # Rich text editor components
β β βββ π ui/ # Reusable UI components
β βββ π lib/ # Utility functions and configurations
β β βββ π auth/ # Authentication logic
β β βββ π cache/ # Caching utilities
β β βββ π db/ # Database configuration
β β βββ π security/ # Security utilities
β β βββ π validation/ # Input validation schemas
β βββ π hooks/ # Custom React hooks
β βββ π types/ # TypeScript type definitions
β βββ π test/ # Test utilities and fixtures
βββ π .github/ # GitHub Actions workflows
βββ π kubernetes/ # Kubernetes deployment manifests
βββ π terraform/ # Infrastructure as Code
βββ π scripts/ # Utility scripts
βββ π docker-compose.yml # Local development environment
βββ π Dockerfile # Production container image
βββ π README.md # This file
- ποΈ Modern Architecture: Next.js 15 with App Router and React Server Components
- π¨ Rich UI: Tailwind CSS with Radix UI components for accessibility
- π Authentication: NextAuth.js with multiple providers and JWT tokens
- π Content Management: Rich text editor with TipTap and collaborative editing
- ποΈ Database: PostgreSQL with Drizzle ORM for type-safe operations
- β‘ Caching: Redis integration with intelligent cache invalidation
- π Security: Comprehensive security measures and OWASP compliance
- π Monitoring: Performance tracking and error monitoring
- π§ͺ Testing: Unit, integration, and end-to-end testing suites
- π Deployment: Docker, Kubernetes, and CI/CD ready
- π€ Real-time Collaboration: Live collaborative editing with WebSockets
- π Advanced Search: Full-text search with Elasticsearch integration
- π± Mobile App: React Native mobile application
- π Internationalization: Multi-language support
- π Analytics: Advanced content analytics and insights
- π¨ Theming: Customizable themes and white-label solutions
# Clone and start
git clone https://github.com/new-andalus/platform.git
cd platform
docker-compose up -d
# View logs
docker-compose logs -f
# Stop services
docker-compose down- Web Application:
http://localhost:3000 - PostgreSQL:
localhost:5432 - Redis:
localhost:6379 - Adminer (Database UI):
http://localhost:8080
# Build production image
docker build -t new-andalus:latest .
# Run production container
docker run -p 3000:3000 \
-e DATABASE_URL="postgresql://..." \
-e REDIS_URL="redis://..." \
new-andalus:latest# Start Minikube
minikube start
# Apply Kubernetes manifests
kubectl apply -f kubernetes/
# Port forward to access the application
kubectl port-forward svc/web-frontend-service 3000:80# Deploy to production cluster
kubectl apply -f kubernetes/namespaces/
kubectl apply -f kubernetes/secrets/
kubectl apply -f kubernetes/deployments/
kubectl apply -f kubernetes/services/
kubectl apply -f kubernetes/ingress/# Unit tests
npm run test
# Integration tests
npm run test:integration
# End-to-end tests
npm run test:e2e
# All tests with coverage
npm run test:coverage- Unit Tests: Component and utility function tests
- Integration Tests: API endpoint and database integration tests
- End-to-End Tests: Full user journey tests with Playwright
- Security Tests: Security vulnerability and penetration tests
New Andalus implements enterprise-grade security measures:
- Input Validation: Comprehensive validation with Zod schemas
- Output Sanitization: XSS prevention with DOMPurify
- CSRF Protection: Token-based CSRF protection
- Rate Limiting: Intelligent rate limiting to prevent abuse
- Security Headers: Comprehensive security headers including CSP
- Authentication: Secure authentication with NextAuth.js
- Authorization: Role-based access control (RBAC)
- Monitoring: Real-time security event monitoring
# Run comprehensive security audit
npm run security:audit
# Check for known vulnerabilities
npm audit
# Run custom security tests
npm run test:security- Lighthouse Score: 90+ across all metrics
- Core Web Vitals:
- LCP < 2.5s
- FID < 100ms
- CLS < 0.1
- Time to Interactive: < 3s on 3G networks
- Bundle Size: < 250KB gzipped
# Run performance tests
npm run test:performance
# Analyze bundle size
npm run analyze
# Lighthouse audit
npm run audit:lighthouseWe welcome contributions from the community! Please read our Contributing Guide for details on our code of conduct and the process for submitting pull requests.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes and add tests
- Run the test suite:
npm run test - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
- TypeScript: Strict mode enabled
- ESLint: Airbnb configuration with custom rules
- Prettier: Automatic code formatting
- Conventional Commits: Standardized commit messages
This project is licensed under the MIT License - see the LICENSE file for details.
- Next.js Team for the amazing framework
- Vercel for hosting and deployment platform
- Radix UI for accessible component primitives
- Tailwind CSS for the utility-first CSS framework
- Drizzle Team for the excellent ORM
- Open Source Community for inspiration and contributions
- Documentation: https://docs.newandalus.com
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Discord: Join our community
- Email: support@newandalus.com
- Real-time collaborative editing
- Advanced search with Elasticsearch
- Mobile application (React Native)
- Plugin system architecture
- Multi-tenant support
- Advanced analytics dashboard
- Internationalization (i18n)
- White-label solutions
- AI-powered content suggestions
- Advanced workflow management
- Enterprise SSO integration
- Advanced caching strategies
- Microservices architecture
- GraphQL API
- Advanced monitoring and observability
- Performance optimizations
β Star us on GitHub β’ π Report Bug β’ π‘ Request Feature
Made by oualid and contributors.