- What is JotPad?
- Key Features
- Technology Stack
- Supported Platforms
- Limitations and Warnings
- Quick Start
- Development Commands
- Project Structure
- Internationalization
- Contributing
- License
JotPad is a FOSS note-taking application that transforms the way you capture and organize your thoughts. Instead of traditional note-taking, JotPad lets you message yourself - just like your favorite chat apps! ๐ฌ
Imagine having a conversation with yourself where every message becomes a note entry, complete with timestamps, markdown support, and powerful organization features. It's note-taking reimagined for the digital age! โจ
- Chat-Based Note-Taking: Send messages to yourself with a familiar chat interface
- Smart Tagging: Organize notes with color-coded tags for easy categorization
- Powerful Search: Find notes and entries instantly with real-time search
- Timestamp Tracking: Every entry is automatically timestamped
- Theme Support: Light, dark, and system theme modes
- Color Themes: 8 beautiful color schemes to match your style
- Custom Backgrounds: Set your own background images with opacity controls
- Multi-Language: Support for 10+ languages including Arabic, Chinese, Japanese, and more
- Local Storage: All data stored locally in SQLite database
- Export Options: Export notes in JSON, TXT, or Markdown formats
- Auto-Save: Never lose your work with automatic saving
- Smart Deletion: Safe deletion with confirmation dialogs
- Performance: Built with Rust backend for lightning-fast performance
- Security: Local-first approach ensures your data privacy
- Auto-Updates: Automatic update checking and notifications
- No Analytics: No tracking or data collection
JotPad is built with modern, cutting-edge technologies:
- React 18 - Modern UI framework
- TypeScript - Type-safe development
- TailwindCSS - Utility-first CSS framework
- ShadCN UI - Beautiful, accessible components
- Lucide Icons - Consistent iconography
- Tauri 2 - Cross-platform desktop framework
- Rust - High-performance system programming
- SQLite - Lightweight, local database
- Next.js - Web application framework
- Monorepo - TurboRepo for efficient development
- Shared Components - Consistent UI across platforms
- Internationalization - i18next for multi-language support
- State Management - React hooks for clean state handling
| Platform | Status | Download |
|---|---|---|
| ๐ช Windows | โ Available | Download |
| ๐ macOS | โ Available | Download |
| ๐ง Linux | โ Available | Download |
| ๐ค Android | โ Available | Download |
| ๐ฑ iOS | ๐ง Coming Soon | - |
| ๐ Web | ๐ง Coming Soon | - |
Please read carefully before using JotPad in its current development stage.
-
Offline-First Only
JotPad is designed as an offline-first application. At this time, there is no built-in synchronization between devices or platforms. All your notes are stored locally on the device where they were created. -
Not for Critical Data
Because JotPad is still under active development, unexpected bugs or crashes may occur. We strongly recommend not using JotPad to store irreplaceable or mission-critical information until synchronization and stability have been fully implemented and tested. -
Potential Data Loss
As features evolve, database schema changes or unanticipated errors could lead to data loss. Please export or back up your notes regularly (e.g., via JSON, TXT, or Markdown export) to safeguard your content. -
Cross-Platform Testing Incomplete
While JotPad aims to run on Web, Desktop (Windows, macOS, Linux) and Mobile (Android, iOS), not every combination of device, browser or OS has been exhaustively tested. You may encounter layout issues, performance quirks, or platform-specific bugs. -
Feedback Welcome
Your input helps us improve. If you experience any issues or have suggestions, please open an issue on GitHub describing the problem, your environment, and any relevant logs or screenshots.
Thank you for trying JotPad during its early stages. We appreciate your understanding and patience as we work towards a robust, fully synchronized note-taking experience! ๐
Note
For detailed information you can refer to Tauri's official documents: Prerequisites
Before you begin, ensure you have the following installed:
- Node.js (v22 or higher) - Download
- pnpm (v8 or higher) - Install Guide
- Rust (latest stable) - Install Guide
Optional for Mobile Development:
-
Clone the repository
git clone https://github.com/odest/JotPad.git cd JotPad -
Install dependencies
pnpm install
-
Start development
# For web development pnpm --filter web dev # For desktop development pnpm --filter native dev # For all platforms pnpm dev
# Build all applications
pnpm build
# Build specific platform
pnpm --filter native build
pnpm --filter web build
pnpm --filter landing build| Command | Description |
|---|---|
pnpm dev |
Start development servers for all apps |
pnpm build |
Build all applications for production |
pnpm lint |
Run ESLint across the codebase |
pnpm format |
Format code with Prettier |
pnpm clean |
Remove all build artifacts |
pnpm check-types |
Check TypeScript types |
pnpm tauri dev |
Start Tauri desktop app in development |
pnpm tauri android dev |
Start Tauri Android app in development |
pnpm tauri ios dev |
Start Tauri iOS app in development |
JotPad/
โโโ apps/
โ โโโ landing/ # ๐ Landing page (Next.js)
โ โโโ web/ # ๐ Web application (Next.js)
โ โโโ native/ # ๐ฑ Desktop & Mobile (Tauri)
โ โโโ src/ # ๐จ Frontend React code
โ โโโ src-tauri/ # โก Backend Rust code
โโโ packages/
โ โโโ ui/ # ๐จ Shared UI components
โ โโโ typescript-config/ # โ๏ธ TypeScript configurations
โ โโโ eslint-config/ # ๐ ESLint configurations
JotPad supports 10+ languages out of the box:
- English (๐บ๐ธ)
- Spanish (๐ช๐ธ)
- French (๐ซ๐ท)
- German (๐ฉ๐ช)
- Russian (๐ท๐บ)
- Japanese (๐ฏ๐ต)
- Chinese (๐จ๐ณ)
- Turkish (๐น๐ท)
- Arabic (๐ฆ๐ช)
- Hindi (๐ฎ๐ณ)
Language files are located in packages/ui/locales/ and use the i18next framework.
Important
Please note that these translations were generated by AI. Some phrases or expressions may not be perfect.
We welcome contributions from the community! Here's how you can help:
- Use the GitHub Issues page
- Include detailed steps to reproduce the issue
- Provide system information and error logs
- Submit feature requests through GitHub Issues
- Describe the use case and expected behavior
- Consider contributing the implementation
- Check if your language already exists under the
locales/directory - If not, create a new language file (e.g.,
locales/en/translation.jsonfor English) - Either add a new translation or fix an existing one
- Ensure translation keys are consistent and contextually correct
- Once complete, follow the code contribution steps above to submit a Pull Request
- Fork the repository
- Create a feature branch (
git checkout -b my-feature) - Make your changes
- Add tests if applicable
- Commit your changes (
git commit -m 'Add a descriptive message about your changes') - Push to the branch (
git push origin my-feature) - Open a Pull Request
- Follow the existing code style and conventions
- Add TypeScript types for all new functions
- Test your changes across different platforms
- Update documentation as needed
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
The GPL-3.0 license ensures that:
- โ The software remains free and open source
- โ Derivative works must also be open source
- โ Users have the right to modify and distribute the code
- โ The community benefits from all improvements