Session log — medilearn.africa rebuild kickoff
Session log — medilearn.africa rebuild kickoff
What happened, in order
1. The brief
medilearn is a registered NPC. Its content programme is doctor education, delivered in collaboration with the UCT Department of Medicine. The recorded lectures fall into three streams: TalentLMS courses, on-site lectures, and Zoom recordings of live sessions. Each stream has different access rules, which meant the site could not just be a clone of s2l with a new logo on the front.
2. Staging first, no risk to the live site
The agreement was to build the new site at staging.medilearn.africa and only switch the apex domain at go-live. The current placeholder on WordPress would stay up untouched while the new site was being put together, which kept the public-facing front door working through the whole build.
The new site sits on the same VPS as s2l, but in its own system user, its own PHP-FPM pool, and its own database. Isolation is more than tidiness: it means a problem on one site cannot reach the other.
3. A six-colour, education-first brand
The medilearn brand identity was captured from the official logos and pinned into a memory note for all future medilearn work. Six colours, with coral leading and accents in green, orange, magenta, blue, and tan. Rounded headings (Nunito) paired with Inter for body text. Generous white space, rounded corners, no stock medical imagery. Deliberately not the typical clinical blue-and-white look.
The look matters because the audience is doctors who already see clinical interfaces all day. An education-first feel signals that this site is here to help them learn, not to act as another piece of medical software.
4. Server, database, FPM pool, certificate
An A record was added at staging.medilearn.africa pointing at the s2l VPS. On the server a new system user medilearn was created, a directory at /var/www/medilearn with the right permissions, a database medilearn_pm with its own user, and a PHP-FPM pool running as the new user. The nginx vhost was set up to send X-Robots-Tag: noindex,nofollow,noarchive on every response so search engines stay out while the site is in build, and a Let’s Encrypt certificate was issued to cover HTTPS.
https://staging.medilearn.africa answered with a valid certificate, the right permissions, and a clean isolation boundary from every other site on the box.5. A medilearn theme, ported from s2l
The s2l theme directory was copied across, the class renamed to Medilearn_Theme, and the theme metadata updated. The CSS variables were rewritten to the medilearn six-colour palette, Nunito was added for headings, border radii bumped for a rounder feel, and the heavy s2l shadow swapped for a softer coral-tinted one. The original CSS was backed up with a timestamp before the change, so a roll back is one file copy away.
A small detail that matters: the theme keeps a copy of its CSS in the database (the option that matches the theme class name), so disk and database had to be synced or the site would render the wrong styles after a recompile.
6. Public-side plugin set
The plugins were installed in two waves. First, the eight public-side ones the homepage and inner pages need: EP Email, EP Breadcrumbs, EP SEO, EP GDPR, EP Newsletter, EP Newsletter SendGrid, EP Bunny Fonts, and EP Editor. Second, six cross-cutting helpers that are useful from day one: EP Diagnostics, EP Audit Log, EP Sitemap, EP Maintenance, EP Search, and EP Redirects. Membership, Booking, Booking Zoom, Courses and Password Reset are deferred until their stages.
The plugin classes were activated by adding their names to the plugins option, and each one seeded its own database tables on first hit. No manual SQL.
7. Filling the home page with real copy
The freshly ported theme rendered the home page’s ten sections (Hero, About, Courses, How It Works, Languages, Testimonials, Newsletter, Contact, Footer, plus the Header) but every section had a zero-byte HTML slot, so the page was a beautifully styled empty shell. Hasmukh chose Option B for filling it: proper sectioned content with the UCT partnership messaging, rather than a single column of paragraphs.
All ten sections were populated with medilearn copy. The hero now leads with the UCT partnership badge and the tagline. About explains the registered-NPC status and the UCT collaboration. The Courses block was reframed as “Recent lectures from the medilearn studio” with the existing roster of speakers (Setshedi, de Vries, Papavarnavas, Lehloenya, Hodkinson, Dave). How It Works was reframed as the three steps a doctor takes to attend a medilearn session. The dark Languages band from s2l was repurposed as a Partnership section, side by side panels for the UCT Department of Medicine and the mobilearn studio. Newsletter, Contact, and Footer all medilearn-flavoured. The total option grew from 4 KB to 16 KB.
8. A handover brief for Kenn
The handover for Kenn was published as a single page at /medilearn-rebuild-plan-2026-05-01/ on documentation.mobilearn.africa, rather than as an email attachment. Cleaner to read, easier to update, and reachable from the Overview index under a new “Related plans” section. The brief contains the full plan and four open questions for him: PHP-FPM pool conventions, doctor approval workflow, UCT brand-use rules, and watermark approach.
9. Going forward
The header still uses a text-only “medilearn” wordmark; Hasmukh will upload the actual horizontal logo lockup so it can sit in the header properly. Inner pages still to build: About long form, What we do, Partners long form, Upcoming sessions, Contact (already linked from home), and a donor information page. POPIA cookie banner copy still to be written for EP GDPR. SendGrid sender to be configured for EP Newsletter.
Stages 3 to 6 are still ahead: doctor account system, live session registration, the protected video library, and the donor section. At go-live the apex A record at domains.co.za swings to the VPS, the certificate is reissued or extended to cover the apex and www, and the staging-only noindex headers come off.