This site: a bilingual, content-first case-study portfolio.
Role
Solo: content, design and engineering
Year
2026
Status
Live
Category
Web
A bilingual (English/Arabic) portfolio built as a content layer first and a design second: every project is written up once in both languages, then rendered as a card, a case study, and a search-engine record from the same source.
Overview
Most portfolios are a design with some text poured into it, which is why they are impossible to translate and go stale the moment a project ships. I inverted it: the whole site reads from one typed content layer where every string exists in English and Arabic, and the pages are just views over it.
That made a second language a rendering concern instead of a rewrite. The same project record produces the card, the case study, the Open Graph tags and the sitemap entry, in either direction, without a duplicated copy to keep in sync.
It is built with Astro, ships almost no JavaScript, and pulls live GitHub and WakaTime figures at build time so the activity numbers are not a screenshot from last year.
Flipping a layout to RTL with a direction attribute gets the columns right and everything else wrong: Latin stack names invert inside Arabic sentences, numeric axes read backwards, and a Latin display face applied to Arabic text looks like a fallback.
Solution
Arabic gets its own face, Thmanyah Sans, with the salt alternates enabled on headings. Logical CSS properties handle the mirroring, and the parts that must stay Latin, code identifiers, chart axes, URLs, are pinned to LTR inside an RTL page.
Forty case studies without forty templates
Problem
Forty projects that each get a real write-up, in two languages, is 80 documents. Hand-authoring pages would guarantee that half of them drift out of date and the other half quietly lose a field.
Solution
One TypeScript type describes a project, including the bilingual fields, so a missing Arabic paragraph is a compile error rather than a blank section in production. Every page is generated from that array.
Results
41 projects, each with a full case study in both languages.
Complete Arabic and English routes, mirrored down to the fonts and charts.
Live GitHub and WakaTime activity, with a frozen fallback so a third-party outage cannot fail the build.