Skip to content

Web UI

Lingo's web interface is a React single-page application served at http://localhost:8000. It provides search, filtering, voting, and term management without leaving your browser.


The search bar at the top of the page filters terms as you type. It matches against the term name, definition, full name, and category.

Keyboard shortcut: Press / or Cmd+K (Mac) / Ctrl+K (Linux/Windows) to focus the search bar from anywhere on the page.


Status filters

Below the search bar, filter pills let you narrow terms by status:

Status Description
All Show every term
Suggested Discovered by the auto-scan job; must be promoted before voting applies
Pending At least one community vote
Community Reached the community vote threshold
Official Editor-approved at the official vote threshold

Each pill shows a live count of terms in that status.


Term list

The main table shows terms matching your search and filter. Each row displays:

  • Name — the term or acronym
  • Definition — short description
  • Status — color-coded badge
  • Category — optional grouping label
  • Vote count

Click any row to open the detail panel.


Term detail panel

Clicking a term slides open a panel on the right with:

  • Full definition and full name
  • Category and status badge
  • Vote count and your vote status
  • Linked related terms (synonyms, antonyms, related)
  • Edit history (who changed what and when)

Voting

Click Vote to upvote a term. The vote count updates immediately. When enough votes accumulate, the term status advances automatically:

pending   → community  (community_threshold votes, default: 3)
community → official   (editor action + official_threshold votes, default: 10)

User-added terms start at pending. Auto-discovered (suggested) terms must be promoted to pending via the promote action before voting applies.

Disputing

Click Dispute to flag a term for review. This notifies the term owner and resets the vote tally.


Adding a term

Click Add term (top-right) to open the form:

Field Required Notes
Name Yes The acronym or term (e.g. API)
Definition Yes Clear, concise description
Full name No Expanded form (e.g. Application Programming Interface)
Category No Grouping label (e.g. tech, ops, product)

New terms start as pending. Submit the form and the term appears in the list immediately.


Signing in

The web UI requires a Slack account. Click the Sign in with Slack button on the login page to authenticate:

  1. You are redirected to Slack's OAuth consent screen
  2. Slack redirects back to /auth/slack/callback after you approve
  3. You are logged in and returned to the term browser

No Slack? Use the API instead

Users without Slack can still access Lingo via the CLI or MCP endpoint using API tokens. Only the web UI requires Slack.


Dev mode banner

When LINGO_DEV_MODE=true, a yellow banner appears at the top of the page as a reminder that Slack authentication is disabled. Use http://localhost:8000/auth/dev/login?email=you@example.com to log in without Slack in this mode. This is read from a meta tag injected by the server — no extra API call required.

Warning

If you see the dev mode banner in a non-development environment, set LINGO_DEV_MODE=false immediately.