Skip to content
/ jotdown Public

๐Ÿ“ Simple and elegant notes application for Linux with Markdown support, encryption, and both desktop GUI and CLI interfaces

License

Notifications You must be signed in to change notification settings

11bDev/jotdown

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

35 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“ jotDown

jotDown Logo

Simple and elegant notes application for Linux

Release License: MIT Flutter Platform

jotDown is a beautiful, feature-rich notes application for Linux that combines the power of Markdown with the convenience of both a desktop GUI and command-line interface. Whether you prefer clicking or typing, jotDown adapts to your workflow.

โœจ Features

๐ŸŽจ Beautiful Interface

  • Modern Design: Clean, intuitive interface following Material Design 3
  • Adaptive Themes: System auto, light, and dark themes
  • Live Preview: Toggle between Markdown editing and rendered preview
  • Responsive Layout: Optimized for various screen sizes

๐Ÿ” Security & Privacy

  • AES-256 Encryption: Secure your sensitive notes with strong encryption โš ๏ธ (Experimental)
  • Password Protection: Optional password-based access control
  • Local Storage: Your data stays on your machine - no cloud required

โš ๏ธ Note: Encryption features are currently experimental. While we use industry-standard AES-256 encryption, please ensure you have backups of important data and test thoroughly before relying on encryption in production environments.

๐Ÿ“‚ Flexible Storage

  • Multiple Locations: Choose where your notes are stored
    • App Data (default, no file system access needed)
    • Documents folder (~/Documents/jotDown/)
    • Home directory (~/jotDown/)
    • Custom location of your choice
  • Easy Migration: Automatically migrate notes when changing locations
  • Backup & Export: Create zip archives with individual Markdown files

๐Ÿš€ Dual Interface

  • Desktop GUI: Full-featured graphical application
  • Command Line: Powerful CLI for automation and quick access
  • Shared Data: Both interfaces work with the same notes seamlessly

๐Ÿ“ Markdown Support

  • Headers, lists, and formatting
  • Code blocks with syntax highlighting
  • Links, images, and tables
  • Blockquotes and more
  • Live preview while editing

๐Ÿ“ฆ Installation

Download & Installation

Linux Packages

Choose the package format that works best for your Linux distribution:

DEB Package (Debian/Ubuntu) - 21.0 MB

wget https://github.com/timappledotcom/jotdown/releases/download/v0.1.7/jotdown-v0.1.7-amd64.deb
sudo dpkg -i jotdown-v0.1.7-amd64.deb

RPM Package (Red Hat/Fedora/SUSE) - 26.0 MB

wget https://github.com/timappledotcom/jotdown/releases/download/v0.1.7/jotdown-v0.1.7-x86_64.rpm
sudo rpm -i jotdown-v0.1.7-x86_64.rpm
# Or with dnf/yum:
sudo dnf install jotdown-v0.1.7-x86_64.rpm

AppImage (Universal) - 20.0 MB

wget https://github.com/timappledotcom/jotdown/releases/download/v0.1.7/JotDown-v0.1.7-x86_64.AppImage
chmod +x JotDown-v0.1.7-x86_64.AppImage
./JotDown-v0.1.7-x86_64.AppImage

Portable Archive (TAR.XZ) - 19.0 MB

wget https://github.com/timappledotcom/jotdown/releases/download/v0.1.7/jotdown-v0.1.7-linux-x64.tar.xz
tar -xf jotdown-v0.1.7-linux-x64.tar.xz
cd jotdown-v0.1.7-linux-x64
./install.sh  # Optional: install system-wide
# Or run directly: ./jotdown

๐Ÿ“ฆ Latest Release: v0.1.7 - View all releases

๐Ÿ”ง v0.1.7 Highlights: Fixed dock icon display and taskbar pinning issues

Setting up CLI Command

After installing jotDown, you can set up the convenient jd command for CLI access:

Quick Setup (Recommended):

# Navigate to your jotDown installation and run the included setup script
cd /opt/jotdown  # or your installation directory
sudo ./bin/setup-jd.sh

Alternative Methods:

