Wuthqa, a legal firm's website, CMS and assistant
Wuthqa Consultancy is a legal-consulting firm in Saudi Arabia. I led the build of its public website, the CMS its staff publish with, and a website assistant that answers visitors' questions. They've been live since August 2026, and a signed-in workspace for the firm's clients is now in pilot. I owned the plan, the product decisions and the releases, through Dimensions.
What visitors see
Pre-rendered for speed and search, with a sitemap and structured data on every page. Tap any screen to see it larger.
The home page
Legal support for individuals, startups and businesses, with two ways in: book a consultation, or take the residency test.
Practice areas
Ten practice-area pages under one services section, each written for the people who need it.
Premium Residency test
A self-check that tells a visitor in about two minutes whether they qualify for Saudi Premium Residency, then hands them to a consultation.
Mizan
The firm's legal plans for startups and entrepreneurs, with their own page and sign-up.
What the firm runs it with
A CMS built for the firm
Staff roles scoped to what each person edits, content history with restore, form notifications routed to the right people, a careers inbox with CV upload, and a Publish to site button.
A website assistant
It answers visitors' questions about the firm's services, and falls back to built-in answers in both languages if the AI service is down, so a visitor never meets an error.
A client workspace, in pilot
Signed-in accounts for the firm's clients: packages, service requests, consultations and private documents. It's piloting before real clients join, so it isn't shown here.
Decisions behind it
Switches instead of a staging copy
Changes go to production switched off, turn on for a short list of pilot users, and switch off again to roll back. No second environment drifting out of date.
Legal files never leave the firm
Every upload goes through the firm's own malware scanner into quarantine, then clean or infected storage. Nothing is sent to an outside scanning service.
Proof that restores work
The first pilot upload was scanned, stored and restored, and the restored file matched the original byte for byte.
Credits are a ledger
A client's package credits are written as entries in a ledger, never a number someone edits, so every balance can be traced.
A language goes live only when it's finished
A gate blocks publishing a language with missing content, and turning one on rebuilds the whole site. An earlier version quietly did nothing while reporting success.
Safeguards that actually switch on
Six production safeguards depended on a setting the host never sets, so none of them were on. Found in review and fixed in one change.
- React
- esbuild
- NestJS
- PostgreSQL
- Vite
- Fluent UI
- TanStack Query
- Docker
- Cloudflare
Screenshots are of the public website. The client workspace is in pilot and isn't shown. Wuthqa and its content belong to the client.