[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-post-en-/intermind-v1-2-release":3},{"page":4,"surround":764},{"id":5,"title":6,"authors":7,"badge":10,"body":11,"date":754,"description":755,"extension":756,"image":757,"meta":758,"navigation":759,"path":760,"seo":761,"stem":762,"__hash__":763},"blog/blog/intermind-v1-2-release.md","The Meeting Room That Doesn't Switch to English",[8],{"name":9},"The Mind.com Team","Release",{"type":12,"value":13,"toc":735},"minimark",[14,18,27,30,37,40,43,48,61,66,73,81,84,88,91,103,107,110,148,152,155,158,162,165,167,171,174,210,221,224,226,230,233,380,383,385,389,396,450,453,460,463,470,472,476,479,489,506,512,518,524,534,545,547,551,554,605,616,618,622,625,696,698,702,705,708,711,727,730],[15,16,6],"h1",{"id":17},"the-meeting-room-that-doesnt-switch-to-english",[19,20,21,22,26],"p",{},"You schedule a cross-border meeting. People join from three time zones. Within ninety seconds someone says ",[23,24,25],"strong",{},"\"let's keep this in English so we're all on the same page\""," — and you watch the most senior people in the room go quiet.",[19,28,29],{},"That switch is a tax. On time, on confidence, on what actually gets decided.",[19,31,32,33,36],{},"We've spent the last six weeks rebuilding InterMIND around the principle that ",[23,34,35],{},"no one in the room should have to switch."," Not for the conversation. Not for the chat. Not for the notes you're typing live. Not for the edit history you'll review tomorrow.",[19,38,39],{},"Here's what shifted.",[41,42],"hr",{},[44,45,47],"h2",{"id":46},"_1-per-viewer-everything-not-just-voice","1. Per-Viewer Everything, Not Just Voice",[19,49,50,51,54,55,60],{},"Live voice translation has always been the headline — 21 languages, sub-second latency, every participant picks their own language at the start of the call. v1.2 makes everything ",[23,52,53],{},"around"," the voice multilingual too, and keeps it in sync, per viewer, in real time. (For why \"21\" and not the bigger numbers other surfaces show, see ",[56,57,59],"a",{"href":58},"/blog/how-many-languages-do-you-support","the breakdown",".)",[62,63,65],"h3",{"id":64},"chat-every-edit-shows-you-what-changed-in-your-language","Chat: every edit shows you what changed, in your language",[19,67,68,69,72],{},"Every message in chat is translated as it's typed. The change in v1.2: when someone edits a message, we don't throw out their previous translation and serve you a fresh one. We compute the diff ",[23,70,71],{},"between the previous translated text and the new translated text",", in your language — and show it inline.",[19,74,75,76,80],{},"So when your colleague edits \"we should review by Tuesday\" to \"we should review by Thursday,\" your Spanish reviewer doesn't see a re-translated paragraph and guess what moved. They see ",[77,78,79],"em",{},"martes → jueves",", highlighted. Same precision as a Git diff, but rendered in whichever of the 21 languages they read.",[19,82,83],{},"If the edit changes only formatting — bold, italic, list markers — we re-translate anyway, because format-only edits are often where meaning shifts (a comma becomes a clause break). And the previous translation stays on screen while the new one streams in, so you never look at blank space waiting for the API to come back.",[62,85,87],{"id":86},"notes-live-character-by-character-per-language","Notes: live, character-by-character, per language",[19,89,90],{},"The host opens the shared-note pane during the meeting and starts typing. Every participant sees the note in their language, character-by-character, with sub-second propagation. Edit a line and viewers get a per-language diff — same model as chat edits.",[19,92,93,94,97,98,102],{},"We also rewrote note translation to ",[23,95,96],{},"translate list items individually instead of the whole document",". A nested checklist in English doesn't preserve its structure if you translate the markdown blob — the model flattens the hierarchy. Translating each ",[99,100,101],"code",{},"\u003Cli>"," independently keeps the indentation, the numbering, and the inline formatting intact in every language.",[62,104,106],{"id":105},"attachments-documents-inside-chat-speak-the-room","Attachments: documents inside chat speak the room",[19,108,109],{},"Drop a Google Doc, OneDrive link, or PDF into chat. v1.2 renders them inline:",[111,112,113,124,130],"ul",{},[114,115,116,119,120,123],"li",{},[23,117,118],{},"Linked docs"," — title, preview, domain badge, no raw URL bleeding through. Editable docs open in a new tab with the right locale hint (",[99,121,122],{},"hl=","), so a Brazilian Portuguese reader doesn't land in an English Docs UI.",[114,125,126,129],{},[23,127,128],{},"Image uploads"," — thumbnail on upload, intrinsic-grid responsive layout in the message bubble so images don't blow out at narrow widths.",[114,131,132,135,136,139,140,143,144,147],{},[23,133,134],{},"Three-tier document access"," — ",[77,137,138],{},"edit",", ",[77,141,142],{},"view",", or ",[77,145,146],{},"no-access"," — with auto-share when permissions allow. Participants without Drive access still see a clean read-only preview, not a \"permission denied\" page.",[62,149,151],{"id":150},"lazy-translation-faster-cheaper-less-noisy","Lazy translation: faster, cheaper, less noisy",[19,153,154],{},"We used to translate every message in your history when you switched languages. For long-running team channels that meant replaying hours of API calls for messages you'd never scroll back to.",[19,156,157],{},"v1.2 uses an IntersectionObserver: translations happen on demand, when a message enters the viewport. Switching languages mid-meeting is now instant. We also stop chat-list polling immediately on 401, which silenced a runaway error stream you would never have noticed but we did.",[62,159,161],{"id":160},"voice-transcription-sanitized-before-render","Voice transcription: sanitized before render",[19,163,164],{},"Transcription text is sanitized before rendering — no HTML injection through a creative pronunciation. It sounds obvious. It also wasn't true two months ago.",[41,166],{},[44,168,170],{"id":169},"_2-the-note-editor-caught-up-with-the-conversation","2. The Note Editor Caught Up With the Conversation",[19,172,173],{},"Notes and chat messages share a rich editor with:",[111,175,176,182,188,198,204],{},[114,177,178,181],{},[23,179,180],{},"Slash menu"," for headings, lists, code blocks",[114,183,184,187],{},[23,185,186],{},"AI Improve"," transforms — pick a paragraph, rewrite for tone, expand, summarize, fix grammar — directly in the editor, no copy-paste round trip",[114,189,190,193,194,197],{},[23,191,192],{},"@-mentions"," wired into participant data: type ",[99,195,196],{},"@"," and you see the live participant list",[114,199,200,203],{},[23,201,202],{},"Emoji picker"," that doesn't drop out of position on narrow widths",[114,205,206,209],{},[23,207,208],{},"Image upload"," straight into the message body",[19,211,212,213,216,217,220],{},"AI Improve transforms run as single-chain inserts with no output-token cap (we hit that ceiling more than once during testing). Output is converted from markdown to HTML via ",[99,214,215],{},"marked",", so the editor never shows you a raw ",[99,218,219],{},"### Heading"," artifact.",[19,222,223],{},"A shared note can be opened in a new tab — useful when the meeting is on one monitor and the document needs a full second screen. Sidebar resize no longer gets stuck behind the iframe.",[41,225],{},[44,227,229],{"id":228},"_3-the-meeting-room-finally-has-the-boring-parts-right","3. The Meeting Room Finally Has the Boring Parts Right",[19,231,232],{},"A translation feature is meaningless if the meeting room around it doesn't hold up. v1.2 closes a long list of gaps you only notice when they fail.",[234,235,236,252],"table",{},[237,238,239],"thead",{},[240,241,242,246,249],"tr",{},[243,244,245],"th",{},"Capability",[243,247,248],{},"What it does",[243,250,251],{},"Why it matters",[253,254,255,269,282,295,315,328,341,354,367],"tbody",{},[240,256,257,263,266],{},[258,259,260],"td",{},[23,261,262],{},"Host-only permissions",[258,264,265],{},"Mic, camera, screenshare, chat — gated per participant from More → Settings",[258,267,268],{},"Moderation surface stops being a free-for-all",[240,270,271,276,279],{},[258,272,273],{},[23,274,275],{},"Conference guide modal",[258,277,278],{},"Keyboard shortcuts and button explanations in one panel",[258,280,281],{},"New users find features without a tour",[240,283,284,289,292],{},[258,285,286],{},[23,287,288],{},"Note sharing on stage",[258,290,291],{},"Pin a note next to your camera overlay; camera stays visible",[258,293,294],{},"Walk through a doc without losing the room",[240,296,297,302,312],{},[258,298,299],{},[23,300,301],{},"Two-mode read receipts",[258,303,304,307,308,311],{},[77,305,306],{},"Present"," (currently watching) vs ",[77,309,310],{},"returned"," (saw it later)",[258,313,314],{},"Beats the binary \"delivered\" lie",[240,316,317,322,325],{},[258,318,319],{},[23,320,321],{},"Pre-join deferred approval",[258,323,324],{},"Guests see an approval-pending screen before they appear",[258,326,327],{},"No surprise joins, no awkward expulsions",[240,329,330,335,338],{},[258,331,332],{},[23,333,334],{},"Ad-hoc copy-link nudge",[258,336,337],{},"Host joins alone? Toast asks if they want to copy the link",[258,339,340],{},"Closes the \"am I the only one here, was the link sent?\" loop",[240,342,343,348,351],{},[258,344,345],{},[23,346,347],{},"Raise-hand fix",[258,349,350],{},"The button works again",[258,352,353],{},"It was broken; now it isn't",[240,355,356,361,364],{},[258,357,358],{},[23,359,360],{},"Forced dark theme in meeting",[258,362,363],{},"Dark only while the meeting room is mounted",[258,365,366],{},"Less brightness whiplash mid-call",[240,368,369,374,377],{},[258,370,371],{},[23,372,373],{},"40-minute Basic cap",[258,375,376],{},"Free meetings end at 40 min, same headline cap as Zoom Free",[258,378,379],{},"Honest pricing surface",[19,381,382],{},"Translation runs full quality on every plan, including Free.",[41,384],{},[44,386,388],{"id":387},"_4-teams-that-dont-fight-the-tool","4. Teams That Don't Fight the Tool",[19,390,391,392,395],{},"We rewrote the role and seat model from scratch on a strict ",[23,393,394],{},"1-user-1-org"," invariant. No lazy team creation. No ghost orgs. Owners cancel subscriptions; they don't get asked to transfer to nowhere.",[234,397,398,408],{},[237,399,400],{},[240,401,402,405],{},[243,403,404],{},"Role",[243,406,407],{},"Scope",[253,409,410,420,430,440],{},[240,411,412,417],{},[258,413,414],{},[23,415,416],{},"Owner",[258,418,419],{},"Billing, domain management, every action below",[240,421,422,427],{},[258,423,424],{},[23,425,426],{},"Admin",[258,428,429],{},"Invite, role changes, license grants — no billing",[240,431,432,437],{},[258,433,434],{},[23,435,436],{},"Member",[258,438,439],{},"Meetings, chat, their own profile",[240,441,442,447],{},[258,443,444],{},[23,445,446],{},"Solo",[258,448,449],{},"Personal contacts, personal meetings — no team scope",[19,451,452],{},"Licenses are assignable per seat, Zoom-style. Bulk operations from the Users table — make admin, make member, grant license, revoke license — apply across selection with a clear warning when only part of the bulk action will fit available seats.",[19,454,455,456,459],{},"License switching is optimistic, no spinner waiting for the server. If you grant a seat and the next click would exceed the plan, a contextual ",[23,457,458],{},"Buy more licenses"," CTA appears exactly where you'd next try to grant one. Domain Management is gated to Business+ and clearly labeled, not silently hidden.",[19,461,462],{},"Pending invitations clean themselves up. Self-service is real: members can't accidentally delete themselves, can't grant themselves admin, can't bulk-action their own row. Owners see Owner-only UI; members don't see it at all.",[19,464,465,466,469],{},"The guest-access flow now lives outside the team boundary entirely. Hosts can approve a guest into the meeting without adding them to the team; the host's personal contacts get a separate ",[77,467,468],{},"Add to contacts"," option from the participants sidebar.",[41,471],{},[44,473,475],{"id":474},"_5-honest-cuts-honest-numbers","5. Honest Cuts, Honest Numbers",[19,477,478],{},"A release post is also a chance to be straight about what didn't make it.",[19,480,481,484,485,488],{},[23,482,483],{},"We disabled Arabic, Turkish, and Hindi for live voice/chat/notes."," Translation quality for those three didn't meet our bar during the alpha cycle. We'd rather ship 21 languages that work than 24 with footnotes. (Arabic and Turkish remain available in the file-translation pipeline through DeepL — see ",[56,486,487],{"href":58},"the full per-surface breakdown",".) The picker names for Spanish, Portuguese, and Chinese now disambiguate region and script, because nobody should have to guess whether \"Chinese\" means simplified or traditional.",[19,490,491,498,499,502,503,505],{},[23,492,493,494,497],{},"We retired ",[99,495,496],{},"staging.intermind.com","."," ",[99,500,501],{},"main"," is the only long-lived branch. Production deploys are manual. CI on push to ",[99,504,501],{}," runs lint + unit + integration on a Vercel preview and stops there — we don't auto-promote, which means we don't ship to prod by accident either.",[19,507,508,511],{},[23,509,510],{},"We migrated the translation server from Amsterdam to Paris."," Measurable latency improvement for European users, with retry logic added in the same pass to absorb upstream provider blips.",[19,513,514,517],{},[23,515,516],{},"We collapsed two Sentry projects into one"," and split by environment tag. Two projects sounded organized; in practice it doubled the dashboards we had to check before believing anything.",[19,519,520,523],{},[23,521,522],{},"Replay session sampling went down"," because the previous rate was burning the entire org quota. The 4xx HTTP errors fall out of capture for the same reason — most were not actionable.",[19,525,526,527,533],{},"We publish a ",[23,528,529],{},[56,530,532],{"href":531},"/benchmark","public benchmark"," with translation latency, quality scores, and the methodology. The methodology page includes a disclosure: before 2026-04-23, our chat harness was mis-counting some translation events, which inflated reported latency. We found it, fixed it, kept the bad numbers in the historical chart, and labeled them. That's the kind of disclosure that should be expected from anyone publishing a benchmark.",[19,535,536,537,540,541,544],{},"In production we run ",[23,538,539],{},"hourly synthetic E2E checks"," through Checkly — full chat round-trip and full voice round-trip, including an LLM-scored translation-quality assertion — plus ",[23,542,543],{},"Web Vitals monitoring"," via Sentry Metric Alerts on every public page. When something breaks, we know within minutes, not the next morning.",[41,546],{},[44,548,550],{"id":549},"_6-eight-use-cases-try-before-you-sign-up","6. Eight Use Cases — Try Before You Sign Up",[19,552,553],{},"Telling people \"we translate\" doesn't land. We built eight use-case pages with animated demos for the scenarios that actually drive cross-border meeting need:",[555,556,557,563,569,575,581,587,593,599],"ol",{},[114,558,559,562],{},[23,560,561],{},"Regulated multilingual meetings"," — CAPA reviews, inspection prep, multi-site quality calls. The audit trail is multilingual end-to-end.",[114,564,565,568],{},[23,566,567],{},"Cross-border sales calls"," — close in the buyer's language, keep your team's notes in yours.",[114,570,571,574],{},[23,572,573],{},"Multi-site engineering reviews"," — design walkthroughs across plants where the technical vocabulary is the hard part, not the small talk.",[114,576,577,580],{},[23,578,579],{},"Remote technical interviews"," — assess the engineer, not their English.",[114,582,583,586],{},[23,584,585],{},"Multilingual customer support"," — every ticket conversation, in every language, with one rep.",[114,588,589,592],{},[23,590,591],{},"Language tutoring"," — instructor speaks naturally; learner gets dual-language subtitles and chat.",[114,594,595,598],{},[23,596,597],{},"Online events and webinars"," — one host, many language tracks, no relay interpreters.",[114,600,601,604],{},[23,602,603],{},"Remote consulting"," — billable hours that don't get spent translating jargon.",[19,606,607,608,611,612,615],{},"The ",[56,609,610],{"href":610},"/use-case"," listing page has the full set with CSS-animated demos. The ",[56,613,614],{"href":614},"/demo"," route lets you experience translation against a scripted conversation — no account, no sign-up.",[41,617],{},[44,619,621],{"id":620},"what-else-shipped","What Else Shipped",[19,623,624],{},"Compact list, for completeness:",[111,626,627,637,647,653,659,669,675,681,690],{},[114,628,629,632,633,636],{},[23,630,631],{},"Site-wide localization"," for ES / PT / RU / ZH with locale-prefix routing and ",[99,634,635],{},"hreflang"," on every public route",[114,638,639,642,643,646],{},[23,640,641],{},"Auto-translate i18n on commit"," — we edit ",[99,644,645],{},"en.json",", the other four locales are translated and re-staged in the same pre-commit hook (Gemini Flash → Sonnet fallback)",[114,648,649,652],{},[23,650,651],{},"Single translation-language override"," — interface language and translation language used to be two settings that diverged; now they're one",[114,654,655,658],{},[23,656,657],{},"Bug reports with attachments"," — on-demand screenshot, conference-button context, email delivery with a Sentry thread ID",[114,660,661,664,665,668],{},[23,662,663],{},"In-app reply to bug reports"," — when we reply to your Sentry issue, the message lands back in your feed via an ",[99,666,667],{},"@reply"," convention",[114,670,671,674],{},[23,672,673],{},"G2 social proof carousel"," with curated reviews on the landing page",[114,676,677,680],{},[23,678,679],{},"Sitemap + robots.txt"," generation for SEO; redirected stray legacy URLs",[114,682,683,686,687],{},[23,684,685],{},"In-app docs with AI chat"," — full knowledge base injected, search, walkable from ",[56,688,689],{"href":689},"/docs",[114,691,692,695],{},[23,693,694],{},"Adaptive default page"," — sidebar reorders based on which area you actually use",[41,697],{},[44,699,701],{"id":700},"free-until-june-then-free-still-works","Free Until June. Then Free Still Works.",[19,703,704],{},"The full platform is free for everyone through June 2026 — every plan tier, every feature, no credit card.",[19,706,707],{},"After June, billing activates. The Free plan keeps live voice and chat translation with a 40-minute meeting cap. Paid plans lift the cap and add per-license seat assignment, domain management, and data export.",[19,709,710],{},"If you're going to test InterMIND for your team, do it during the trial window. You get the full Business experience without paying for it, and your feedback shapes what beta locks in.",[19,712,713,714,717,718,722,723,726],{},"→ ",[56,715,716],{"href":614},"Try the demo"," — no sign-up\n→ ",[56,719,721],{"href":720},"/login","Create a free account"," — 30 seconds\n→ ",[56,724,725],{"href":610},"See the use cases"," — find your scenario",[19,728,729],{},"— The Mind.com Team",[19,731,732],{},[23,733,734],{},"Your team doesn't switch to English in the hallway. The meeting shouldn't make them switch either.",{"title":736,"searchDepth":737,"depth":738,"links":739},"",2,3,[740,747,748,749,750,751,752,753],{"id":46,"depth":737,"text":47,"children":741},[742,743,744,745,746],{"id":64,"depth":738,"text":65},{"id":86,"depth":738,"text":87},{"id":105,"depth":738,"text":106},{"id":150,"depth":738,"text":151},{"id":160,"depth":738,"text":161},{"id":169,"depth":737,"text":170},{"id":228,"depth":737,"text":229},{"id":387,"depth":737,"text":388},{"id":474,"depth":737,"text":475},{"id":549,"depth":737,"text":550},{"id":620,"depth":737,"text":621},{"id":700,"depth":737,"text":701},"2026-05-12","Six weeks of shipping took InterMIND from a translation demo to a multilingual workspace. Per-viewer voice, chat, shared notes, and edit history — in 21 languages, with the audit trail to match. Free for everyone until June 2026.","md","/blog/intermind-v1-2-release.svg",{},true,"/blog/intermind-v1-2-release",{"title":6,"description":755},"blog/intermind-v1-2-release","UfhXLlpDAIda7W40CNotibkkn7iM0vbjtKNXXKdFHeM",[765,770],{"title":766,"path":767,"stem":768,"description":769,"children":-1},"Why translation-quality marketing is broken — and what we publish instead","/blog/why-translation-quality-marketing-is-broken","blog/why-translation-quality-marketing-is-broken","Every translation vendor publishes language counts. None publishes verifiable per-pair quality on real traffic. Why that gap matters in your next procurement evaluation — and what we publish instead.",{"title":771,"path":772,"stem":773,"description":774,"children":-1},"Your SOPs Are Translated. Your Meetings About Them Aren't.","/blog/multilingual-compliance-meetings","blog/multilingual-compliance-meetings","Regulated teams localize controlled documents but conduct cross-site audits, CAPA reviews, and inspections in broken English. The DMS solves the document layer. InterMIND solves the conversation layer."]