Work/KOTCHAKORN
Language-Learning AI

KOTCHAKORN

Neural Thai Language Learning Studio

AIで学ぶタイ語学習スタジオ

KOTCHAKORN screenshot 1KOTCHAKORN screenshot 2KOTCHAKORN screenshot 3

01 / 03
01

Overview

概要

Learning Thai is a beast. The tonal system alone has five distinct pitches that completely change meaning — the word 'mai' can mean new, burn, silk, wood, or be a question particle depending on tone. Most language apps reduce this complexity to gamified flashcards. I wanted something that felt like a pro-grade IDE for linguistics.

タイ語の習得は手ごわいものです。声調だけでも5種類あり、声調が変われば意味がまったく変わります。「mai」という一語は、声調次第で「新しい」「燃える」「絹」「木」、あるいは疑問を表す語にもなります。多くの語学アプリは、この複雑さをゲーム化された単語カードに単純化してしまいます。私が求めていたのは、言語学のためのプロ仕様の開発環境のようなものでした。

Kotchakorn started as a messy folder of Thai language notes I kept during sessions with my teacher in Bangkok. Scribbles in notebooks, voice memos, iPhone screenshots of restaurant menus. The data was there but completely unstructured. I realized I was building a personal linguistic corpus — and that corpus deserved an engine.

Kotchakornの始まりは、バンコクで先生とのレッスン中に書きためた、散らかったタイ語のメモのフォルダでした。ノートの走り書き、ボイスメモ、レストランのメニューを撮ったiPhoneのスクリーンショット。データはあっても、まったく整理されていませんでした。そこで、自分が個人的な言語コーパスを作っていることに気づき、そのコーパスには処理するエンジンがふさわしいと考えました。

02

How it was built

開発

I developed this with active, iterative feedback from my Thai teacher to ensure the linguistic logic actually holds up. Every transliteration rule, every tone-mark mapping, every conversation scenario was validated against real-world Thai usage — not just textbook grammar. The app went through five major architecture rewrites before the current build.

言語的な仕組みが本当に正しく機能するよう、タイ語の先生から継続的にフィードバックをもらいながら開発しました。翻字のルール、声調記号の対応、会話の場面はすべて、教科書の文法だけでなく実際のタイ語の使われ方と照らし合わせて確認しています。現在の版に至るまでに、5回の大規模な設計の作り直しを経ています。

03

What it does

機能
01
Linguistic Studio
言語スタジオ

Generate deep-dive lessons on any niche topic — ordering street food in Ari, negotiating at Chatuchak market, reading temple signs in Chiang Mai. Each lesson comes with instant phonetic transliteration, IPA notation, Markdown-rendered explanations, and contextual usage notes. The generation engine synthesises cultural context alongside pure vocabulary.

アーリーでの屋台料理の注文、チャトゥチャック市場での値段交渉、チェンマイの寺院の案内板の読み方など、どんなに細かいテーマでも掘り下げたレッスンを生成します。各レッスンには、発音の翻字、IPA表記、Markdownで表示する解説、使い方の注意がすぐにつきます。生成エンジンは、語彙だけでなく文化的な背景もあわせて組み立てます。

02
The Simulator
シミュレーター

Real-time conversation practice with AI-powered personas. Choose from preset characters: Local Tour Guide who speaks slowly, Street Food Vendor with rapid-fire colloquial Thai, Strict Professor who corrects every tone error, or Bangkok Taxi Driver who uses heavy slang. You can also define entirely custom personas to simulate specific encounters you're preparing for — a job interview in Thai, ordering medication at a pharmacy, or explaining a visa issue at immigration.

AIが演じる人物と、リアルタイムで会話の練習ができます。ゆっくり話す地元のツアーガイド、早口のくだけたタイ語で話す屋台の店主、声調の間違いをすべて直す厳しい教授、俗語の多いバンコクのタクシー運転手といった人物から選べます。準備している特定の場面に合わせて、人物を自由に設定することもできます。タイ語での就職面接、薬局での薬の注文、入国管理局でのビザの説明などです。

03
Tone-Mark Integration
声調記号の入力

A dedicated diacritics picker built into every text input across the app. Handles Mid, High, Low, Falling, and Rising tones without fighting your keyboard layout. The picker is contextually aware — it suggests the most likely tone based on the consonant class and vowel length of what you're typing. This alone saves hours of frustration that other apps simply ignore.

アプリ内のすべての入力欄に、声調記号の専用ピッカーを組み込んでいます。キーボード配列と格闘することなく、平声、高声、低声、下降声、上昇声を入力できます。ピッカーは文脈を理解し、入力中の子音の種類と母音の長さから最も可能性の高い声調を提案します。これだけでも、他のアプリが見過ごしている何時間ものストレスがなくなります。

04
3D Semantic Deck
3Dの意味別カード

A stacked card system with physics-based interactions powered by Framer Motion. The AI extracts key vocabulary tokens directly from your generated lessons, groups them by semantic field, and presents them as interactive 3D cards you can flip, stack, and drill. Cards track your recall accuracy over time and surface weak spots automatically.

Framer Motionによる物理的な動きを備えた、重ねたカードの仕組みです。生成したレッスンからAIが重要な語彙を抜き出し、意味の分野ごとにまとめ、めくったり重ねたり練習したりできる3Dのカードとして表示します。カードは時間とともに正答率を記録し、苦手な部分を自動で浮かび上がらせます。

05
Advanced Lexicon
本格的な語彙集

A full-scale personal dictionary and note manager. Organize vocabulary into nested folders, add Markdown-formatted notes with example sentences, tag entries with tone class and consonant group, and bulk export your entire lexicon to .md files for local archiving or Anki import. The search is instant and supports Thai script, romanised, and phonetic queries.

