Zum Hauptinhalt springen
tsecurity.de LIVE
Echtzeit-Radar & Feeds
Alle RSS Feeds
👥 Community & Social
Sichere ProgrammierungMCP Tool Poisoning: A Name Allowlist Is Not Enough(22.09.2026 um 18:56 Uhr)
Sichere ProgrammierungGiggleGigs: A Job Board That Actually Uses AI Where It Helps(22.09.2026 um 18:57 Uhr)
Sichere ProgrammierungThe Bootstrapped SaaS Flywheel: How to Hit $10k MRR Without VC Capital(22.09.2026 um 19:05 Uhr)
Sichere ProgrammierungThe container was running software nobody built(22.09.2026 um 19:08 Uhr)
Sichere ProgrammierungYour Terminal Tasks, Everywhere: Introducing Tasku Cloud(22.09.2026 um 19:08 Uhr)
Sichere ProgrammierungMCP Tool Poisoning: A Name Allowlist Is Not Enough(22.09.2026 um 18:56 Uhr)
Sichere ProgrammierungGiggleGigs: A Job Board That Actually Uses AI Where It Helps(22.09.2026 um 18:57 Uhr)
Sichere ProgrammierungThe Bootstrapped SaaS Flywheel: How to Hit $10k MRR Without VC Capital(22.09.2026 um 19:05 Uhr)
Sichere ProgrammierungThe container was running software nobody built(22.09.2026 um 19:08 Uhr)
Sichere ProgrammierungYour Terminal Tasks, Everywhere: Introducing Tasku Cloud(22.09.2026 um 19:08 Uhr)
Intelligence View
⚡ tsecurity.de Intelligence

Building a trilingual, multi-tenant hotel management SaaS for the Kurdistan Region

A few months ago I shipped tourism.krd — first-party hotel and motel management software built specifically for property owners in the Kurdistan Region: Duhok, Erbil, Slemani and Zakho. This post is about the engineering decisions behind i…

0
↗ Quelle (dev.to)
Reagiere als Erste:r — dein Feedback zählt!

A few months ago I shipped tourism.krd — first-party hotel and motel management software built specifically for property owners in the Kurdistan Region: Duhok, Erbil, Slemani and Zakho. This post is about the engineering decisions behind it, and why building for a local, underserved, right-to-left, multilingual market turned out to be a genuinely interesting problem.






The problem



Most small hotels and motels in the region still run on paper ledgers or scattered WhatsApp chats. The result is predictable: double-bookings, lost income records, and no clear view of occupancy or revenue. The few digital options that exist are global OTA platforms that take a commission on every booking and assume English-only, left-to-right staff. Nobody had built management software that speaks the local languages and leaves every booking — and every dinar — with the owner.






Why multi-tenant, subdomain per property



Every property runs on its own subdomain — yourmotel.tourism.krd — with its data fully isolated. I went with a single database and row-level multi-tenancy rather than a database per tenant: every row carries a tenant_id, and a host-to-tenant lookup in middleware resolves the subdomain to that ID on each request.



Postgres Row Level Security is the backbone. Reads and writes are scoped by a current_tenant_id() function so a query can never leak across tenants, even if application code has a bug:




create policy tenant_isolation on bookings
using (tenant_id = public.current_tenant_id());









The trilingual / RTL challenge



The admin works fully in English, Arabic and Kurdish (Bahdini, written in Arabic script), with correct right-to-left mirroring. The hard part isn't translation — it's that every piece of content is multilingual. Room names, taglines, landing-page copy: each is stored as a small object rather than a single string.




type Localized = { en: string; ar: string; ku: string };






Layout direction flips based on locale, and the whole UI mirrors so Arabic and Kurdish read naturally. Getting RTL right across a real dashboard — calendars, tables, forms — is far more work than wrapping things in dir="rtl".






The stack





  • Next.js (App Router, React Server Components) for the admin and the public site


  • Supabase — Auth, Postgres, Storage, and RLS — accessed SSR


  • Tailwind for styling, with a dedicated palette per surface


  • Cloudflare Workers for deployment, so it's fast and cheap to run regionally






What I learned



Building for an underserved local market is its own kind of constraint. There's no off-the-shelf component library tuned for Bahdini RTL, no Stripe support for local payment rails, and the users aren't developers — so the bar for "obvious and calm" UI is high. Those constraints made the product sharper, not weaker.






Try it



If you run a hotel or motel in the Kurdistan Region, it's live and first-party at tourism.krd — 0% commission, trilingual, your software. Feedback from other builders very welcome.

Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten Building a trilingual, multi-tenant hotel management SaaS for the Kurdistan Region

Thematisch verwandte Begriffe: Building, trilingual, multitenant, hotel · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Zum Aktualisieren ziehen
ZERO-DAY CVE-2026-75608 | Frigate is an open source network video recorder. Prior to 0.18.0, the p…
Advisory →
TTS Reader • tsecurity.de Voice
tsecurity.de Icon
tsecurity.de App
Offline-Lesen, Eilmeldungen & 0ms Ladezeit

Installiere tsecurity.de direkt auf deinen Home-Bildschirm für das ultimative Vollbild-Magazinerlebnis ohne Browser-Leisten.

Nächster Beitrag
Themen-Radar & Intelligence Matrix
Echtzeit-Taxonomie nach Angriffsvektoren & Plattformen

tsecurity.de Live Threat Radar

🔴 LIVE RADAR
MONITORING
AKTIV
CVE-DATENBANK
LIVE
🔍
Community Radar & Live Chat
Sentinel Bot online • Live-Stream
Dein Cluster: Security Explorer
Match:
lädt…
Verbindung zum Community-Stream wird aufgebaut...
Bearbeitungsmodus — Senden überschreibt deine Nachricht
Community-Puls — was gerade passiert
lädt…
Aktivitäten deiner Analysten
lädt…
Neues Thema oder Eilmeldung einreichen

Reiche interessante Links, Zero-Days oder Debatten ein. Die Community entscheidet per Upvote über die Veröffentlichung.

Heiß diskutierte Einreichungen
🔖 Gespeicherte Artikel
📂 Keine gespeicherten Artikel vorhanden.
Zurück Ziehen Vor
Links: vorheriger Artikel Rechts: nächster Artikel unten: schließen
News NIS-2 Frühwarnung Tier-1 Intel ⏱️ 3 Min vor 10 Min
Artikeldaten werden geladen...

Zurück: vorheriger Vor: nächster
↗ Original-Quelle
Social Reaktionen Deine Reaktion zählt
Einstufung & Relevanz-Poll 0 Stimmen
In sozialen Netzwerken teilen 1-Klick