Loomia is a modern and extensible solution for real-time visual collaboration. Designed to be lightweight, flexible, and customizable, it allows the use of plugins, expanding its functionalities. Loomia is also offline-first, ensuring that your work is not lost even without an internet connection. You can run it directly in a browser or as a desktop application using Electron.
- ๐ Plugin System: Extend functionality through custom plugins
- ๐ Real-Time Collaboration: Work simultaneously with other users
- ๐ Customizable Drawing: Create and edit shapes with ease
- ๐ก Offline-First: Continue working even without a connection
- ๐ฅ๏ธ Desktop Application: Available as an app for Windows, macOS, and Linux
- React 18: For dynamic and efficient components
- Vite: Ultra-fast development environment
- TailwindCSS: Customizable and performant styles
- ShadCN UI: Rich and reusable interfaces
- Styled Components: Component-based CSS
- PNPM: Efficient package management
- Electron: For cross-platform desktop application
- WebSockets: Real-time collaboration
- Node.js (>= 16.x)
- PNPM (>= 6.x)
- Docker (optional, for containers)
- Electron (optional, for desktop app)
-
Clone the repository:
git clone https://github.com/felipepimentel/loomia.git cd loomia
-
Install dependencies:
pnpm install
-
Start the development server:
pnpm dev
The project will be running at http://localhost:3000
.
-
Build the image:
docker-compose build
-
Start the container:
docker-compose up
The project will be available at http://localhost:8080
.
-
Install Electron dependencies:
npm install
-
Start Electron:
npm run start
-
To package the application:
npm run build
-
Run tests:
pnpm test
-
Lint:
pnpm lint
-
Format:
pnpm format
/src
/components # Reusable components
/core # Core management
/plugins # Custom plugins
/assets # Styles and assets
/pages # Main pages
/utils # Utility functions
/hooks # Custom hooks
Each plugin follows this basic structure:
export class ExamplePlugin {
init() {
// Initialization
}
enable() {
// Enabling
}
disable() {
// Disabling
}
}
- Sandboxing for plugin isolation
- Electron security configurations
- Fork the repository
- Create a branch:
git checkout -b my-feature
- Commit your changes:
git commit -m 'Add new feature'
- Push to the branch:
git push origin my-feature
- Open a Pull Request
- Project Export (images/PDFs)
- Cloud Synchronization
- Integration with Design Tools
- Mobile Version
This project is licensed under the MIT License. See the LICENSE file for details.
Made with โค๏ธ by the Loomia team.