Browser extensions that put an AI assistant inside the user's existing workflow rather than asking them to context-switch to a separate tab. Sidebar UI injected via content scripts that opens beside whatever page the user is on, with the page content available as context to the model. Selection-based prompting where the user highlights text on any page and triggers a prompt from a keyboard shortcut or context menu. Output insertion back into the page via DOM manipulation, supporting editable surfaces like Gmail composers, Google Docs, Notion, Linear, and Salesforce text fields, each of which has its own quirks for programmatic text insertion.
LLM API calls routed through a backend service rather than direct from the extension, for three reasons: API keys never ship in the extension bundle (where they'd be trivially extractable), usage limits and cost controls live server-side, and the backend can cache prompts and responses to reduce both latency and cost. The backend exposes a thin auth-protected API to the extension and handles the actual model calls, prompt construction, and response streaming back to the extension via Server-Sent Events or WebSockets.
Productivity extensions follow the same architecture: tab management, snippet expansion, form auto-fill, screenshot annotation, link organisation. The shared pattern is a small, focused extension that does one thing well, lives in the toolbar or sidebar without getting in the way, and respects user data by storing as much as possible locally via chrome.storage rather than syncing to a server the user didn't ask for.