Skip to content

BennyPerumalla/SuperBook

πŸ“š SuperBook

SuperBook is an open-source Chrome extension that enhances your reading experience by providing instant word definitions and improved text interaction on any webpage.


🏷️ Badges

License: MIT Build Contributions Welcome Status


πŸ“– Table of Contents


✨ Features

  • ⚑ Instant Definitions: Select any word to get instant dictionary meanings
  • 🎨 Beautiful UI: Modern, minimal, and accessible design with React + Tailwind CSS
  • πŸš€ Fast & Lightweight: Built with performance and low resource usage in mind
  • πŸ”’ Privacy-Focused: Works entirely offline after setup; no data collection
  • 🌐 Universal Compatibility: Works seamlessly across all websites
  • ⌨️ Keyboard Navigation: Use ↑/↓ arrows to browse word history
  • πŸ“š Word History: Automatically saves and displays recent lookups

πŸ–₯️ Demo

🚧 Coming soon β€” The Chrome Web Store release is under review.

For now, you can test it manually via Developer Mode (see below).


πŸš€ Installation

πŸ”Ή From Chrome Web Store

Coming soon – extension will be published to the Chrome Web Store.

πŸ”Ή Manual Installation (Developer Mode)

  1. Download or clone this repository

    git clone https://github.com/BennyPerumalla/SuperBook
    
  2. Open Chrome and go to:

    chrome://extensions/
    
  3. Enable Developer mode (top right corner)

  4. Click Load unpacked and select the public folder

  5. You’ll now see SuperBook listed in your extensions


πŸ› οΈ Development Setup

Before starting, ensure you have Node.js (v16 or higher) installed. We recommend using pnpm β€” a fast, disk-efficient package manager.

πŸ’‘ Why pnpm?

pnpm is a next-generation package manager that:

  • πŸš€ Installs dependencies faster by using a global content-addressable store
  • πŸ’Ύ Saves disk space β€” shared packages aren’t duplicated across projects
  • ⚑ Improves performance with efficient caching and linking
  • 🧩 Maintains strict version control, ensuring consistent builds

In short, it’s faster, leaner, and more reliable than traditional npm installs.


πŸ“¦ Install pnpm (if not already installed)

You can install pnpm globally using npm:

npm install -g pnpm

To verify the installation:

pnpm -v

You should see the version number (e.g., 9.0.0 or later).


🧰 Setup Steps

  1. Fork the repository

    git clone https://github.com/your-username/SuperBook.git
    cd SuperBook
  2. Create a new branch

    git checkout -b feature/your-feature-name
  3. Install dependencies using pnpm

    pnpm install
  4. Start local development (demo site)

    pnpm run dev
  5. Build and test your changes

    pnpm run build

πŸ“‚ Project Structure

SuperBook/
β”œβ”€β”€ public/                      # Extension bundle + web demo static
β”‚   β”œβ”€β”€ manifest.json            # Chrome Extension Manifest V3
β”‚   β”œβ”€β”€ background/              # Background service worker (MV3)
β”‚   β”‚   └── background.js
β”‚   β”œβ”€β”€ content/                 # Content scripts injected on pages
β”‚   β”‚   └── content.js
β”‚   β”œβ”€β”€ popup/                   # Popup scripts (canonical popup is popup.html)
β”‚   β”‚   └── popup.js
β”‚   β”œβ”€β”€ styles/                  # CSS for in‑page tooltip/highlights
β”‚   β”‚   └── tooltip.css
β”‚   β”œβ”€β”€ icons/                   # Extension icons
β”‚   β”‚   β”œβ”€β”€ icon16.png
β”‚   β”‚   β”œβ”€β”€ icon48.png
β”‚   β”‚   └── icon128.png
β”‚   β”œβ”€β”€ popup.html               # Canonical popup UI (terminal‑style)
β”‚   └── popup-terminal.html      # Alternate popup kept for reference
β”œβ”€β”€ src/                         # React demo app (Vite)
β”‚   β”œβ”€β”€ components/              # Reusable UI + demo components
β”‚   β”œβ”€β”€ hooks/                   # Custom React hooks
β”‚   β”œβ”€β”€ lib/                     # Helpers / utilities
β”‚   └── pages/                   # Demo pages (Index, NotFound)
β”œβ”€β”€ index.html                   # Demo app HTML shell (Vite)
β”œβ”€β”€ package.json                 # Project dependencies
└── vite.config.ts               # Vite setup (alias `@` β†’ ./src)

πŸ”§ Technologies Used

Category Stack
Frontend React 18, TypeScript
Styling Tailwind CSS, shadcn/ui
Build Tool Vite
Extension API Chrome Extension Manifest V3
Dictionary API Free Dictionary API

🧭 Notes on Architecture

  • The extension runtime (MV3) assets live under public/background/, public/content/, and public/styles/, referenced by public/manifest.json.
  • The popup’s canonical entry is public/popup.html. The alternate public/popup-terminal.html is retained for reference.
  • The React demo app under src/ showcases the tooltip UX (DictionaryDemo + DictionaryTooltip) and is separate from the extension popup.

🀝 Contributing

Contributions are the heart of open-source ❀️

Whether it’s fixing a typo, improving documentation, or adding a new feature β€” your help is welcome!

Please read our CONTRIBUTING.md for setup instructions, guidelines, and best practices before submitting a PR.


πŸ“ License

This project is licensed under the MIT License β€” see the LICENSE file for details.


πŸ› Bug Reports & Feature Requests

If you find a bug or want to suggest an improvement:

  • Open an issue here β†’ GitHub Issues

  • Clearly describe:

    • The problem or suggestion
    • Steps to reproduce (if applicable)
    • Expected vs actual behavior

πŸ“ž Support

If you have questions or need help:

  • Check the Issues page
  • Or create a new issue β€” we’re happy to assist!

Made with ❀️ by the SuperBook Team

About

A Chrome extension for quick dictionary lookup

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 9