Why I left Notion
Used Notion for everything - notes, docs, project planning, knowledge base. Was pretty happy with it until I started thinking about data privacy.
All my stuff living on someone else's servers. If Notion goes down, gets hacked, or changes their terms - I'm screwed. Exporting is possible but it's a mess, and importing into other tools basically doesn't work.
Looked for alternatives. Found AppFlowy - open-source, local-first, supports offline access. Sounded like what I needed.
What convinced me to switch
All my data lives on my machine - SQLite files I can actually access. Offline access works without thinking about it. Exports to standard formats that actually work with other tools.
And the interface is surprisingly similar to Notion. The learning curve was like two days.
So what is AppFlowy
AppFlowy is an open-source workspace for notes, docs, and knowledge bases. It's designed as a privacy-focused, local-first alternative to Notion. Your data lives in SQLite databases on your machine, not in someone else's cloud.
The key features:
- Local-first: Data stored in SQLite files on your machine
- Offline access: Works without internet - full functionality
- Notion-like UI: Familiar blocks, pages, databases
- Real-time collaboration: Share workspaces with others
- Database views: Tables, Kanban, calendar, gallery
- Open-source: Fully auditable code, community plugins
- Cross-platform: Desktop (Mac/Windows/Linux), mobile, web
- Encryptable sync: Optional cloud sync with end-to-end encryption
Why it's different from Notion:
- You own your data - SQLite files you can access directly
- Works offline - no internet needed for full functionality
- No vendor lock-in - exports to Markdown, CSV, JSON
- Privacy-focused - no account tracking, no telemetry
- Open development roadmap - community drives features
It's not a 1:1 Notion clone - some features are still missing. But for 90% of what I do, it works perfectly.
Getting AppFlowy running
Desktop app (recommended)
Simplest option - download the desktop app:
# Download from website
# https://appflowy.io/downloads
# Supports:
# - macOS (Intel and Apple Silicon)
# - Windows (portable version available)
# - Linux (AppImage, deb package)
Just install it like any other app. No account required - starts with a local workspace immediately.
Build from source
For developers or custom builds:
# Clone the repository
git clone https://github.com/AppFlowy-IO/AppFlowy.git
cd AppFlowy
# Install Rust and Flutter dependencies
# See docs for platform-specific setup
# Build and run
cargo run --bin appflowy --features dart_frb
# Flutter will download and build the frontend
Docker (for servers)
# Run AppFlowy in Docker
docker run -d \
--name appflowy \
-p 80:80 \
-v appflowy_data:/app/data \
appflowyio/appflowy:latest
Desktop app is the way to go for most users. Docker's good if you want to self-host a web version.
Setting up your workspace
First launch
When you first open AppFlowy, it creates a local workspace. You'll see:
# Sidebar navigation
- Workspace (root)
- Pages
- Getting Started (default page)
- Settings
# Everything is local
# Data stored in:
# ~/Library/Application Support/AppFlowy/data/ (macOS)
# ~/.appflowy/data/ (Linux)
# C:\Users\\.appflowy\data\ (Windows)
Importing from Notion
AppFlowy has a built-in importer:
# 1. Click "Import Data" in sidebar
# 2. Select "Notion"
# 3. Two options:
# Option A: NotionExport (easier)
# - Use NotionExport tool to export your workspace
# - Upload the zip file to AppFlowy
# - Preserves pages, databases, formatting
# Option B: Manual import
# - Copy-paste content from Notion
# - AppFlowy tries to maintain structure
# - Better for smaller workspaces
My experience: The NotionExport approach worked surprisingly well. Pages, databases, even nested content came through correctly.
Organizing your workspace
AppFlowy uses a similar block-based system:
# Create pages with different content blocks
- Text / Headings
- To-do lists
- Bulleted / Numbered lists
- Toggle lists
- Code blocks (with syntax highlighting)
- Callouts
- Quotes
- Dividers
- Images / Files
- Databases (inline or full-page)
- Linked databases
Same mental model as Notion, so the transition is pretty painless.
Using databases
Creating a database
AppFlowy supports relational databases similar to Notion:
# Create new page → Choose "Database"
# Database properties:
- Text (short and long text fields)
- Number (integers, decimals)
- Select (single choice dropdown)
- Multi-select (multiple choice tags)
- Date (with time option)
- Checkbox (boolean)
- URL
- Email
- Phone
- Files
- Relations (link to other databases)
Database views
Different ways to visualize data:
Same database can have multiple views:
- Table (default spreadsheet view)
- Board (Kanban - great for task management)
- Calendar (shows dates on calendar)
- Gallery (grid view with image previews)
# Switch between views instantly
# Each view can have different filters and sorts
Relations between databases
Link databases together:
# Example: Projects database
# - Project Name (text)
# - Status (select: Planning, In Progress, Done)
# - Assignee (relation to People database)
# - Due Date (date)
# People database
# - Name (title)
# - Email (email)
# - Skills (multi-select)
# - Projects (relation back to Projects)
Relations work like foreign keys in SQL databases. Self-referencing too - great for hierarchical data.
What I use AppFlowy for
Personal knowledge base
All my notes, documentation, how-tos in one place:
# Quick capture (default page)
- Daily notes
- Meeting notes
- Random thoughts
# Organized with:
- Tags for categorization
- Links between related pages
- Full-text search across everything
Project planning
Track projects with databases and Kanban boards:
# Projects database with views:
- Table view: Overview of all projects
- Board view: Kanban by status
- Calendar view: Timeline of deadlines
# Each project page linked to database entry
- Notes, docs, tasks all in one place
Documentation
Technical docs, SOPs, runbooks:
# Code snippets with syntax highlighting
- Architecture diagrams (as images)
- Step-by-step procedures
- Environment variable documentation
- On-call runbooks
# All offline-accessible
- Search works without internet
CRM-lite
Track contacts and opportunities:
# People database
- Name, contact info
- Tags (client, lead, friend)
- Notes history
- Last contacted date
# Companies database
- Company details
- Associated contacts (relation)
- Deal stage (select)
- Revenue (number)
Content calendar
Plan and track content creation:
# Content database
- Title
- Type (blog, video, social)
- Status (Idea, Draft, Published)
- Publish Date (date)
- Platform (select)
- Link (URL)
# Calendar view shows publishing schedule
- Table view for sorting and filtering
Collaboration and sync
Real-time collaboration
Work with others in real-time:
# Share a page or entire workspace
# - Generate share link (if using AppFlowy Cloud)
# - Invite with email (if using self-hosted with auth)
# - Set permissions: View, Comment, Edit
# Real-time cursor showing
- See who's viewing
- See what they're working on
- Comments and mentions
AppFlowy Cloud sync
Optional cloud sync with encryption:
# Enable AppFlowy Cloud
# - Create account at cloud.appflowy.io
# - Login from desktop app
# - Choose workspace to sync
# Features:
- End-to-end encryption
- Selective sync (specific folders or files)
- Real-time sync across devices
- Conflict resolution
I use local-only. No need for cloud sync, and I like knowing my data never leaves my machines.
Self-hosted sync server
Run your own sync server:
# For full control, host your own sync server
# - More complex setup
# - Requires infrastructure
# - Complete data sovereignty
# Only needed for team environments
# Personal use: local-only is simpler
Advanced features
Templates
Create reusable page templates:
# Save page as template
# - Structure, blocks, content all saved
# - Use to quickly create similar pages
# - Great for repeated documents
# My templates:
- Meeting notes
- Project documentation
- SOP template
- Weekly review
Keyboard shortcuts
Speed up your workflow:
# Essential shortcuts:
Ctrl/Cmd + / : Command palette
Ctrl/Cmd + K : Inline code block
Ctrl/Cmd + B : Bold
Ctrl/Cmd + I : Italic
Ctrl/Cmd + U : Underline
Ctrl/Cmd + S : Save (auto-save anyway)
Tab : Indent
Shift + Tab : Outdent
@ : Mention person/page
# : Create heading
Slash commands
Type @ for quick actions:
@ / : Heading level 1
@ todo : Toggle list
@ bullet : Bullet list
@ date : Date picker
@ time : Time
@ code : Code block
@ quote : Quote block
@ divider : Horizontal line
@ callout : Callout box
@ table : Table
@ database : Inline database
Backlinks
See what links to current page:
# In sidebar: "Linked References"
# Shows all pages that link to current page
- Backlinks from text references
- Database relations
- Manual links
# Great for building knowledge networks
- See connections between notes
Problems I hit
Import issues
Some content didn't import correctly from Notion.
# Fixed by
1. Using NotionExport tool instead of manual import
2. Cleaning up weird formatting manually
3. Re-creating some complex databases from scratch
4. Importing images separately (they don't always embed)
Database relation issues
Relations not working as expected.
# Fixed by
1. Making sure relation types match (self vs external)
2. Re-creating relation if corrupted
3. Checking that both databases have the relation field
4. Reading docs on relation behavior (it's not identical to Notion)
Sync conflicts
When using cloud sync, conflicts happened.
# Fixed by
1. Editing same page from multiple devices
2. Conflicted version gets created
3. Review both versions, merge changes
4. Keep one, delete other
# Avoid by editing from one main device
# Or being careful about concurrent edits
Missing features
Notion features I missed initially.
# Gaps I noticed:
- API integrations (limited but exists)
- Webhooks (not yet implemented)
- Advanced formula logic (getting better)
- Some automations (in development)
# Workarounds:
- Use external tools for automations
- Export data, process externally, re-import
- Check roadmap - features being added constantly
Performance with large databases
Large databases became slow.
# Fixed by
1. Archiving old entries to separate database
2. Using filters to show only active records
3. Splitting massive databases into smaller ones
4. Performance is improving with updates
AppFlowy vs Notion vs others
| AppFlowy | Notion | Obsidian | |
|---|---|---|---|
| Data location | Local | Cloud | Local |
| Offline access | Full | Limited | Full |
| Data export | Standard formats | Proprietary | Markdown |
| Databases | Yes | Yes | Plugins only |
| Real-time collab | Yes | Yes | Limited |
| Cost | Free | Free tier, then $$$ | Free |
| Privacy | By design | Privacy concerns | You control it |
| Learning curve | Low (if you know Notion) | Low | Medium |
| Best for | Privacy-focused users | General users | Power users |
AppFlowy is the sweet spot if you want Notion's interface with local-first, privacy-focused storage. Obsidian is more flexible but requires more setup. Notion is easiest but has privacy concerns.
Would I recommend it?
Absolutely. Switched my entire workspace from Notion to AppFlowy about 6 months ago. Haven't looked back.
The peace of mind knowing my data lives on my machine is huge. No worrying about service outages, company getting acquired, or terms changing. My data is under my control.
Offline access is a game changer. Work on planes, in coffee shops with bad WiFi, anywhere. Everything just works.
Import from Notion was easier than expected. Most of my content came through correctly. The 10% that didn't was easy enough to fix manually.
It's not perfect - some Notion features are still missing, and occasionally there are bugs. But the core functionality is solid, and it's actively being developed.
If you care about data privacy, want offline access, or just want to own your data, AppFlowy is the best Notion alternative I've found.
Links: appflowy.io | GitHub: github.com/AppFlowy-IO/AppFlowy | Docs: docs.appflowy.io