Let's be honest. Internationalization is usually painful. 🌍
If you have ever built a global app, you know the struggle. You create a locales folder. You create en.json. Then es.json. Then fr.json. You spend hours copying keys and translating simple words.
And if you change one sentence? You have to update five different files.
For my latest hackathon project, Prism, I wanted to stop doing that. I wanted to build a storefront that didn't just translate words but actually adapted to the user.
Here is how I used Next.js 15 and AI to build a store that changes prices and languages based on who is visiting. The best part? I didn't maintain a single translation file.
🚨 The Problem
Most "Link-in-Bio" stores treat every visitor the same. They show the price in USD and the text in English.
But if a user visits from India, a $50 ebook is expensive. And if they visit from Brazil, they probably want to read in Portuguese.
I built Prism to solve this 🚀:
Detect Location: Know where the user is visiting from.
Adjust Price: Apply Purchasing Power Parity (PPP). For example, $50 becomes ₹4000 automatically.
Translate Content: Use AI to rewrite the description in the local language instantly.
🛠️ The Tech Stack
I kept it modern and fast:
Framework: Next.js 15 (App Router)
Database: Supabase (for Auth and Data)
The Magic: Lingo.dev (for AI Localization)
⚡Ditching the JSON Files
In a normal app, your product page code usually looks like this:
TypeScript
{t('product_title')}
{t('product_desc')}
Then you have to go write those translations manually in a separate file. It is boring work. 😴
With Prism, I used the Lingo.dev SDK. Instead of static keys, the AI generates context-aware translations on the fly.
It understands that "System" in Spanish should be "Sistema" in the context of computers, not biology. This saved me hours of manual work.
📸The Result
Here is what happens when you actually visit the store.
The US Visitor:
Language: English
Price: $49.00
Vibe: Standard.
The Indian Visitor:
Language: Hindi (Auto-translated)
Price: ₹4000 (PPP Adjusted)
Vibe: Localized.
🚀 Why This Matters
We often ignore the "International" part of the World Wide Web. We build for our own timezone and currency.
By automating the hard stuff like translation and currency conversion, we aren't just writing better code. We are opening our apps to the 85% of the world that doesn't speak English as a first language.
I am submitting this for the Lingo.dev hackathon. If you want to check out the code or star the repo, here is the link:
🔗 [https://github.com/CoderOtakuX/Prism]
Happy coding! 💻



Top comments (1)
Share your thoughts also !!!