toolsDetail.backToAllTools
toolsDetail.projectRecordtoolsDetail.categories.gbptoolsDetail.statuses.openSourcetoolsDetail.updatedOn

Multi-lingual Description Writer

Draft and localize Google Business Profile descriptions in English and Thai, optimized for local SEO keywords.

Multi-lingual Description Writer researches a Thai business by name, lets you verify the facts and target district, then generates three editable Google Business Profile description options pairing polite Central Thai with English.

toolsDetail.overview

A Google Business Profile description has to describe the business clearly, read naturally in the customer's language, and stay within Google's 750-character limit. Producing useful Thai and English copy for every listing an owner or agency manages can quickly become repetitive, especially when the location and service details still need to be checked first.

The first step uses Gemini with Google Search grounding to suggest the business name, district, core category keyword, and three to five service or feature notes. Those fields stay editable, so the user can correct or replace the researched details before generation. The app then drafts three bilingual variations using the confirmed keyword, district, and business notes.

The result workspace separates and counts the Thai and English sections, shows the combined character total against the 750-character limit, and lets the user edit each variation. It warns when copy is over the limit rather than silently truncating it; finished text can be copied or exported as a formatted PDF for review and handoff.

The project is open source and free to self-host: a small full-stack app (React frontend, Node/Express backend) that anyone with a Gemini API key can run, deploy, or fork.

toolsDetail.keyFeatures

Live Google Search grounding

Type in a business name and the app looks up real, current business category, district, and service details from Google before drafting anything — no need to manually re-enter facts that are already public.

Bilingual EN/TH generation

Generates three professional description variations per business, each pairing polite Central Thai copy optimized for local SEO with a polished English translation.

District and amphoe targeting

Lets you select or specify a precise area modifier — like Thonglor, Bangkok or Nimman, Chiang Mai — so each draft clearly states the location the business serves.

Character-limit aware editing

Tracks Thai, English, and combined length against Google's 750-character profile-description limit as you edit, with an explicit over-limit warning before copy or export.

Copy or export as PDF

Finished descriptions can be copied to the clipboard instantly or exported as a formatted PDF, generated client-side, for handing off to a client or team.

Rate-limited, self-hostable server

Keeps the Gemini API key on the Express server, caps JSON request bodies, validates input types and lengths, applies separate per-IP limits to search and generation, and enables Helmet headers compatible with its iframe deployment.

toolsDetail.architecture

FrontendReact 19 with TypeScript, built on Vite and styled with Tailwind CSS v4; PDF and image export handled client-side with html2canvas and jsPDF.
BackendNode.js and Express API server. A search-grounding endpoint retrieves business facts from Google, and a generation endpoint drafts the bilingual descriptions and enforces layout rules (keyword placement, polite Central Thai register, dual line breaks).
AI engineGoogle Gen AI SDK (@google/genai) calling Gemini with Google Search grounding enabled, plus a self-healing JSON parsing step that corrects malformed model output before it reaches the client.
HostingThe public demo runs on Google Cloud Run; the app is designed to deploy to any Node-compatible host.
SecurityGemini API key is loaded server-side only. Search and generation have separate per-IP rate limits, request bodies are capped at 15 KB, and Helmet is enabled; CSP and frameguard are intentionally disabled so the app can run inside the AI Studio sandbox iframe.
ReactTypeScriptViteTailwind CSSNode.jsExpressGemini APIGoogle Cloud Run

toolsDetail.bottomCtaQuestion

toolsDetail.browseAllTools