Skip to content

The practice · Yasmine Madkour, with Smart Civic · 2024 to now

A therapist's whole practice, online.

Through Smart Civic Solutions, I lead a team of five designers and developers on the full digital presence of Yasmine Madkour, a somatic trauma therapist in Egypt. Her site speaks English and Arabic, and the Arabic truly mirrors, right to left, instead of sitting in an English layout.

My role
Software engineering team lead
The team
Five designers and developers
Languages
English, and Arabic mirrored right to left
Since
September 2024

English

Arabic

One site, two directions. Everything mirrors, nothing is an afterthought.

Four parts, one practice

  1. The front door

    A bilingual site, English and Arabic, rebuilt around her brand and mirrored properly in both directions.

  2. The front desk

    Separate paths for new and returning clients, in both languages, and program times and countdowns shown in each visitor's own time zone.

  3. The back office

    An admin that went from long technical forms to visual page builders, so her team can change almost anything, in both languages, without calling a developer.

  4. The manual

    When the system grew past what anyone could hold in their head, I wrote it down: a documentation site covering every part of it, from the platform to the page builder to operations. The storyboards were exported once into one checked package, so every teammate, and every AI agent working with us, builds from the same source.

Eight releases in five months.

Between February and June, the admin turned into a set of visual builders. Each release handed her team one more thing they could change themselves.

From long technical forms

to visual builders her team runs

From February

  1. Time zones

    Schedules and countdowns that follow each visitor's clock, across more than thirty time zones.

  2. FAQ order

    Questions her team can reorder by dragging.

  3. Pricing plans

    A manager for plans, prices, and what each includes.

  4. After checkout

    Thank-you pages her team builds themselves, each with its own link the moment it exists.

  5. Every page

    A page builder for the whole site, with a drag-and-drop menu manager.

  6. Product pages

    Nine kinds of sections and one shared way to set what every button does.

  7. Community

    An editable community page with a searchable icon picker.

  8. Long pages

    Faster editing for the longest pages.

To June

Eight releases, February to June.

Every icon, editable.

Her brand has four hundred eighty-four icons in twenty-one families. I decided every icon a visitor can see should be changeable from one place, and that the place should show each icon where it's actually used, not in a list of file names.

The whole library, in one place

Change it here. It changes there.

Where it's used, on her site

484 icons, 21 families, one place to change them.

Invited, not required.

Her homepage tells visitors what trauma really is, as a short story around a bowl. The first nine attempts at making it interactive didn't feel right, and I worked out why. They were one idea in nine costumes: each asked the visitor to perform a gesture, fill a hidden meter, and unlock the next part. That's how games work. It's the opposite of how a body-based therapy feels.

So instead of drawing a tenth version, I wrote down rules.

  1. Rule 1

    Invited, not required.

    Instead of performing a gesture.

  2. Rule 2

    Responsive, not demanding.

    Instead of unlocking the next part.

  3. Rule 3

    Obvious, not explained.

    Instead of filling a hidden meter.

On a page like this, smoothness is safety.
  1. Perform a gesture
  2. Fill a hidden meter
  3. Unlock the next part
Nine designs, one interaction underneath.

In the end I dropped scrolling altogether. The story now plays like a short film, and it starts only when the visitor chooses to start it.

Before

The page's scroll drove the story, frame by frame.

Now

A short film that plays only when the visitor starts it.

The empty grid.

Her team built a page with a block of related programs. It looked right in the editor and showed nothing on the live site. The programs were saved and readable. The block was asking for them from the wrong side, and every failure was quietly turned into nothing. I fixed both ends: the site now shows only programs that are live and complete, and the editor won't let anyone save a program that visitors can't see.

  1. Editor

    The programs are saved and readable.
  2. Live site, before

    The block asked from the wrong side, and every failure became nothing.
  3. Live site, after

    Shows only live, complete programsCan't save what visitors can't see
Three frames of the same related-programs block: full in the editor, empty on the live site before the fix, and full again after it.

Eight kinds of done.

When I prepared the project to be handed on, I separated eight things people usually call done. Every status now names which one is proven. I held my own work to it too: when the evidence changed, I marked my own earlier completion report as a draft, not the truth.

Completion report

Draft
My own earlier completion report, relabeled once the evidence changed.
  1. Code exists
  2. Code merged
  3. Data exists
  4. Review passed
  5. Tracker says live
  6. Criteria signed
  7. Client accepted
  8. Production authorized
Each status names which of these is proven.

The hard part of this work isn't the code. A therapist's site is often the first thing someone sees on a hard day. Every word, and every step of booking, has to feel calm.

Beyond this practice

Smart Civic also works with international development organizations on training and civic initiatives. I've contributed to several of them, including the training films in the next room.

Next door: The edit