Papra is a lightweight, open-source document management and archiving platform designed for individuals and small teams who need to store, organize, and retrieve documents over the long term. Unlike complex enterprise systems, Papra focuses on simplicity and accessibility—making it ideal for saving receipts, warranties, contracts, or scanned documents without the overhead of bloated interfaces. With support for full-text search, tagging, email ingestion, and folder monitoring, Papra helps users eliminate digital clutter while maintaining full control over their data through self-hosting. Built with modern web technologies like SolidJS and HonoJS, it offers a responsive UI that works seamlessly across devices.
Papra is not just another file uploader; it’s a purpose-built digital archive. Whether you’re trying to find that old tax form from 2019 or share warranty documents with family members, Papra provides a clean, intuitive interface backed by powerful features like automatic text extraction from images and customizable tagging rules. Its self-hosted nature ensures privacy, and its Docker-based deployment makes it easy to run anywhere—from a home server to a cloud VPS.
What You Get
- Document management - Upload, store, and organize documents in a searchable archive with support for PDFs, images, Office files, and more.
- Organizations - Create shared spaces to manage documents with family, friends, or colleagues without requiring individual accounts for each user.
- Full-text search - Quickly locate documents using keyword searches, including content extracted from scanned images and PDFs.
- Email ingestion - Automatically import documents by sending emails to a unique, generated email address—ideal for forwarding receipts or scanned bills.
- Tagging and tagging rules - Manually tag documents or set up automated rules (e.g., “if filename contains ‘receipt’, tag as ‘finance’”) for intelligent organization.
- Folder ingestion - Monitor local or network folders and automatically import new files into Papra without manual uploads.
- CLI tool - Manage documents, users, and configurations via command line for scripting and automation tasks.
- API, SDK, and webhooks - Integrate Papra with other tools or build custom workflows using REST API endpoints, client SDKs, and event-driven webhooks.
- Dark mode & responsive design - Enjoy a clean, accessible interface that works on desktops, tablets, and mobile devices with automatic theme detection.
- Self-hosting via Docker - Deploy your own instance in seconds using a lightweight <200MB Docker image compatible with x86, ARM64, and ARMv7 architectures.
- i18n support - Use Papra in multiple languages with built-in localization for global users.
- Open source (AGPL-3.0) - Full transparency with publicly available code, allowing audit, modification, and community contributions.
Common Use Cases
- Building a personal document archive - A user stores all their financial documents, warranties, and tax records in Papra after scanning them with a phone camera; they use email ingestion to forward PDFs from their bank and search later by date or keyword.
- Managing family documents - A household uses Papra’s organization feature to centralize medical records, school forms, and insurance policies that multiple family members can access without a cloud service.
- Problem → Solution flow: Lost receipts → Automatic email import - A user forwards email attachments (e.g., Amazon receipts) to their Papra-generated email address; Papra extracts text from the PDF, indexes it, and tags it as ‘finance’—making retrieval effortless years later.
- DevOps teams managing compliance docs - A small team uses Papra’s folder ingestion and tagging rules to automatically archive audit logs, configuration files, and client contracts from their deployment directories into a searchable, version-controlled archive.
Under The Hood
Papra is a multi-platform document management system built with a monorepo structure that supports web and mobile clients through shared backend and UI components. It emphasizes type safety, modular architecture, and cross-platform consistency using modern frameworks like React Native and Astro.
Architecture
The system adopts a modular monorepo design with distinct applications for documentation, mobile, and client interfaces. It enforces clear separation of concerns through shared modules and consistent component interactions.
- The codebase is organized into well-defined applications with reusable utilities, authentication modules, and API clients.
- Dependency injection and provider patterns are used to manage services and state across platforms.
- Layered architecture supports scalable component communication with centralized configuration and routing.
- Shared models, constants, and utilities reduce redundancy and promote consistency across modules.
Tech Stack
The project leverages a modern TypeScript ecosystem with React Native and Astro for cross-platform development.
- Built primarily in TypeScript, using React Native for mobile interfaces and Astro for documentation.
- Relies on libraries such as TanStack Query, Valibot, and Expo for robust state management and validation.
- Employs Vite, UnoCSS, and ESLint for efficient builds, styling, and code quality enforcement.
- Vitest and ESLint are used for testing and linting, ensuring maintainable and consistent code.
Code Quality
The project demonstrates a mature development approach with strong emphasis on testing and structured error handling.
- Extensive test coverage is present across mobile, API, and client modules, supporting reliable functionality.
- Error handling follows consistent patterns using try/catch blocks and custom error messages for resilience.
- Code is generally well-structured with consistent naming and organization, though some technical debt exists in duplicated logic.
What Makes It Unique
Papra introduces a unique no-mutation principle and immutable data handling in its document management approach.
- The system supports both web and mobile clients with a shared backend, enabling seamless cross-platform experiences.
- Integration of Astro for documentation and React-based mobile interfaces showcases a hybrid approach to modern tooling.
- Security and extensibility are core design principles, with modular components that support future enhancements.