Twake Drive is an open-source file management application designed as a self-hosted alternative to Google Drive, built on the Cozy Cloud platform. It provides users with a familiar file tree interface to upload, organize, search, and share files and folders via URLs. Designed for developers and organizations seeking control over their data, Twake Drive integrates seamlessly with Cozy Stack — a full-stack personal cloud platform — enabling features like sharing between users and email notifications. The application is not a standalone service but requires Cozy Stack as its backend, making it ideal for teams looking to deploy private cloud storage with collaboration features without relying on third-party services.
What You Get
- File tree interface - Provides a hierarchical view of files and folders, enabling intuitive navigation and organization similar to desktop file explorers.
- File and folder uploads - Supports direct upload of files and creation of folders through a web-based interface, with no external dependencies beyond Cozy Stack.
- File sharing via URLs - Allows users to generate shareable links for files and folders, enabling collaboration without requiring recipient accounts.
- Search functionality - Enables full-text search across files and folders to quickly locate content without manual browsing.
- Cozy Stack integration - Deeply integrated with Cozy Stack for authentication, storage, and sharing features, including email-based sharing workflows via MailHog in development.
- Developer-friendly setup - Supports Yarn, NVM, and hot module reloading for development; includes built-in support for linking Cozy UI and Cozy Client libraries for custom extensions.
Common Use Cases
- Building a private cloud storage solution - Organizations replacing Google Drive with a self-hosted, GDPR-compliant file manager that they fully control and audit.
- Creating a team document repository - Teams managing shared project files with URL-based sharing, avoiding external cloud services and ensuring data stays within their infrastructure.
- Problem: Need secure file sharing without email attachments → Solution: Twake Drive enables URL-based sharing with access controls via Cozy Stack, eliminating risky email attachments and centralizing file management
- DevOps teams managing internal tools - Teams deploying Cozy Stack as a platform for multiple apps (including Twake Drive) and needing a unified, customizable file management frontend.
Under The Hood
Cozy Drive is a sophisticated file management interface built within the Cozy ecosystem, designed to provide a seamless and extensible experience for handling files across multiple drives and sharing contexts. It emphasizes integration with platform-specific tools while maintaining a modular, component-driven architecture.
Architecture
The system adopts a monolithic yet modular structure that clearly separates UI, state management, and core logic. It leverages component-based organization and context-driven state handling to support complex file operations.
- Follows a layered architecture with distinct modules for UI, state, and business logic
- Emphasizes separation of concerns through component-based design and context providers
- Implements reactive state management to handle real-time updates and multi-drive operations
Tech Stack
The project is rooted in JavaScript and TypeScript, utilizing React as its primary UI framework alongside a suite of Cozy-specific libraries. It embraces modern development practices and tooling for performance and maintainability.
- Built with React, TypeScript, and a suite of Cozy ecosystem libraries such as cozy-client and cozy-ui
- Employs Rsbuild for building, Swc for fast transformation, and Jest for testing
- Integrates with standard React tools like react-redux and react-dnd for enhanced functionality
- Uses comprehensive test infrastructure including jsdom, identity-obj-proxy, and component testing helpers
Code Quality
The codebase demonstrates a mature approach to testing with extensive coverage and organized test suites. It maintains consistent error handling and follows clear naming conventions, though some legacy components show signs of technical debt.
- Comprehensive test suite with jsdom and identity-obj-proxy for mocking and component testing
- Consistent error handling across modules with clear logging and exception patterns
- Well-organized directory structure and type-safe components that support maintainability
- Moderate technical debt in legacy code, but overall clean separation and style consistency
What Makes It Unique
Cozy Drive distinguishes itself through its deep integration with the Cozy platform and innovative approaches to state management, real-time updates, and cross-platform compatibility.
- Leverages context providers and reactive state for handling complex file operations in multi-drive environments
- Implements custom push banner integrations and DnD providers that adapt dynamically based on feature flags
- Prioritizes developer experience with extensive test helpers, type safety, and modular UI components
- Supports cross-platform responsiveness through webview intent handling and adaptive design patterns