Completed

Chrome Extension Developer (Plasmo & Supabase)

Published on the August 20, 2025 in IT & Programming

About this project

Open

We’re looking for an experienced developer to build a Chrome extension (preferably using Plasmo) that provides authenticated users a “Conference” workflow: when activated on specific target URLs the extension injects checkboxes next to predefined inputs and a progress bar. Each check/uncheck is saved to the backend immediately (with debounce/flush). The extension must also intercept two specific API requests and replicate/send those payloads to our backend. Clean project structure, good docs, and adherence to Plasmo/Chrome MV3 best practices are required.

Scope & key features
Authentication
Email/password login via Supabase (use Plasmo example as reference).
Persist session (JWT) securely (e.g. Chrome.storage.local) and send jwt on api calls.
Popup UI
After login, popup shows a menu that includes “Conference” toggle/entry.
Activating Conference acts only on the current tab (does not run automatically on new tabs).
Checkbox injection & Progress Bar
For two pre-defined URLs, inject a set of checkboxes next to predetermined inputs (selectors will be provided).

Inject a progress bar element in the page (e.g. Bottom-right). The progress bar is divided by the number of configured inputs and updates to 100% as checkboxes are checked.

Before injection, call the backend with JWT to retrieve saved states and pre-check boxes accordingly.

Saving behavior

Each check/uncheck must be sent to backend immediately (or with a short debounce but flushed on click). Use optimistic UI; handle failure gracefully.

Backend endpoints accept JWT for authentication.

Request interception

Intercept requests on two specific API URLs and replicate/forward the request payloads to a backend endpoint (strategy can be webRequest/declarativeNetRequest or an injected fetch/XHR wrapper — candidate should justify choice).

Architecture & best practices

Proper separation: popup (React), content scripts (injection), background/service worker, optional sandbox pages.

Use chrome.scripting.executeScript as needed to avoid “Receiving end does not exist” errors.

Follow Plasmo docs and Manifest V3 requirements.

Technical requirements

Strong experience with Plasmo (or Chrome extensions + React/TypeScript).

Supabase experience (auth flows and tokens).

Chrome Extension MV3 APIs: scripting, tabs, storage, webRequest / declarativeNetRequest knowledge, and host_permissions.

Jwt-based backend communication.

dom injection (safe, non-destructive), debounced network calls with flush, optimistic ui handling.

Write clean, modular TypeScript; provide README and setup instructions.

Deliverables

Git repository with source code (organized, modular).

README with setup (including env variables like SUPABASE_URL, SUPABASE_ANON_KEY, BACKEND_BASE), dev instructions and build steps.

Popup with Supabase login and menu.

Content scripts that inject checkboxes + progress bar on the two target URLs and save state on each click.

Implemented request-interception for the two API URLs (and backend replication).

Build artifacts ready to load into Chrome (MV3).

QA checklist and short manual test cases.

Category IT & Programming
Subcategory Web development
What is the scope of the project? Create a new custom site

Delivery term: Not specified

Skills needed

Other projects posted by F. V.