Inspiration

Cross-cultural communication often fails in subtle ways: the same sentence can read as respectful in one culture but overly blunt, vague, or emotionally “off” in another. We built PrismText to help people preserve intent while adapting tone, hierarchy, urgency, and directness to the recipient’s cultural expectations.

What it does

PrismText is a Chrome extension that calibrates your message for a selected recipient profile (country) using a mix of on-device analysis and Gemini-powered generation.

  • Paste your message, pick a recipient country, and tune 4 controls: Hierarchy, Emotional warmth, Urgency, Directness
  • Get a calibrated rewrite you can copy immediately
  • See a Cultural Reception Radar visualization of your current control settings
  • In PrismText Pro, you also get:
    • Intent & Rationale: explanation of changes and cultural considerations
    • Audience Inner Monologue: a simulated “how it might land” reaction

How we built it

  • Chrome Extension (Manifest V3) with:
    • Popup UI for PrismText (src/popup/popup.html, popup.css, popup.js)
    • A separate Pro interface (src/popup/prismtext-pro.html)
    • Options page for API key/settings (src/popup/options.html)
    • Background service worker + context menu wiring (src/background/background.js)
    • Content script hook for selected text flows (src/content/content.js)
  • Gemini integration via a CSP-friendly REST client using fetch() (src/lib/gemini-client.js)
  • Local analysis modules (intent detection, language detection, sentiment, entities, semantic analysis) loaded from src/lib/ to provide fast signals and fallback behavior

We treat the user controls as a parameter vector: [ \mathbf{p} = [h,e,u,d],\quad \mathbf{p}\in[0,100]^4 ] where (h)=Hierarchy, (e)=Emotional warmth, (u)=Urgency, (d)=Directness.

Challenges we ran into

  • Extension constraints (MV3 + CSP): structuring scripts and API calls to stay compliant
  • Latency + cost control: debouncing slider-driven updates and keeping feedback responsive
  • Reliable outputs: prompting and formatting so AI responses remain usable and consistent
  • UX clarity: making “why this rewrite is better for that audience” understandable without overwhelming users
  • Two-interface architecture: keeping PrismText and PrismText Pro consistent while separating features cleanly

Accomplishments that we're proud of

  • A working end-to-end extension that’s easy to load and try
  • A clean separation between PrismText (core calibration) and PrismText Pro (deeper explanation + reaction)
  • Real-time, user-controllable calibration with an immediate “copy-ready” result
  • A modular analysis pipeline that can evolve without rewriting the UI

What we learned

  • How to build and ship a Manifest V3 extension with popup/options/background/content flows
  • How to design prompts for structured, predictable AI responses
  • How to combine lightweight local heuristics with LLM generation for better reliability
  • How important control + transparency is when users are editing tone-sensitive text

What's next for PrismText

  • More recipient profiles beyond country (role/seniority/industry)
  • Better context support (threads, prior messages) and smarter contextual recommendations
  • Faster Pro analysis (streaming/partial updates, caching, improved UX)
  • More languages and stronger safety/compliance guardrails
  • Export/share history and before/after comparison views

Built With

  • canvas
  • chrome
  • chrome-context-menus-api
  • chrome-extensions-(manifest-v3)
  • chrome-storage-api
  • css3
  • google-gemini-3-api
  • google-gemini-api-(generative-language-rest-api-via-fetch)
  • html5
  • javascript
Share this project:

Updates

Submission history