本格的な個人辞書とメモの管理機能です。語彙を入れ子のフォルダで整理し、例文つきのメモをMarkdownで書き、声調の種類や子音のグループでタグをつけ、語彙集全体を.mdファイルとしてまとめて書き出して、手元での保存やAnkiへの取り込みに使えます。検索は即座に結果を返し、タイ文字、ローマ字、発音記号のいずれでも検索できます。

06
Dynamic Theming
テーマの切り替え

Six high-fidelity visual modes built on a custom glassmorphism CSS framework. Black Obsidian for late-night study, Cyber Magenta for focus sessions, Jade Temple for a calmer aesthetic. Each theme transforms every surface, shadow, and accent colour — not just a background swap. The glassmorphism system handles backdrop-filter layering across all modal and card components.

独自のグラスモーフィズムのCSSで作った、6つの精細な表示モードがあります。夜の学習には「Black Obsidian」、集中したいときは「Cyber Magenta」、落ち着いた雰囲気には「Jade Temple」。テーマは背景だけでなく、あらゆる面、影、アクセントカラーを変えます。グラスモーフィズムの仕組みが、すべてのモーダルとカードでbackdrop-filterの重なりを処理します。

04

Under the hood

技術の詳細

Getting the tones right声調を正しく扱う

Thai is tonal, and a wrong tone is a wrong word. Every transliteration rule and tone-mark mapping was validated with my teacher against real usage, not just textbook grammar — the diacritics picker even narrows suggestions by consonant class and vowel length, which is where most learners (and most apps) get it wrong.

タイ語は声調言語で、声調を間違えれば別の単語になります。翻字のルールと声調記号の対応はすべて、教科書の文法だけでなく実際の使われ方と照らし合わせて先生と確認しました。声調記号のピッカーは、子音の種類と母音の長さで候補を絞り込みます。多くの学習者が、そして多くのアプリが間違えるのはまさにこの部分です。

Why fully serverless完全なサーバーレスにした理由

The whole thing runs on Cloud Functions, Firestore and Firebase Hosting so there is nothing to keep warm and nothing to pay for when idle. App Check via reCAPTCHA Enterprise gates every generation endpoint and database operation, so the Gemini calls behind the lessons can't be scraped or abused.

全体をCloud Functions、Firestore、Firebase Hostingで動かしているため、常に起動しておくものも、使われていないときにかかる費用もありません。reCAPTCHA EnterpriseによるApp Checkがすべての生成の窓口とデータベース操作を守るので、レッスンの裏にあるGeminiの呼び出しが不正に取得されたり悪用されたりすることはありません。

From notes to a systemメモから仕組みへ

Kotchakorn went through five architecture rewrites. The breakthrough was treating my messy corpus — notebooks, voice memos, menu photos — as structured input to a synthesis engine rather than content to be displayed, which is what turned a study folder into a tool other learners could use.

Kotchakornは5回、設計を作り直しました。転機は、ノート、ボイスメモ、メニューの写真といった散らかったコーパスを、表示するコンテンツではなく、統合エンジンへの構造化された入力として扱ったことです。それによって、学習用のフォルダが、他の学習者も使える道具になりました。

05

Stack

技術構成

The frontend is built with Next.js 14 and TypeScript, using Tailwind CSS for utility styling and Framer Motion for the 3D card physics and page transitions. The entire infrastructure runs serverless on Google Cloud Platform — Cloud Functions handle the AI generation endpoints, Firestore manages user data and lexicon persistence, and Firebase Hosting serves the static build. Security is multi-layered: Firebase Auth with Google Sign-In for identity, and App Check via reCAPTCHA Enterprise to protect every API route and database operation from abuse. The AI backbone connects to Gemini for lesson generation and conversation simulation.

フロントエンドはNext.js 14とTypeScriptで、スタイルにはTailwind CSS、3Dカードの物理的な動きと画面遷移にはFramer Motionを使っています。インフラはすべてGoogle Cloud Platform上のサーバーレスで、AIによる生成の窓口はCloud Functions、ユーザーデータと語彙の保存はFirestore、静的なビルドの配信はFirebase Hostingが担います。セキュリティは多層的で、本人確認にはGoogleログインによるFirebase Auth、すべてのAPIとデータベース操作の不正利用防止にはreCAPTCHA EnterpriseによるApp Checkを使っています。AIの中核はGeminiで、レッスンの生成と会話のシミュレーションに使っています。

06

Where it is now

現状と今後

Kotchakorn is live and is the tool I reach for in my own Thai study, refined alongside my teacher. The natural next steps are spaced-repetition scheduling on the 3D deck and a wider persona library — the architecture already treats lessons as structured data, so both are additive rather than rewrites.

Kotchakornは公開中で、私自身のタイ語学習でも使っている道具であり、先生と一緒に改良を続けています。次の自然なステップは、3Dカードへの間隔反復スケジュールの導入と、会話の人物の種類を増やすことです。設計は既にレッスンを構造化されたデータとして扱っているため、どちらも作り直しではなく追加で実現できます。

Kotchakorn is the app I wished existed when I started learning Thai. It is not a replacement for a teacher — it is a synthesis engine that sits between you and the language, transforming raw input into structured, reviewable, drillable knowledge. The name itself is a Thai name meaning 'born of the lotus' — growth from murky beginnings.

Kotchakornは、タイ語を学び始めたときにあってほしかったアプリです。先生の代わりではなく、自分と言語の間に立って、生の情報を整理し、見直し、繰り返し練習できる知識に変える統合エンジンです。名前はタイ語の人名で、「蓮から生まれた」という意味です。濁った始まりからの成長を表しています。

Next case study 次の実績
VIBELINK
Autonomous Contract Job-Hunt Engine
→