{"slug": "building-an-ai-translator-that-lives-everywhere-on-macos-ios-and-chrome", "title": "Building an AI translator that lives everywhere on macOS, iOS and Chrome", "summary": "Developer built Linguin, an AI translator with native macOS, iOS, and Chrome extension apps, designed to let users translate selected text without leaving their current app. The product uses a shared service contract for translation logic while each client maintains a platform-specific UX, and leverages LLMs for context-aware translations in 100+ languages.", "body_md": "Most translation tools make you leave what you're doing: copy text, switch to a tab or app, paste, read, copy back. I wanted translation to sit *inside* whatever I was already using. That turned into [Linguin](https://linguin.app), an AI translator with a native Mac app, an iPhone app, and a Chrome extension. Here's how I think about building the \"same\" product across three very different surfaces.\n\nThe product promise is identical everywhere: select text, get a fast, context-aware translation in 100+ languages. But the *interaction* has to be native to each platform, or it feels wrong:\n\nSame core, three genuinely different UX shells.\n\nThe translation logic - language detection, prompt construction, tone handling, caching - is the part you never want to fork. If Mac and iOS drift, you get subtly different translations for the same input, which erodes trust fast.\n\nSo the model-facing logic lives behind one small service contract, and each client is a thin shell that owns only its platform UX. A translation request looks the same whether it comes from the menu bar, the share sheet, or a browser selection.\n\nClassic MT is great at literal accuracy but blind to context. \"Book\" in a travel app and \"book\" in a library app should not translate the same way. Passing the surrounding context and a tone hint (formal, casual, technical) to an LLM produces translations that read like a human wrote them, not a dictionary.\n\nThe tradeoffs I had to design around:\n\nIf you want to try it, the Mac app, iOS app and Chrome extension are all at [https://linguin.app](https://linguin.app)\n\nCurious how others structure a shared core across native + web clients - do you go with a shared service, a shared package, or just accept some duplication?", "url": "https://wpnews.pro/news/building-an-ai-translator-that-lives-everywhere-on-macos-ios-and-chrome", "canonical_source": "https://dev.to/supafast-tech/building-an-ai-translator-that-lives-everywhere-on-macos-ios-and-chrome-36jf", "published_at": "2026-08-10 15:43:24+00:00", "updated_at": "2026-08-10 15:49:24.118986+00:00", "lang": "en", "topics": ["artificial-intelligence", "large-language-models", "ai-products", "developer-tools"], "entities": ["Linguin"], "alternates": {"html": "https://wpnews.pro/news/building-an-ai-translator-that-lives-everywhere-on-macos-ios-and-chrome", "markdown": "https://wpnews.pro/news/building-an-ai-translator-that-lives-everywhere-on-macos-ios-and-chrome.md", "text": "https://wpnews.pro/news/building-an-ai-translator-that-lives-everywhere-on-macos-ios-and-chrome.txt", "jsonld": "https://wpnews.pro/news/building-an-ai-translator-that-lives-everywhere-on-macos-ios-and-chrome.jsonld"}}