Owlistic is a free, open-source notetaking and task management application designed for individuals and teams seeking a self-hosted alternative to proprietary tools like Evernote or Joplin. Built with Flutter for the frontend and Go for the backend, it provides a rich WYSIWYG editor, real-time collaboration, and role-based access control—all while running entirely on your own infrastructure. This makes it ideal for users concerned about data privacy, those in regulated environments, or anyone who wants full control over their knowledge base. Owlistic supports markdown import, dark/light mode, trash recovery, and a hierarchical notebook structure to organize notes and tasks efficiently.
The app is still under active development, meaning users should expect occasional bugs or breaking changes. However, its modular architecture and community-driven development model make it a promising candidate for users seeking to replace cloud-dependent note-taking solutions with something transparent, customizable, and secure.
What You Get
- Notebooks/Notes tree - Organize notes in a hierarchical folder structure with nested notebooks, enabling structured knowledge management similar to Evernote’s notebook system.
- Rich (WYSIWYG) editor - Edit notes with a visual editor that supports formatting, images, lists, and headings without needing markdown syntax knowledge.
- Inline todo items - Create and track checklists directly within notes, making it easy to manage tasks embedded in context.
- Real-time sync - Multiple users or devices see changes instantly through WebSocket-based synchronization, enabling collaborative editing without manual refreshes.
- JWT-based auth - Secure user authentication using JSON Web Tokens, allowing integration with existing identity systems or custom login flows.
- Role-based access control - Define user roles (e.g., admin, editor, viewer) to manage permissions for notebooks and notes at a granular level.
- Trash - Recover deleted notes and tasks within a trash bin before permanent deletion, reducing accidental data loss.
- Dark/Light mode - Toggle between UI themes to reduce eye strain and adapt to ambient lighting conditions.
- Import markdown note - Import existing .md files into Owlistic to migrate content from other platforms like Obsidian or Joplin without re-typing.
Common Use Cases
- Building a personal knowledge base - A researcher or student uses Owlistic to collect, organize, and link research notes with inline tasks and nested notebooks, all stored securely on their home server.
- Team documentation hub for small startups - A 5-person team uses Owlistic to maintain shared project docs, meeting notes, and action items with real-time edits and role-based access (e.g., managers can edit, interns can view).
- Privacy-conscious professionals replacing cloud note apps - A lawyer or journalist migrates from Evernote to Owlistic to avoid third-party data harvesting, self-hosting all notes on a private server with encrypted backups.
- DevOps teams managing internal wikis - Engineering teams deploy Owlistic internally to host runbooks, API documentation, and incident reports with markdown support and real-time collaboration during on-call shifts.
Under The Hood
Owlistic is a modern note-taking application inspired by Evernote, built with a Go backend and Dart frontend using Flutter. It emphasizes real-time synchronization, event-driven architecture, and clean separation of concerns to deliver a scalable and developer-friendly experience.
Architecture
Owlistic adopts a layered architecture that clearly separates presentation, business logic, and data access layers.
- Implements a service-oriented design with dedicated modules for notes, tasks, and users
- Employs middleware for cross-cutting concerns like authentication and CORS handling
- Integrates NATS JetStream to enable event-driven communication between components
- Uses a multi-layered structure that promotes modularity and maintainability
Tech Stack
The project leverages a multi-language tech stack combining Go for backend services and Dart for the frontend.
- Built with Go and Gin framework for robust backend routing and GORM for database interactions
- Frontend developed in Dart with Flutter, enabling cross-platform mobile and web support
- Uses NATS JetStream for real-time event streaming and PostgreSQL for data persistence
- Incorporates Docusaurus and React-based tools for documentation and site generation
Code Quality
The codebase reflects a mix of structured practices and areas for improvement in consistency and testing.
- Demonstrates good error handling with custom error types and logging throughout the system
- Follows Go idioms and package structure conventions with clear module organization
- Features limited test coverage, though extensive use of mocking is present in key services
- Adheres to modern development practices with TypeScript and type safety in frontend components
What Makes It Unique
Owlistic distinguishes itself through its real-time capabilities and event-driven architecture.
- Implements a robust event-based system using NATS JetStream for seamless real-time updates
- Offers clean architecture with clear separation between domain logic and infrastructure concerns
- Provides comprehensive documentation and developer guides that enhance contributor accessibility
- Combines multi-language backend and frontend in a way that supports extensibility and scalability