npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

contribbridge

v1.2.2

Published

Translate every GitHub issue in real-time using Lingo.dev SDK — bidirectionally, across 87 languages.

Readme

🌎 ContribBridge

ContribBridge Hero Visual

Translate every GitHub issue in real-time using the Lingo.dev SDK — bidirectionally, across 87 languages, with zero config.

Live Dashboard Demo | GitHub Repo

57% of the world's developers don't write English fluently. They file bugs, find security issues, and request features — but maintainers never see them because they aren't written in English. ContribBridge fixes this with three simple command.


📐 Architecture

graph TD
    GH[GitHub Repository] -- "Webhook Event" --> WB[Express Server: /webhook/github]
    
    subgraph "Verification & Gating"
        WB --> SIG[HMAC-SHA256 Signature Verify]
        SIG -- "ACK 200" --> GH
        SIG --> GATE[License Validation]
    end
    
    subgraph "Translation Pipeline (Powered by Lingo.dev)"
        GATE --> DET[Language Detection]
        DET --> TRA[Issue/Comment Translation]
        TRA --> ENR[AI Enrichment: Labels & Severity]
    end
    
    subgraph "Output & Persistence"
        ENR --> POST[Post-back to GitHub via Octokit]
        ENR --> BCAST[WebSocket Broadcast to Dashboard]
        ENR --> DB[(SQLite Persistence)]
    end
    
    POST --> GH
    BCAST --> UI[Live Dashboard UI]

📂 Project Structure

contribbridge/
├── bin/
│   └── cli.js          # CLI entry point (init, connect, watch)
├── src/
│   ├── server.js       # Express app & GitHub Webhook endpoint
│   ├── pipeline.js     # Main orchestrator for translation flow
│   ├── translate.js    # Lingo.dev SDK wrapper
│   ├── detect.js       # Language detection utility
│   ├── enrich.js       # AI label & severity extraction
│   ├── github.js       # Octokit integration (Post-back & Webhooks)
│   ├── dashboard.js    # WebSocket server for live feed
│   ├── cache.js        # node-cache for deduplication
│   ├── db.js           # SQLite setup (Issues & Licenses)
│   └── middleware/
│       ├── licenseGate.js  # License validation logic
│       └── verifyGhSig.js  # GitHub HMAC verification
├── dashboard/
│   └── index.html      # Real-time dashboard frontend
├── keys/               # RS256 Keypair for offline licensing
└── .env.example        # Environment template

🚀 Quick Start (Production)

If you are deploying to a server (e.g., Railway, Heroku, AWS):

# 1. Install & Initialize
npx contribbridge init  # Prompts for API Keys & sets up .env

# 2. Connect your Repository
npx contribbridge connect --repo your-org/your-repo

# 3. Start Watching
npx contribbridge watch  # Starts the translation server + dashboard

🚀 Local Development & Testing

ContribBridge is designed to be "catered" for local use. No need to install third-party tunnel tools manually.

1. Prerequisites

  • Lingo.dev API Key: Get one at lingo.dev/dashboard.
  • GitHub PAT (Fine-grained): Create one with Issues (R/W), Webhooks (W), and Metadata (R).
  • Node.js: v20 or higher.

2. The "Catered" Setup

Initialize the environment and connect your repository in one flow:

# 1. Start the wizard
npx contribbridge init
# ➜ Select "y" when asked about Smee.io to automate tunneling!

# 2. Connect a test repository
npx contribbridge connect --repo your-username/test-repo

# 3. Start the Engine
npx contribbridge watch
# ➜ This automatically starts both the Express server AND the Smee tunnel.
  • Dashboard: Open http://localhost:4000/dashboard in your browser.
  • Webhook: Automatically active via your unique Smee URL!

3. Run a Test

Go to your GitHub test repository and create a New Issue in a non-English language:

  • Title: ¡Hola! El sistema no funciona
  • Body: He intentado registrarme pero el botón de envío no responde en dispositivos móviles.

The Magic: Within seconds, you'll see the translated issue appear on your dashboard, and a translated comment will be posted back to GitHub with suggested labels!


✨ Features

  • 87 Languages Supported: Powered by the high-fidelity Lingo.dev SDK.
  • Zero Config: Automagically detects language and translates to English (or your target locale).
  • Bidirectional: Maintainers reply in English; ContribBridge translates it back for the contributor.
  • Code Preservation: Intelligent markdown and code block preservation during translation.
  • Live Dashboard: Watch translations happen in real-time via a clean WebSocket-powered feed.
  • Universal Support: Built to work with any repository setup.

🛠️ Tech Stack

| Layer | Technology | | --- | --- | | Translation | Lingo.dev SDK (detectLocale, localizeText, localizeHtml, localizeChat) | | Runtime | Node.js 20 LTS (ESM) | | Framework | Express.js 4.18 | | GitHub API | @octokit/rest (Octokit) | | Real-time | WebSocket (ws v8) | | Database | SQLite via better-sqlite3 | | Authentication | RS256 JWT (License Verification) |


📄 License

License: Apache 2.0


Built with ❤️ for the Lingo.dev Hackathon.