wget https://github.com/timappledotcom/jotdown/releases/download/v0.1.6/setup-cli.sh
chmod +x setup-cli.sh
sudo ./setup-cli.sh

Or create symlink manually:

sudo ln -s /opt/jotdown/bin/jd /usr/local/bin/jd
jd --help

Build from Source

Prerequisites

  • Flutter SDK 3.24+
  • Linux development tools
  • GTK 3.0+ development libraries
# Install dependencies (Ubuntu/Debian)
sudo apt-get install libgtk-3-dev libx11-dev pkg-config cmake ninja-build libblkid-dev libsecret-1-dev

# Clone the repository
git clone https://github.com/timappledotcom/jotdown.git
cd jotdown

# Get Flutter dependencies
flutter pub get

# Enable Linux desktop support
flutter config --enable-linux-desktop

# Build the application
flutter build linux --release

# The built application will be in build/linux/x64/release/bundle/

๐Ÿ–ฅ๏ธ Usage

Desktop Application

Launch jotDown from your application menu or run jotdown in the terminal.

Creating Notes

  1. Click the "+" floating action button
  2. Enter a title and start writing in Markdown
  3. Use the preview toggle to see rendered output
  4. Save with Ctrl+S or click the save button

Managing Storage

  1. Click the settings gear icon
  2. Choose your preferred storage location
  3. Test the location and save
  4. Optionally migrate existing notes

Command Line Interface

jotDown includes a powerful CLI for terminal enthusiasts and automation.

Quick Start

# List all notes
jd list

# Add a new note
jd add -t "My Note" -c "Note content here"

# View a note
jd view --id 123456789

# Search notes
jd search -q "important"

# Use with your favorite editor
export EDITOR=vim
jd add -t "Meeting Notes" --editor

Convenient Wrapper

The jd command is a convenient wrapper around the full Dart CLI:

# Make it globally available
sudo ln -s /path/to/jotdown/bin/jd /usr/local/bin/jd

For detailed CLI documentation, see CLI_README.md.

๐Ÿ”ง Development

Project Structure

lib/
โ”œโ”€โ”€ main.dart                    # App entry point
โ”œโ”€โ”€ models/                      # Data models
โ”œโ”€โ”€ services/                    # Business logic
โ”œโ”€โ”€ screens/                     # UI screens
โ””โ”€โ”€ widgets/                     # Reusable components

bin/
โ”œโ”€โ”€ jotdown.dart                 # CLI implementation
โ””โ”€โ”€ jd                          # CLI wrapper script

assets/
โ”œโ”€โ”€ icons/                      # Application icons
โ””โ”€โ”€ jotdown.desktop            # Linux desktop integration

Contributing

We welcome contributions! Please feel free to:

  • Report bugs and issues
  • Suggest new features
  • Submit pull requests
  • Improve documentation

๐Ÿš€ Roadmap

Exciting features coming to jotDown:

๐Ÿ“ฑ Mobile Support

  • Android App: Native Android application for seamless mobile note-taking
  • Cross-platform Sync: Keep your notes synchronized across Linux desktop and Android

๐Ÿ”„ P2P Synchronization

  • Peer-to-Peer Sync: Direct device-to-device synchronization without cloud dependencies
  • End-to-End Encryption: Secure sync with client-side encryption
  • Local Network Discovery: Automatic detection of other jotDown instances on your network

๐Ÿ”’ Enhanced Security

  • Hardware Key Support: Integration with security keys for authentication
  • Biometric Authentication: Fingerprint/face unlock support on supported devices

๐Ÿ“Š Advanced Features

  • Rich Media Support: Enhanced image, audio, and file attachment handling
  • Advanced Search: Full-text search with filters, tags, and smart suggestions

๐Ÿ’ก Have ideas for other features? Share them in our discussions!

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

  • Built with Flutter for native Linux performance
  • Icons created with love using SVG
  • Inspired by the need for a simple, powerful notes application

๐Ÿ“ฎ Support


Made with โค๏ธ for the Linux community

About

๐Ÿ“ Simple and elegant notes application for Linux with Markdown support, encryption, and both desktop GUI and CLI interfaces

Resources

License

Stars

Watchers

Forks

Packages

No packages published