Skip to content

Thoughtline - LinkedIn Writing Assistant

extensionLast commit

User-controlled Chrome side-panel extension for drafting replies from pasted or selected LinkedIn posts, refining writing, and keeping every publish action manual.

Role
Product design and browser-extension engineering
Scope
Browser integration, provider workflows, and privacy
Status
GitHub release available
Thoughtline - LinkedIn Writing Assistant interface preview

Problem

Writing a useful LinkedIn reply or post requires understanding the visible conversation while preserving the author's own voice, intent, and control.

Constraints

  1. C1

    LinkedIn page content is untrusted and must be bounded before entering prompts.

  2. C2

    OpenRouter, Gemini, and Groq keys are all required so the fixed free-only route can fall back without asking during a writing task.

  3. C3

    Extension permissions, encrypted local storage, and retention/export behavior must remain understandable to the user.

Architecture

LinkedIn content scripts plus manual pasted-post input; React side-panel workflows; typed drafting/source-research ports with free OpenRouter-first routing and Gemini/Groq fallback; encrypted browser storage, migrations, backup/export, and Manifest V3 permissions.

01

Page integration

LinkedIn content scripts/extraction plus bounded manual pasted-post input.

02

Extension interface

React side-panel workflows.

03

Provider boundary

Typed drafting/source-research ports with curated free OpenRouter models, bounded provider timeouts, and Gemini/Groq fallback.

04

Storage and delivery

Encrypted browser storage, migrations, backup/export, and Manifest V3 permissions.

Decisions

D1

Depend on typed provider ports

Depend on typed provider ports instead of provider response shapes, making fallback replaceable at adapter boundaries.

D2

Use a bounded validated untrusted-content envelope

Use a bounded, validated untrusted-content envelope to reduce prompt-injection/data-sprawl risk.

D3

Ask for permissions when a capability needs them

Ask for permissions when a capability needs them rather than upfront, trading workflow branching for user control.

Contribution

  • Implemented reply, idea, refine, history, settings, and onboarding journeys.
  • Built content extraction and validated prompt envelopes.
  • Added manual four-direction replies, model provenance, and visible provider recovery states.
  • Added encrypted credential storage, migrations/recovery/retention, configuration backup, and data archives.
  • Established static, unit, packed-extension, Axe, responsive, and visual-regression gates.

Outcomes

  • Users can paste a post or select a visible conversation and draft four reply directions.
  • Generate/refine post ideas in configured voice.
  • Use a fixed free-only OpenRouter, Gemini, and Groq route under defined fallback rules.
  • Export and restore validated configurations and history.

Product screenshot

Thoughtline - LinkedIn Writing Assistant interface preview
Thoughtline - LinkedIn Writing Assistant presents user-controlled Chrome side-panel extension for understanding LinkedIn conversations and shaping replies and posts in your own voice.

Verified stack

  • WXT
  • React 19
  • TypeScript
  • Chrome Manifest V3
  • Chrome Extensions API
  • Tailwind CSS
  • Hugeicons
  • OpenRouter API
  • Gemini API
  • Groq API
  • Zod
  • Vitest
  • Playwright
  • React Testing Library
  • TanStack Start
  • GitHub Actions
  • CI/CD
  • Git
  • System Design

Working through something similar?

Share your challenge, scope, and timeline to start a focused conversation.