Evolusion
Modern Svelte 5 Frontend Dashboard for Home Assistant
Evolusion is a cutting-edge, production-ready frontend dashboard project built with Svelte 5 and SvelteKit, designed to provide an advanced, highly interactive interface for Home Assistant automation systems. This project leverages modern web technologies and best practices to deliver a performant, scalable solution for smart home control and monitoring.
π Features
Core Features
- β‘ Svelte 5 - Latest reactive framework with signal-based reactivity and performance optimizations
- π¨ Advanced UI Components - Custom, reusable components with Tailwind CSS styling
- π Real-time Data Visualization - Live updates with websocket integration for device states and metrics
- π Home Assistant Integration - Seamless API integration for device control and automation
- π± Responsive Design - Mobile-first, fully responsive interface supporting all screen sizes
- π― Custom Dashboard - Drag-and-drop widget configuration and personalization
- βοΈ IoT Device Management - Support for multiple device types (lights, switches, climate, media players, etc.)
- π Type-Safe - Full TypeScript support for enhanced development experience
Developer Features
- π§ Hot Module Replacement - Fast development with HMR enabled
- π¦ Optimized Bundle Size - Production-ready optimizations with code splitting
- π§ͺ Testing Ready - Pre-configured testing setup
- π Well Documented - Comprehensive documentation and code comments
- π CI/CD Ready - GitHub Actions workflow included
π οΈ Tech Stack
Frontend
- Framework: Svelte 5 with SvelteKit
- Build Tool: Vite for fast development and optimized production builds
- Styling: Tailwind CSS for utility-first CSS
- TypeScript: Full type safety across the codebase
- State Management: Svelte stores for reactive state
Backend Integration
- API: Home Assistant REST API
- WebSocket: Real-time updates via Home Assistant WebSocket
- Protocol: MQTT support for additional IoT integrations
DevOps & Quality
- Version Control: Git with GitHub
- Package Manager: npm/pnpm
- CI/CD: GitHub Actions
- Code Quality: ESLint, Prettier
- Testing: Vitest and Playwright
π Prerequisites
- Node.js: 18.x or higher
- npm or pnpm: Latest version
- Home Assistant: 2024.1.x or later
- Basic Knowledge: Familiarity with Svelte, TypeScript, and REST APIs
π Getting Started
1. Clone the Repository
git clone https://github.com/egorcha174/evolusion.git
cd evolusion
2. Install Dependencies
npm install
# or
pnpm install
Create a .env.local file in the project root:
VITE_HA_URL=http://192.168.1.100:8123
VITE_HA_TOKEN=your_long_lived_access_token
4. Start Development Server
npm run dev
# or
pnpm dev
The application will be available at http://localhost:5173
5. Build for Production
npm run build
# or
pnpm build
π Project Structure
evolusion/
βββ src/
β βββ components/ # Reusable UI components
β βββ routes/ # SvelteKit routes and pages
β βββ lib/ # Utility functions and helpers
β βββ stores/ # Svelte stores for state management
β βββ types/ # TypeScript type definitions
β βββ App.svelte # Root component
βββ static/ # Static assets
βββ tests/ # Test files
βββ vite.config.ts # Vite configuration
βββ svelte.config.js # SvelteKit configuration
βββ tsconfig.json # TypeScript configuration
βββ tailwind.config.ts # Tailwind CSS configuration
βββ package.json # Project dependencies
π Home Assistant Integration
Supported Services
- Light control (on/off, brightness, color)
- Switch control
- Climate (temperature, modes)
- Media players
- Covers (blinds, doors)
- Lock control
- Sensor readings
- Binary sensors
API Setup
Generate a Long-Lived Access Token in Home Assistant:
- Go to Settings β Devices & Services β Developers Tools
- Create a Long-Lived Access Token
- Copy and save the token
Configure CORS (if needed):
π Documentation
For detailed documentation on components, API, and advanced usage, please refer to:
π§ͺ Testing
Run Tests
# Unit tests
npm run test
# E2E tests
npm run test:e2e
# Coverage report
npm run test:coverage
π€ Contributing
Contributions are welcome and appreciated! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature)
- 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 style and includes tests.
π Development Guidelines
- Use TypeScript for type safety
- Follow the existing code style (use
npm run format)
- Write meaningful commit messages
- Add tests for new features
- Update documentation as needed
- Use conventional commits (feat:, fix:, docs:, etc.)
π Known Issues & Limitations
- WebSocket connection requires Home Assistant to be accessible
- Some complex automations may require additional API calls
- Real-time updates depend on network stability
πΊοΈ Roadmap
π License
This project is licensed under the MIT License - see the LICENSE file for details.
π Acknowledgments
- Issues: Report bugs or request features on GitHub Issues
- Discussions: Join our community discussions
- Documentation: Visit the docs folder for detailed guides
π Deployment
Docker Support
A Docker configuration is available for easy deployment:
docker build -t evolusion .
docker run -p 3000:3000 evolusion
Vercel/Netlify
This project can be deployed to Vercel or Netlify with minimal configuration:
# For Vercel
vercel deploy
# For Netlify
netlify deploy
π‘ Tips & Best Practices
- Use environment variables for sensitive data
- Enable HTTPS in production
- Implement proper authentication
- Monitor network requests in DevTools
- Use the Home Assistant Developer Tools for debugging
- Keep dependencies updated regularly
- Consider using a reverse proxy (Nginx, Traefik) for production
Built with β€οΈ for the Home Assistant Community
Last updated: December 2025