Welcome to WebOS! This project brings a desktop-like experience into your web browser using modern web technologies like React, WebAssembly, and Vite.
For detailed documentation and insights into the project structure, visit Wiki.
-
Interactive React Interface
A sleek and responsive UI built with React, providing a dynamic and engaging interface with draggable, resizable app windows. -
Dockerized Environment
Containerized using Docker for consistent environments and seamless deployment across platforms. -
Automated CI/CD Pipeline
Leveraging GitHub Actions for continuous integration and delivery, with automated Docker builds and deployments. -
WebAssembly & C++ with Raylib
Integrates C++ code using Raylib and WebAssembly for performance-intensive tasks like algorithm visualization. -
Vite Build Tool
Improved build speed and performance with Vite. -
Custom Build Automation
A Makefile automates the build process for C++ and WebAssembly components.
Category | Technologies |
---|---|
Frontend | React, JavaScript, Vite |
Containerization | Docker |
CI/CD | GitHub Actions |
Backend | WebAssembly, C++ (Raylib) |
Build Tools | Makefile, Emscripten |
The UI is built with React and Vite, offering:
- A desktop-inspired design with draggable, resizable app windows.
- Interactive elements like desktop icons and background video wallpapers.
- Smooth performance with optimized build times.
- C++ and Raylib:
WebAssembly enables running C++ code in the browser, supporting features like:- A Sorting Algorithms Visualizer.
- Experiments with game-like functionality.
- Performance Benefits:
Near-native performance for compute-heavy operations.
- Consistent Environments:
Docker ensures compatibility across development, testing, and production environments. - Automated Deployment:
Images are built, pushed to Docker Hub, and pulled by the server automatically.
- Continuous Deployment via GitHub Actions:
- Docker builds and pushes images.
- Updates the live server seamlessly.
Simplifies WebAssembly builds:
- Automates compilation with Emscripten.
- Optimizes binaries for better performance.
- Faster builds and hot module replacement (HMR) for improved development experience.