Skip to content
Deployment-readyFR · AR · EN · Documents · PWA

Multilingual Knowledge Platform

A private French-, Arabic- and English-language document library with personal libraries, search, recommendations and an administrative publishing workflow.

Three languages, one architecture — RTL is a design decision, not a CSS patch.

01Context

A community maintains a large body of texts in French and Arabic, shared informally and hard to find.

02Problem

A private, trustworthy library where members read, annotate and save — and administrators publish with review and history.

03Constraints

  • French-first, full Arabic RTL, English
  • Member data separated from admin operations at UI, API and rules layers
  • Works on weak mobile connections
  • Private content must not leak through offline caches

04My role

What I personally built

  • Architecture and route structure for FR/AR/EN
  • Firestore and Storage authorisation rules
  • Resource lifecycle: staging → draft → published → archived
  • Document upload contracts, versions and audit events
  • Offline/PWA caching with account-change clearing
  • Unit, component and browser-test foundations

What others owned

  • The client community owns the content and editorial decisions

05Architecture

Architecture explorer

The business flow — what happens, in plain words.

01 / 04

Member — Reads in their language.

06Key decisions

  1. Authorisation enforced in three layers

    Because
    UI, server API and Firebase rules each fail closed.
    Trade-off
    Rules must be kept in sync and tested.

07System

Next.js routes per locale, Firebase Auth, Firestore and Storage protected by tested security rules, server APIs via the Admin SDK, audit events for every administrative mutation, and a PWA shell with safe offline retry.

08Challenges

  • Mixed Arabic/French metadata in one document model
  • Testing security rules in the emulator
  • Cache invalidation on account switch

09Outcome

Feature-complete for interface review; production release gated on client infrastructure and acceptance items tracked in the delivery backlog.

10What I learned

Honest delivery tracking — separating code work from external release gates — builds more trust than a green dashboard.

11Stack

  • Next.js
  • TypeScript
  • Firebase Auth
  • Firestore
  • Cloud Storage
  • Security Rules
  • PWA
  • Playwright
  • Vitest
  • Sentry
  • Vercel

12Evidence

  • Private client repository

Confidentiality · Private community platform; the client is not named.