Agritech platform & investor funnel
Trilingual web presence for an ADGM agritech company
- Role
- Built the platform end-to-end
- Since
- 2025
- Stack
-
- React
- TypeScript
- Supabase
- PL/pgSQL
- Edge Functions
- i18n · RTL
An agritech company in Abu Dhabi needed to reach three audiences in three languages.
Investors in English. Partners in Russian. The local market in Arabic.
Same product, three completely different readers.
01 How I thought about it
Translation is the easy half of a multilingual site
The hard half is that a search engine, a WhatsApp preview and a Telegram unfurl each need to see the right language before any JavaScript runs. A single-page app returns one HTML shell to all of them, so every share looked English no matter which link you sent.
So I moved localisation into the build
A post-build script reads the compiled HTML and emits real localised entry points for /ru and /ar — correct lang, correct dir, correct canonical, correct OG image per locale. Bots get static localised HTML. Users still get the SPA.
Arabic is not English with the text moved right
Right-to-left changes layout direction, icon direction, punctuation and number handling. Treating it as a CSS flip produces something an Arabic reader can spot in a second, and that is precisely the audience you cannot afford to lose.
02 Architecture
03 Decisions, with the reason attached
-
Locale pages generated after build, not rendered at runtime
No server needed, nothing to keep warm, and search engines get static HTML. The cheapest correct answer.
-
Per-locale OG images with a fallback
A share into a Russian or Arabic channel shows a card in that language. Missing image falls back rather than breaking the unfurl.
-
Investor capture behind a serverless gate
Qualifying questions run server-side so the logic is not sitting in the browser bundle for anyone to read.
-
Logic in PL/pgSQL where it belongs to the data
Constraints and derivations the database can enforce should not live in application code that can be bypassed.
04 Where it landed
Trilingual EN/RU/AR with proper right-to-left, live in production.
Localised metadata and share cards for each language, so a link shared into any of the three markets arrives in that market's language.
The company has since redesigned the front end. The i18n build pipeline and the data layer are the parts of this that held up, and the parts I would build the same way again.
Building something like this — or putting AI agents into production?
I design AI systems, orchestrate the agents that run them and own the backend underneath. Founding-engineer and systems-architect work, and advisory for teams that need it to run unattended and stay within budget. Abu Dhabi (ADGM) / Remote.