Skip to content

praTeek271/tabby

Repository files navigation

Tabby 🐱

Tabby is a sleek, cross-platform, multi-environment notes application built with web technologies and designed for speed, focus, and extensibility. Whether you're jotting down quick thoughts, writing essays in Markdown, or managing your personal knowledge base, Tabby works seamlessly both in the browser and on the desktop.

Tabby Screenshot (Add your own screenshot here)

Features ✨

  • Markdown Support: Write in plain text and toggle beautifully rendered Markdown preview instantly (Ctrl + E).
  • Cross-Platform Desktop App: Built with Tauri, Tabby can run natively on Mac, Windows, and Linux.
  • Focus Mode: Enter distraction-free writing mode, hiding sidebars and UI fluff to keep your mind on the words.
  • Cloud Syncing:
    • Firebase Integration: Authenticate securely and sync your notes instantly across sessions using Firestore.
    • Google Drive Sync: Back up and restore your entire workspace directly to your Google Drive account.
  • Offline First: Create notes locally without logging in. They are saved directly to your machine or browser storage.
  • Tagging & Colors: Organize your notes quickly by color-coding tags.
  • Powerful Search & Replace: Quickly find and replace text across your note (Ctrl + F, Ctrl + H).
  • Undo/Redo History: Robust local history buffer to recover from mistakes (Ctrl + Z, Ctrl + Y).
  • Customizable Settings: Adjust application themes (Light, Midnight, Sepia), font families (Sans, Serif, Mono), and font sizes to fit your environment.
  • Import / Export: Easily import .txt and .md files and export your notes back to your local filesystem.

Keyboard Shortcuts ⌨️

Work at the speed of thought with these global hotkeys:

Action Shortcut
New Note Ctrl + T
Toggle Markdown / Text Ctrl + E
Find Ctrl + F
Replace Ctrl + H
Import Note Ctrl + O
Export Note Ctrl + Alt + S
Delete Active Note Ctrl + Del
Undo Ctrl + Z
Redo Ctrl + Y or Ctrl + Shift + Z
Toggle Focus Mode Esc (when editor is focused)

Tech Stack 🛠️

Tabby is built entirely on modern, performant web tools:

  • Frontend: React 19, TypeScript, Vite
  • Styling: Tailwind CSS v4, Lucide React (Icons)
  • Backend & Sync: Firebase (Firestore, Auth), Google Drive API
  • Desktop Container: Tauri framework (Rust)
  • Markdown parsing: react-markdown, remark-gfm

Development Setup 🚀

To get started with local development, clone the repository and install dependencies.

Prerequisites

  • Node.js (v18+)
  • npm or yarn
  • Rust and Cargo: Required to build the desktop version (curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh)
  • OS-specific dependencies for Tauri: (e.g., build-essential, libwebkit2gtk-4.1-dev on Linux, C++ tools on Windows). See Tauri Prerequisites.

Installation

  1. Clone the repository:

    git clone https://github.com/prateek271/tabby.git
    cd tabby
  2. Install dependencies:

    npm install
  3. Environment Setup: Copy .env.example to .env and fill in your Firebase / Google Workspace API credentials.

    cp .env.example .env

Running the App

Web Configuration (Vite dev server):

npm run dev

The app will be available at http://localhost:3000.

Desktop Configuration (Tauri):

npm run tauri dev

This spins up the Vite development server AND launches the Tauri desktop window concurrently.

Building for Production

Web Build: Produces static files in dist/.

npm run build

Desktop Packages: Builds native desktop installers (Mac .dmg, Linux AppImage, Windows .exe) in the src-tauri/target/ folder.

To explicitly build the desktop app, you MUST have configuring Rust as detailed in the Prerequisites section. If you encounter the error failed to run command cargo metadata --no-deps --format-version 1: program not found, it means you need to install Rust.

Use the following command to build for your current host system:

npm run build:desktop

Folder Structure 📂

  • /src: Contains the core React application, components, utility functions, and Firebase configurations.
  • /src-tauri: Contains the Tauri (Rust) main process code, capabilities, and desktop window configurations.
  • /scripts: Utilities for refactoring and code generation.

Contributing 🤝

Contributions, issues, and feature requests are welcome! Feel free to check out the issues page.

License 📝

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