A modern website for Divinci.ai featuring interactive elements, animations, multilingual support, and comprehensive testing. Static HTML website designed for Cloudflare Pages.
- Interactive UI: Animated SVG elements with GSAP
- Responsive Design: Mobile-first approach with responsive layouts
- Internationalization (i18n): Support for multiple languages (English, Spanish, French, Arabic)
- Accessibility: WCAG compliance with comprehensive testing
- Robust Testing: End-to-end, visual regression, and accessibility testing
divinci.ai/
├── assets/ # Static assets (CSS, JS, images)
├── blog/ # Blog pages and content
├── docs/ # Documentation files
├── features/ # Feature pages
├── includes/ # Reusable HTML components
├── js/ # JavaScript files
├── locales/ # Translation files
├── scripts/ # Utility scripts
├── templates/ # Page templates
├── tests/ # Test suite (E2E, Visual, A11y)
└── zola-site/ # Static site generator setup
- Frontend: HTML5, CSS3 (with native nesting), JavaScript (ES6+)
- Animation: GSAP for SVG animations
- i18n: Custom JavaScript-based translation system
- Testing: Playwright for E2E and visual testing
- Static Site Generation: Eleventy (11ty)
- Development: Node.js
- Asset Optimization: LightningCSS, UglifyJS, imagemin
- Node.js 18.x or higher
- npm 9.x or higher
-
Clone the repository:
git clone https://github.com/DivinciApp/divinci.ai.git cd divinci.ai
-
Install dependencies:
npm install
-
Start the development server:
npm run dev
This will start the Eleventy server on http://localhost:8080
For simple static file serving:
npx serve
This will start a static file server on http://localhost:3000
The project includes comprehensive testing capabilities:
# Run all tests
npm test
# Run only E2E tests
npm run test:e2e
# Run only visual tests
npm run test:visual
# Update visual test snapshots
npm run test:update-snapshots
# View test report
npm run test:report
See the tests/README.md for detailed information about the testing infrastructure.
The site supports multiple languages through a custom i18n system:
- English (default)
- Spanish
- French
- Arabic (with RTL support)
Translation files are located in the locales/
directory and follow a JSON structure.
The site features interactive SVG animations:
- Divinci robot character with various animations
- Feature visualization using orbital animations
- Interactive UI elements
Animation files are primarily located in the project root with filenames containing divinci-*.html
.
The project uses modern CSS with native nesting:
- Component-based organization
- CSS custom properties (variables) for theming
- Modern CSS nesting for better organization
- Media queries for responsive behavior
See CSS-STRUCTURE.md for details about our CSS approach.
The site is fully responsive with specific optimizations for mobile devices:
- Simplified animations for performance
- Touch-friendly interface
- Mobile-specific component variants
The project includes a comprehensive asset optimization system that minifies CSS and JavaScript files and optimizes images for production.
The asset optimization is handled by the scripts/optimize-assets.js
script, which:
-
Minifies CSS files using LightningCSS:
- Takes source CSS files and creates minified versions with
.min.css
extensions - Preserves directory structure in the
optimized/css/
directory - Supports modern CSS features including native nesting
- Removes unnecessary whitespace, comments, and optimizes CSS rules
- Takes source CSS files and creates minified versions with
-
Minifies JavaScript files using UglifyJS:
- Compresses and manglifies JS files, creating
.min.js
versions - Preserves directory structure in the
optimized/js/
directory - Performs code optimization while maintaining functionality
- Compresses and manglifies JS files, creating
-
Optimizes images using imagemin:
- Compresses JPEG, PNG, GIF, and WebP images without significant quality loss
- Optimizes SVG files using SVGO
- Preserves directory structure in the
optimized/images/
directory
-
Generates an optimization report showing:
- Number of optimized files
- Original and optimized file sizes
- Total size savings across all asset types
To optimize all assets:
node scripts/optimize-assets.js
To optimize only specific asset types:
# Optimize only CSS and JavaScript files
node scripts/optimize-assets.js --css-js-only
# Optimize only images
node scripts/optimize-assets.js --images-only
To run in dry-run mode (shows what would be optimized without modifying files):
node scripts/optimize-assets.js --dry-run
The optimization script requires the following dependencies:
npm install --save-dev lightningcss browserslist uglify-js imagemin-cli svgo
Optimized files are placed in the optimized/
directory with the following structure:
optimized/
├── css/ # Minified CSS files (*.min.css)
├── js/ # Minified JavaScript files (*.min.js)
└── images/ # Optimized image files (preserved formats)
An optimization report is generated at optimization-report.json
detailing the optimization results.
Additional documentation is available in the docs/
directory:
- URL Structure Plan
- Animation Implementation
- Animation Plan
- Mobile Accessibility Guidelines
- Multilingual Content Guide
Divinci.ai showcases several AI-focused features:
- AutoRAG (Retrieval Augmented Generation)
- LLM Quality Assurance
- Document Processing
- Vector Embeddings
Contributions are welcome! Please read our contributing guidelines before submitting pull requests.
This project is licensed under the ISC License - see the LICENSE.txt file for details.
For any questions or support, please open an issue or reach out through the contact form.