# Vensuite - Open Source Productivity Suite [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![GitHub Stars](https://img.shields.io/github/stars/VenMail/vensuite?style=social)](https://github.com/VenMail/vensuite) **Google Docs, Sheets, Forms & Slides alternatives โ€” fully open source.** Vensuite is a complete productivity suite that you can self-host or use via our managed service at [https://venia.cloud](https://venia.cloud). Part of the [Venmail](https://venmail.io) enterprise email workspace. > **โš ๏ธ Work in Progress** > Vensuite is currently under active development. Features may be incomplete, APIs may change, and some functionality may be unstable. ## โœจ Features ### ๐Ÿ“„ Docs - Rich text editor with TipTap - Real-time collaboration - PDF/DOCX export - AI writing assistance - Version history ### ๐Ÿ“Š Sheets - Full spreadsheet functionality - Formula support - Charts and visualizations - Excel/CSV import/export - Powered by Univer ### ๐Ÿ“ Forms - Drag-and-drop form builder - 20+ field types - Conditional logic - Payment integration (Stripe) - Response analytics ### ๐ŸŽจ Slides - AVNAC canvas editor - PPTX import/export - Slide previews - Professional template library - Smart objects, pen, shapes, snapping, and guides ## ๐Ÿš€ Quick Start ```bash # Clone the repository git clone https://github.com/VenMail/vensuite.git cd vensuite # Install dependencies pnpm install # Start development server pnpm dev ``` ## ๐Ÿ—๏ธ Architecture ``` vensuite/ โ”œโ”€โ”€ src/ โ”‚ โ”œโ”€โ”€ views/ # Main application views โ”‚ โ”‚ โ”œโ”€โ”€ DocsEditor.vue โ”‚ โ”‚ โ”œโ”€โ”€ SheetEditor.vue โ”‚ โ”‚ โ”œโ”€โ”€ FormBuilder.vue โ”‚ โ”‚ โ””โ”€โ”€ SlidesEditor.vue โ”‚ โ”œโ”€โ”€ components/ # Reusable UI components โ”‚ โ”œโ”€โ”€ store/ # Pinia state management โ”‚ โ”œโ”€โ”€ composables/ # Vue composables โ”‚ โ””โ”€โ”€ services/ # API services โ”œโ”€โ”€ public/ # Static assets โ””โ”€โ”€ scripts/ # Build scripts ``` ## ๐Ÿ”ง Configuration Create a `.env` file: ```env VITE_API_BASE_URL=https://m.venmail.io/api/v1 VITE_AUTH_URL=https://m.venmail.io/auth/oauth SOCKET_BASE_URL=wss://w.venmail.io:8443 ``` ## ๐Ÿค Integration with Venmail Vensuite is originally built to work with [Venmail](https://venmail.io) enterprise email workspace: - **Shared authentication** - Single sign-on across all apps - **Unified storage** - Files stored in your Venmail organization - **Email attachments** - Create and attach docs directly from email composer - **BYOS support** - Bring Your Own Storage (S3, R2, SFTP, WebDAV) ## ๐Ÿ“ฆ Self-Hosting ### Docker ```bash docker pull venmail/vensuite:latest docker run -p 3000:3000 -e VITE_API_URL=https:/m.venmail.io venmail/vensuite ``` ### Manual Deployment ```bash pnpm build pnpm preview ``` ## ๐Ÿ›ฃ๏ธ Roadmap - [x] Real-time collaboration (WebSocket) - [ ] Offline support (PWA) - [ ] Plugin system - [ ] More templates ## ๐Ÿ“„ License MIT License - see [LICENSE](LICENSE) for details. ## ๐Ÿ™ Acknowledgments Vensuite is built upon these essential open-source projects that make our productivity suite possible: ### ๐ŸŽจ Core Framework - **[Vue.js](https://vuejs.org/)** - The progressive JavaScript framework powering our entire application - **[TypeScript](https://www.typescriptlang.org/)** - Type-safe development experience - **[Vite](https://vitejs.dev/)** - Lightning-fast build tool and development server - **[Pinia](https://pinia.vuejs.org/)** - State management for Vue.js ### ๐ŸŽจ UI & Styling - **[Tailwind CSS](https://tailwindcss.com/)** - Utility-first CSS framework - **[Headless UI](https://headlessui.com/)** - Accessible UI components - **[Iconify](https://iconify.design/)** - Unified icon framework ### ๐Ÿ“ Document Editing - **[TipTap](https://tiptap.dev/)** - Rich text editor for documents - **[ProseMirror](https://prosemirror.net/)** - Underlying rich text editor framework ### ๐Ÿ“Š Spreadsheets - **[Univer](https://univer.ai/)** - Spreadsheet engine bringing Excel functionality to web ### ๐ŸŽจ Slides - **AVNAC Vue** - Canvas-first presentation editor with PowerPoint-style slide tooling ### ๐Ÿ”„ Real-time Collaboration - **[Y.js](https://github.com/yjs/yjs)** - CRDT for real-time collaboration - **[uWebSockets.js](https://github.com/uWebSockets/uWebSockets.js)** - High-performance WebSocket server ### ๐Ÿ—ƒ๏ธ Data & Storage - **[Axios](https://axios-http.com/)** - HTTP client for API requests - **[Memcached](https://www.memcached.org/)** - Memory caching for real-time data ### ๐Ÿงช Testing - **[Vitest](https://vitest.dev/)** - Testing framework powered by Vite - **[Playwright](https://playwright.dev/)** - End-to-end testing ### ๐Ÿ“ฆ Build & Deploy - **[Docker](https://www.docker.com/)** - Container platform for deployments ### ๐ŸŒ Internationalization - **[VenMail Localizer](https://github.com/VenMail/localizer)** - AI-powered localization and translation system --- **Deep gratitude to the maintainers and contributors of these essential projects.** ๐Ÿ™ ## ๐Ÿ™ Contributing We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md). --- ## ๐ŸŽจ Slides (AVNAC) The slide editor provides a canvas-first presentation experience powered by AVNAC. Core routes: - `slides/new` to create a fresh deck. - `slides/:deckId` to open an existing deck. - `slides/t/:template` redirects to the AVNAC editor flow. ### Features: - **Real-time collaboration** - Edit slides together with Y.js CRDT synchronization - **Canvas editing** - Edit text, shapes, images, pen strokes, diagrams, and infographics directly - **PPTX import/export** - Import and export PowerPoint files from the AVNAC editor - **Slide previews** - Generate deck thumbnails from AVNAC slide documents - **Templates library** - Professional AVNAC document templates for common use cases - **Smart objects** - Insert timelines, funnels, pyramids, cycles, matrices, flowcharts, and org charts - **Canvas sizing** - Switch between 16:9, 4:3, 1:1, portrait, and A4 slide sizes ### Key Components - `src/views/SlidesEditorV2.vue` - Main AVNAC editor route and autosave shell - `src/components/slides/AvnacHost.vue` - AVNAC canvas host, slide strip, tools, import/export, and presenter - `src/components/slides/SlidesTopBar.vue` - PowerPoint-style menu bar and deck actions - `src/components/slides/SlideThumbnail.vue` - AVNAC slide preview renderer - `src/utils/avnacSlideTemplates.ts` - AVNAC-native deck template generator ### Import & Export - **PowerPoint Import** - Upload `.pptx` files into the AVNAC editor - **PowerPoint Export** - Download AVNAC decks as `.pptx` - **Template System** - Generate editable AVNAC slide documents from template presets ### Validation Checklist - **Create**: Visit `slides/new`, add slides, and confirm autosave updates the deck title - **Templates**: Create a deck from the Slides page template picker and ensure editable AVNAC slides load - **Import**: Use the File menu to import PPTX files; confirm slide content converts properly - **Smart Objects**: Use the Insert menu or right rail to insert diagrams and infographics - **Export**: Trigger PDF and PPTX exports; verify file downloads - **Thumbnails**: Confirm slide strip and deck list previews update after edits - **Responsive**: Test slide editor on different screen sizes