Abbreviatin

Singapore Govt abbreviation/acronym search

Abbreviation app Abbreviation app

TL;DR

New workers don't know all the short words used at work. I made a simple web app to help them quickly find out what those short words mean.

Problem

Newer employees in large organizations waste time looking up acronyms and abbreviations. There're a few PDFs with acronyms lying around on the Intranet, but they are hard to find and difficult to use.

As a result, new hires can feel lost and less engaged while adjusting to a new environment. They can ask a colleague, but many don't, because it can feel like you're bothering others.

Idea

I wanted to build a lightweight search app for abbreviations. There were already a few JS side projects by individual civil servants, but I wanted to make a faster one with Go.

Stack

GoGo
HtmxHtmx
TailwindTailwind
SqliteSqlite
TemplTempl

What I built

  • A search app and database of abbreviations & acronyms in Go.
  • Focused on being minimal, fast, and usable.
  • Uses full-text search and fuzzy matching (Jaro-Winkler and Metaphone [Phonetic]).
  • Experimented with Levenshtein, Jaccard, Aho Corasick, Jaccard, Beider-Morse, Soundex.
  • Implemented backend admin features for identifying duplicate entries.
  • Interesting to learn Go, Docker, Makefile, Templ and tooling outside of JS meta frameworks (Air, Tailwind, Esbuild, Prettier).

Not yet done

  • Users say a tagging feature will be useful, but is too much work for now.
  • Semantic-based search would be fun to implement (e.g., searching CEO of ministry should ideally return Minister/PS)
  • If this scales way bigger (or maybe just for fun) - trying Minhash and Bloom filters
  • Adding Valkey makes it slower than just using SQLite, but I'd love to continue trying ways to cache expensive results/queries.

Copyright 2024-2025 Zixian Chen | Communication illustrations by Freepik and Storyset