Jul 14, 2024
2 min read
Online Turkish Slang Dictionary
A website to view and search Turkish slang words and phrases.

For my second project centering web development and UI design, I decided to create a dictionary for sland phrases and words in Turkish. I created a input for searching and designed components around it.
I used Next.js with Shadcn’s UI components. While I set out to transcribe every word and phrase in a book titled “Türkçenin Büyük Argo Sözlüğü,” but I soon realised that it is really hard to transcribe from a book that is 25 years old. In any case, I created the site to look really nice, even though the search function probably is the slowest thing you’ll ever see. Maybe I could use some OCR and AI to automatically parse and generate the JSON data I need, or maybe you can do it!
- See the website for yourself.
The GitHub repo is not public for the time being, but if I return to this project in the future, I definitely want to make it open source so that anyone can both add words and phrases, and improve the website.Scratch that, I’ve made it public: repo
Well, after thinking about it, I’ve decided to come back to this project and have finished the entire thing! Now, I’ve parsed every single entry from Hulki and loaded them up in a JSON file, which the app loads. Together with some scripts, hand modifications, and some AI action, the data is pretty good.
Some interesting things about the code:
- Since I was using AI and it can make some mistakes, I’ve decided to parse the JSON with a zod schema, to make sure that the data is as expected . As such, I’ve put this inside of
next.config.ts
.
1const dictionary = JSON.parse(fs.readFileSync(path.join(process.cwd(), DICTIONARY_FILE), "utf-8"));2dictionarySchema.parse(dictionary); // Validate dictionary at startup
- I’ve also decided to use PPR with as many optimisations as possible. The search bar itself is in the layout and each entry is pre-rendered at build. The dynamic content, which is the table based on search params , is streamed from the server.
- After this, I might implement suffix array in TS to optimise the query matching even further.
§