Skip to content

Cross platform, lightning fast and offline-first bookmarks manager

License

Notifications You must be signed in to change notification settings

dragon-slayer875/PcPocket

Repository files navigation

PcPocket Banner

A cross-platform, lightning fast and offline-first bookmark manager built with Tauri, React, and Vite.

PcPocket screenshot

Overview

PcPocket is a modern bookmark management solution designed to work seamlessly across all major desktop platforms. Unlike traditional browser-based bookmarks, PcPocket stores your bookmarks locally in SQLite, ensuring you always have access to your important links even without an internet connection.

Features

  • Cross-Platform: Works on Windows and Linux
  • Browser Extension: Available for Firefox and Chromium-based browsers (Chrome, Edge, Brave, Zen, Waterfox etc.)
  • Offline-First: All bookmarks stored locally in SQLite database
  • Lightning fast: Operate over 100,000+ bookmarks instantly
  • Lightweight: Minimal system resource usage
  • Modern UI: Built with React for a responsive and intuitive user experience
  • Tag System: Organize bookmarks with customizable tags and categories
  • Quick Search: Find bookmarks by title and tags
  • Data Export/Import: Seamlessly migrate from browser bookmarks
  • Custom Parsers: Use custom parsers to import data from your own sources
  • Hotswappable Config: Change settings without restarting the app

Installation

Desktop Application

Pre-built installers are available for:

  • Windows (.exe)
  • Linux (.deb, .AppImage, .rpm)

Note

Due to some inconsistencies in Tauri's current build system, all Windows builds crash when displaying unpaginated 20K+ rows. Paginated works as expected though. This issue is currently being looked into.

Visit the releases page to download the appropriate version.

Browser Extension

The PcPocket extension is available for:

  • Edge, Brave, and other Chromium-based browsers
  • Zen, Waterfox, and other firefox based browsers

Source Download

Build from Source / Contribute

Prerequisites

# Clone the repository
git clone https://github.com/dragon-slayer875/PcPocket.git
cd PcPocket

# Install dependencies
npm install

# Development
npm run tauri dev

# Build for production
npm run tauri build

Technical Details

Data Storage

PcPocket uses SQLite for local storage, providing:

  • Efficient data storage with minimal footprint
  • Fast search and retrieval operations
  • Data integrity and reliability
  • Easy backup and portability

Search Capabilities

The current version supports searching by:

  • Bookmark titles
  • Tags

Tested to operate flawlessly on over 100,000+ rows, with room for more!

Custom Parsers

PcPocket allows you to create custom parsers for importing data from various sources. This feature is designed for advanced users who want to integrate their own data formats into the application. To create a custom parser, follow these steps:

  1. Create a python script that reads your data source and outputs it to stdout in the following format:
{
  "successful": [
    {
      "title": "Bookmark Title" (optional),
      "link": "https://example.com",
      "icon_link": "https://example_icon.com" (optional),
      "created_at": <UTC timestamp>,
      "tags": ["tag1", "tag2"],
    },
    ...
  ],
  "failed": [
    {
      "index": <index of the failed item>,
      "item": "Item that failed to parse",
      "error": "Error message"
    },
    ...
  ]
}
  1. Set PYTHONPATH environment variable to your standard python library before running the app.
# Linux/macOS
# Replace X.Y with your Python version (e.g., 3.10, 3.11)
export PYTHONPATH=/usr/lib/pythonX.Y:/usr/lib/pythonX.Y/lib-dynload
# Windows
# Replace XY with your Python version (e.g., 310 for Python 3.10, 311 for Python 3.11)
set PYTHONPATH=C:\PythonXY\Lib;C:\PythonXY\DLLs
  1. Use the config options in app to add the parser to the list of parsers. Or add your parser to the config file located at:
config/com.pcpocket.app/config.json
(config is the standard config directory for your OS)

# Format:
{
  "custom_parsers": [
    {
      "name": "Parser Name",
      "type": "python", (more types coming soon)
      "path": "/path/to/your/parser.py",
      "supportedFormats": ["file_format1", "file_format2"],
    },
    ...
  ]
}

License

This project is licensed under the GNU General Public License v3.0 (GPL-3.0) - see the LICENSE file for details.


Contact

Profile Link: https://github.com/dragon-slayer875

Roadmap

  • Mobile companion app
  • Sync options with end-to-end encryption

About

Cross platform, lightning fast and offline-first bookmarks manager

Resources

License

Stars

Watchers

Forks

Packages

No packages published