Cakap Medan

1,952 words of Medan dialect, from the official dictionary.

Cakap Medan: Home
Home
Cakap Medan: Share a word
Share a word

The idea

Medan has its own dialect, with words borrowed from Toba, Karo, Mandailing, Javanese, Malay, Chinese, Dutch and English.

In 2019 Balai Bahasa Sumatera Utara collected 1,952 of those words in a printed dictionary, Kamus Bahasa Medan. Cakap Medan puts that book on the phone and the web, so visitors, students and anyone curious can look up a word they heard.

The product

The whole dictionary lives on the phone, so every word works without a signal, and each day opens with a new one.

  • Search both ways

    Look up a Medan word, or type an Indonesian meaning to find the Medan word for it. Or browse letter by letter, from A to Y.

  • A word for today

    Each day opens on a new word, the same one for everyone, and one tap picks a random word instead.

  • The word in use

    Each word shows its meaning, its word class and related words, with an example sentence in Medan dialect where the dictionary has one.

  • Five quiz levels

    The quiz runs from Anak Bawang, with 5 questions, to Bukan Kaleng-Kaleng, with 20, and counts your streak of right answers.

  • Story cards

    Any word becomes a 1080 by 1920 card in one of four themes, ready for Instagram Stories or saved as an image.

  • Folders for saved words

    Bookmark words and sort them into folders you name yourself.

Technologies

The app and the website read from the same dictionary: the website gets it from the API, and the app keeps its own copy on the phone, updated once a day.

Kotlin Multiplatform
The shared core: search, the quiz, bookmarks and sync
Jetpack Compose and Material 3
The Android interface
SQLDelight and SQLite
The dictionary on the phone, with full-text search
Ktor and WorkManager
Downloads dictionary updates in the background
FastAPI
The API that serves the dictionary to the website and the app
Supabase
The Postgres database that holds every entry
Astro and Tailwind CSS
The website, with its own page for every word