Session logs

← All sections

Session logs

A working journal of paired sessions between Hasmukh and Claude, across every project. Each entry captures what was built, what changed, what got stuck, and what is still open. Newest first; the badge on each card shows the date and the project it belongs to.

20 June 2026, afternoon · Zoom Companion

Named per-session recording logs (v0.14.0)

Hasmukh is running the Medilearn camera app in an all-day production. The Zoom meeting and the bot sit in it all day. Between sessions there are speaker changeovers, nature breaks and lunch or coffee breaks, where most participants switch their cameras off as expected.

18 June 2026, morning · s2l.online

Newsletter bot protection

Hasmukh's daily activity digest showed bot sign-ups arriving on the newsletter form (gibberish names, padded-Gmail addresses — the same actor that had hit the sign-up page and created fake accounts). He asked me to review the newsletter form and add a guard rail if needed.

16 June 2026, evening · Zoom Companion

Build kit for Peter Sargeant

The operator asked for a way to share how the Camera Monitor app was built with a friend, Peter Sargeant, so that Peter could paste a single prompt into his own Claude Code account and end up with the same app.

15 June 2026, evening · s2l.online

Bot protection (contact form and sign-up) and page width

Hasmukh reported too many bot messages coming through the "Send us a message" contact form and wanted a way to confirm a real person is sending.

13 June 2026, evening · Vodalibrary

Vodalibrary: 6-digit code sign-in, and email moved off SendGrid

Changed how people sign in to vodalibrary.online. Instead of clicking a link in an email, members now type a 6-digit code that we email them. This matches the experience on the doctors' site (medilearn.africa).

13 June 2026, morning · Medilearn

"Check on HPCSA" button fixed (dead register link)

Continuation of the 12 June session. The original report was that a button on the ML Doctors admin page "takes me to the URL and nothing happens". The early part of this session assumed the Approve button was the culprit and confirmed that Approve works correctly end to end.

12 June 2026, evening · Docs site

Session recordal by date and group on the docs site

Hasmukh asked for a review of documentation.mobilearn.africa and for every working session to be recorded there by date and labelled by project group, with multiple sessions on the same day easy to tell apart, and set "log and publish" as the trigger phrase for immediate publishing.

12 June 2026, evening · Medilearn

Passwordless doctor system, hardening and fixes

A long working session on medilearn.africa's doctor verification. Started as a planning request and became a full build-out.

12 June 2026, evening · Medilearn

First name and surname split, and sign-in repair

Hasmukh asked for the doctor sign-up to capture First Name and Surname separately (instead of one Full name box), since the HPCSA register is searched by surname, with email and MP number as before, and approval continuing to unlock the recordings.

12 June 2026, morning · Medilearn

Doctor authentication for medilearn.africa recordings

An overnight-and-afternoon session that took the medilearn.africa doctor verification system from "built but quietly broken" to live and public.

11 June 2026, afternoon · Medilearn

medilearn.africa domain audit

Hasmukh shared the domains.co.za DNS management link for medilearn.africa (service 403352) and asked for a deep dive into what had actually been built on the domain, as the history had become confusing.

10 June 2026, evening · Email

medilearn.africa outbound email migration

Hasmukh, working from Kenn's guide, asked for help moving medilearn.africa's outbound email off SendGrid onto Mailgun; the session started on the evening of 10 June 2026 and spanned into 11 June, wrapping up just after midnight.

9 June 2026, evening · Medilearn

Planning doctor verification and gated recordings

Hasmukh asked how to plan and execute a way to put the Past Events recordings behind doctor verification on the live medilearn.africa.

9 June 2026, afternoon · Guides

Study guide system rebuild without Make

The Make.com webhook was replaced with a same-origin /submit endpoint on the VPS, so quiz results from the staff handbooks at handbook.s2l.online now post directly to the Monday.com board "Study Guide Completions" (18416710291).

8 June 2026, evening · s2l.online

Server root password reset and ZoomISO Terminal help

Hasmukh reopened an older session (originally 26 May) in the evening to ask how to recover the root password for the server.

8 June 2026, evening · General

Reviewer and documentation password resets, site inventory

Hasmukh reopened an older worktree session in the late afternoon with a string of access questions.

7 June 2026, morning · General

Interactive studio wiring diagram HTML

Although it ran in the PageMotor 0.9.3b folder, this session had nothing to do with PageMotor: across 6 and 7 June it built interactive HTML maps of the broadcast studio wiring (ATEM switcher, Mac Studio, SDI/HDMI converters, Yamaha DM3 audio and more).

5 June 2026, evening · PageMotor

PageMotor 0.9.3b rollout to three local sites

Claude read and summarised Kenn's build-safety brief for PageMotor 0.9.3b (a small two-file bugfix patch on 0.9.2b), flagging that the brief's token field was blank and taking no action until asked.

5 June 2026, afternoon · PageMotor

PageMotor 0.9.2b rollout to local factory sites

Took delivery of the PageMotor 0.9.2b update folder (new core, two AI skill plugins, and Kenn's CC-to-CC build-safety brief) and rolled it out across the local PageMotor-Factory environment.

4 June 2026, evening · PageMotor

PageMotor 0.9 source of truth and Discovery AI pipeline

In this session, run with Kenn, the latest PageMotor codebase was locked in as the canonical source of truth, a full local PHP and MySQL stack was installed on the Mac, and the whole Discovery AI pipeline was then built on top of it: an interview plugin that produces a Design Brief, the Marula School of Medicine demo site synthesised from that Brief, three ways to ship a finished site, two interactive lesson guides, and a design-diversity gate after Hasmukh flagged that the outputs were looking samey.

4 June 2026, afternoon · PageMotor

Kenn's PageMotor 0.9.1 brief and memory refresh

Kenn's Claude Code supplied a build-safety brief for PageMotor 0.9.1b listing five known faults that can break sites during building, the worst being a theme save failure when a Design Option contains a raw var(...) value.

3 June 2026, evening · Medilearn

Safari wide margins on the homepage

Hasmukh noticed the live medilearn.africa homepage showing wide empty margins on the sides in Safari, while it looked fine in Chrome, and asked why. Investigated the site's styling end to end and found no fault in the website.

3 June 2026, evening · Discovery AI

TIB AI builder, new site for Crossing the Line

Hasmukh asked to create a new website using the TIB AI builder that Kenn set up, the same one used for the Tech Plus Things site. I traced the builder to discovery.mobilearn.africa (the tibaai-discovery plugin), read its method, and ran it for him.

2 June 2026, evening · s2l.online

ZoomISO v3 text course built and published on s2l.online

Hasmukh supplied the official ZoomISO version 3.0.3 PDF manual and asked for a deep, lessons-style text course built from it and published on s2l.online, so he can learn the software properly.

2 June 2026 · Medilearn

Past Events video description beside the Watch button

Hasmukh asked to take the description from a talk's video (the description box on Vimeo) and show it to the right of the green "Watch the recording" button in the Past Events spotlight, the same idea used on s2l.online. Bridget Hodkinson's Gout talk was the worked example.

2 June 2026 · Medilearn

Past Events page restyled as a gallery

Restyled the Past Events page on the live medilearn.africa site to match a podcast-style reference Hasmukh shared. The most recent event now sits large at the top as a featured item, with all events shown below as a gallery of photo tiles.

2 June 2026 · Medilearn

Past Events: Bridget and Mashiko recordings

Added the recorded video of Prof Bridget Hodkinson's "Gout: What's New" talk to the live Past Events page (medilearn.africa). Located the matching Vimeo recording by its tag 20251001bridget , set it to play privately only on the live site, and attached it to the correct event.

1 June 2026 · Medilearn

medilearn.africa Vimeo connection and Jantina past-event recording

Connected the live medilearn.africa site to Vimeo (manual fetch only, no automation), then added the recorded Jantina de Vries ethics talk to the Past Events page so it plays on the site.

28 May 2026 · General

Vangelis MacMini workspace catch-up

Hasmukh opened the project from a different machine, the Vangelis MacMini, and asked for a review of the workspace and a summary of everything done so far. No site changes were made this session.

28 May 2026 · Medilearn

Medistage go-live to medilearn.africa

Took the site previously at medistage.medilearn.africa live as the new medilearn.africa. The old WordPress site (previously hosted at 41.222.32.14) was archived to iCloud and then replaced. Site is live, secure, and indexable. Old medistage links 301 to the new address.

28 May 2026 · Discovery AI

Discovery AI medical school track analysis

Hasmukh asked whether the Discovery AI plugin on tibaai.org could be adapted for a medical school attached to a teaching hospital, covering clinical care, cutting-edge research, and the training of scientists and healthcare workers.

27 May 2026 · Medilearn

Setshedi caption, lectures list page, ML Lectures plugin

Three pieces of work on medistage.medilearn.africa today. First, a caption was added beneath the Prof Mashiko Setshedi portrait in the UCT Partnership section of the homepage.

26 May 2026, evening · Docs site

Overview page session-logs cleanup

Hasmukh reported that the Session logs section on documentation.mobilearn.africa/overview/ looked broken. Investigation showed three distinct rendering glitches in the most recent entries that the page had picked up over the last few days of publishing.

26 May 2026, morning · s2l.online

Activity monitoring: on-site dashboard and daily digest

Started by checking whether the sign-in and sign-up emails sent by the S2L Magic Login plugin are still being delivered.

26 May 2026 · Medilearn

Medistage under-construction notice

Hasmukh wanted visitors to know the site is still being built. He picked the slim top-of-page banner option.

26 May 2026 · Medilearn

medistage founder photograph

Hasmukh asked to insert an image into the "Founder photograph" placeholder on the medistage homepage, in the section headed "Born from medicine, built through technology, ignited by COVID."

26 May 2026 · Medilearn

Unhide Register Now button on medistage homepage

Hasmukh asked for the "Register Now — It's Free" button on the medistage homepage to be brought back. The button had been hidden on 25 May 2026 with an inline display:none while the session title and date were still placeholders.

26 May 2026 · Medilearn

medistage nav buttons broken from other pages

Hasmukh reported that the top navigation buttons on medistage.medilearn.africa (About, What We Offer, How It Works, Partner With Us, Contact, Register for Next Session) did nothing when clicked from a page other than the homepage.

26 May 2026 · Medilearn

medistage live session image

Hasmukh shared a Zoom-style image of 12 South African doctors on a live call and asked to drop it into the "Not a webinar. A live clinical experience." block on the medistage homepage, replacing the placeholder that read "Live session photo or Zoom screenshot goes here".

26 May 2026 · Medilearn

medistage how-it-works connector line alignment

Hasmukh shared a screenshot of the "How it works" section on the medistage homepage and pointed out that the thin horizontal connector line between the three numbered circles looked misaligned. Confirmed the site in question was medistage.medilearn.africa.

26 May 2026 · Medilearn

FCP Part 1 Refresher Course landing page on medistage

Following the earlier session that brought the "Register Now" button back on the medistage homepage banner, Hasmukh asked for a proper landing page behind that button.

26 May 2026 · Medilearn

medistage deactivate "Read the full story" button

Hasmukh sent a screenshot of the founder section on the medistage homepage showing the "Read the full story →" button under Dr Hasmukh Gajjar's bio, and asked for the button to be deactivated.

26 May 2026 · Medilearn

Deactivate "Education built for doctors in practice" buttons on medistage homepage

Hasmukh sent a screenshot of the offerings grid on the medistage homepage and asked for the four call to action buttons in that section to be deactivated for now.

25 May 2026 · Medilearn

Prof Setshedi UCT partnership block and photo refresh

Hasmukh asked for a profile block on the medistage homepage stating that medilearn manages some of the online events in collaboration with the Department of Medicine, UCT, with a photo of Prof Mashiko Setshedi.

25 May 2026 · Medilearn

medistage workspace location

Hasmukh asked where his local workspace for medistage.medilearn.africa lives on his laptop. Confirmed there is no dedicated local folder for medistage. The site is hosted entirely on the s2l VPS and is accessed through the server connection.

25 May 2026 · Medilearn

Medistage Setshedi block lookup

Hasmukh asked about the "Prof Setshidi block". After confirming what he meant, I read the current state of the Prof Mashiko Setshedi event card on the medistage Past Events page and reported it back in plain English. No changes were made.

25 May 2026 · Medilearn

Hide Register Now button on medistage homepage

Hasmukh asked to hide the "Upcoming Free Session" banner on medistage.medilearn.africa, then corrected the scope to just the "Register Now — It's Free" button inside that banner.

25 May 2026 · Medilearn

medistage broadcast gallery captions

Hasmukh asked for captions to be added under the six images in the "our live broadcasts" gallery on medistage.medilearn.africa. Confirmed the site is medistage (not staging.medilearn.africa). Captions were supplied by Hasmukh one image at a time.

25 May 2026 · General

Claude Code Groups question

Brief Q&A session. Hasmukh shared a screenshot of the Claude Code sidebar context menu showing a "Move to group" option and asked what Groups mean in CC.

25 May 2026 · Medilearn

medistage — Recent Events banner and Past Events page

Added a "Recent Events" banner on the medistage homepage, sitting directly below the existing "Upcoming Free Session" banner, with a "Browse past events" button that links to a new placeholder page at /past-events.

25 May 2026 · s2l.online

Magic login polish: URL migration, page redesign, homepage sign-in

Continuation of the previous evening's magic-link work. Hasmukh manually cleared every self-registered learner overnight via the admin UI, leaving just the three Administrators (himself, Kenn, webmaster).

24 May 2026 · s2l.online

Vimeo nightly sync for s2l.online courses

Started as an explanation of the current manual Vimeo refresh workflow for s2l.online, then expanded into building and switching on a nightly automatic sync that mirrors how vodalibrary works, adapted to the s2l course-and-lesson shape.

24 May 2026 · s2l.online

Quiz page redesign

Hasmukh sent a screenshot showing the quiz page from yesterday's build looking unstyled, with options crammed onto a single line inside bare fieldset boxes. Investigated the cause, rebuilt the look from scratch, and shipped it. Pending Hasmukh's feedback on the new design.

24 May 2026 · s2l.online

Magic-link sign-in plugin for s2l.online

Hasmukh said he was not comfortable with the existing EP Membership password login on s2l.online and asked whether we could give learners the same vodalibrary.online experience, where you only need an email address to sign in.

24 May 2026 · General

System reminder banner question

Very short session. Hasmukh asked what the repeating banner at the start of each turn means. Explained in plain English that it is an internal note from the system listing my available tools, skills, and site notes, and that he can safely ignore it.

24 May 2026 · General

Pull request status message question

Hasmukh asked what the recurring "Pull request status couldn't be checked and may be out of date" message means. Explained that it is a Claude Code message about checking GitHub, not anything to do with the s2l.online website, and that it is safe to ignore.

23 May 2026, afternoon · Zoom Companion

Quick time check

Single-question session. Operator asked for the current date and time in South Africa, which was returned as Saturday, 23 May 2026, 16:46:47 SAST.

23 May 2026, afternoon · Zoom Companion

Session, 23 May 2026, Date query

Brief utility session. The user asked for the current South African date and time in the format yyyymmdd hh:mm:00. The answer returned was 20260523 16:48:00.

23 May 2026 · s2l.online

Lesson completion gate (95% watch rule)

Hasmukh raised a concern that learners can mark a lesson complete on s2l.online without actually watching the video. He asked how to stop that.

23 May 2026 · General

Date/time check

Very short session. Hasmukh asked for the current date and time in the format he normally uses. Returned Saturday, 23 May 2026, 18:45 SAST.

23 May 2026 · General

Date/time check (evening)

Very short session. Hasmukh asked for the current date and time in his standard format. Returned 20260523 21:49:36 (SAST). Separate from the earlier 18:45 SAST check on the same day.

23 May 2026 · s2l.online

Course quiz (check at the end)

Designed and shipped a "check at the end of a course" feature on s2l.online. Each course can now have an optional short multiple-choice quiz, learners take it after marking the last lesson complete, results are scored automatically, and the admin gets a report by course and by learner.

22 May 2026 · Vodacom

Vodacom progress report request

Hasmukh asked for a Vodacom FY2026 projects progress report. I asked which reporting window to use. He chose a custom date range but has not yet supplied the From and To dates. The report itself has not been generated yet, as the session is waiting on those dates.

22 May 2026 · s2l.online

home page logo

Hasmukh asked for the S2L logo to be more pronounced on the home page. After discussing placement, he chose to have the logo sit above the headline in the top banner, and asked that the previous look be reversible.

20 May 2026, evening · Zoom Companion

Session, 20 May 2026, Live participant-count dashboard

User asked for an HTML dashboard that shows how many participants are in a meeting, in the spirit of the Camera Monitor app, with an incremental number display to create excitement amongst the members.

18 May 2026 · Medilearn

Zoom Companion, Medilearn fork built and verified live

Picked up cleanly from the previous session's plan: build a parallel "Camera Monitor (Medilearn)" packaged app for the medilearn.africa Zoom tenant, distinct from the Mobilearn build that was shipped yesterday.

17 May 2026, afternoon · ConsciousCuisine

Session opened, no work done

Session opened with the standard ConsciousCuisine operating brief loaded. Hasmukh did not raise a task. Claude offered to help with content work (recipe drafting, copy edits, Ayurveda blocks, OG card descriptions) and waited for direction. No substantive discussion followed before the stop.

17 May 2026 · Zoom Companion

Zoom Companion, v0.10.0 dual-tenant attempt reverted, v0.11.0 broadcast overlay shipped

Resumed Camera Monitor work to action the v0.10.0 plan drafted at end of yesterday's session.

16 May 2026 · Zoom Companion

Zoom Companion, DEVLOG catch-up and v0.9.1 / v0.9.2 fixes

Hasmukh asked to resume work on Camera Monitor, noting that the latest was v0.9.0. On opening the project, package.json confirmed v0.9.0 and a v0.9.0 DMG was already built in dist/ (built earlier in the day), but DEVLOG.md and CLAUDE.md were both still stuck at v0.3.1 from 2026-05-11.

16 May 2026 · Zoom Apps

OBF cross-account support

Built OBF authentication so Camera Monitor can join meetings hosted by accounts outside Mobilearn. Operator authorises once via browser OAuth, bot then joins on their behalf. Shipped as v0.9.0 with updated operator guide. One open re-test on auth-required external meetings.

15 May 2026 · General

Website inventory

Quick session to pull the latest repo updates and produce a list of all websites currently running on the VPS.

15 May 2026 · Zoom Apps

Shape A polish and notifications

A long debugging arc on macOS notifications, then a polish run of three features: session reports in HTML / TXT / CSV written to ~/Documents/Camera Monitor Logs/ on Leave, a configurable “at least N seconds” notification threshold, and a snooze button with a live countdown. Camera Monitor v0.7.0 built and waiting for the morning test.

15 May 2026 · Zoom Apps

Footer fix and webinar support

Recovered yesterday's power-outage work in iCloud, rebuilt v0.3.1, then v0.3.2 to unhide the version footer that my own anti-popup CSS had been killing. Added webinar support: a paste-the-URL field auto-extracts meeting number, passcode and registration token (tk) from any Zoom URL and passes tk into client.join() only when set. v0.4.0 built.

12 May 2026 · General

Workflow rollout to five iCloud projects

Started as a quick walk-through of how the existing s2l session-log + publish routine actually works. The conversation expanded into a practical rollout: Hasmukh wanted the same routine running in his other working folders.

9 May 2026 · Vodalibrary

Vodalibrary privacy lockdown and in-page video player

Three big additions to vodalibrary.online today. First, an editable sign-in email: Hasmukh wanted a custom Mobilearn-branded preamble on every magic-link email, and now has an Admin Settings page where he can rewrite the subject and body himself any time.

8 May 2026 · Medilearn

Ethics page replicated, plus a long day of homepage fixes

Hasmukh asked for the live page at medilearn.africa/ethical-consideration-for-ai-in-healthcare-and-research-in-south-africa/ to be replicated as a draft on medistage.medilearn.africa.

7 May 2026 · Discovery AI

Discovery AI Phase 1, the resume after compaction

This session is the resume point after the previous conversation ran out of context and was compacted. Yesterday a great deal was built (the live mashiko.medilearn.africa reference site, two new transportable skills, a verified bio folder for Prof Setshedi), but in the wrong shape.

7 May 2026 · Docs site

Auto-publishing session logs after midnight

Hasmukh asked what is needed so that every session log is published to documentation.mobilearn.africa just after midnight SAST, including sessions that span across the midnight boundary.

6 May 2026 · Medilearn

Medistage Setshedi interview, the investigation phase

Medistage Setshedi interview, the investigation phase

6 May 2026 · Medilearn

Novamira connectors and a fresh PageMotor at medistage

Node.js LTS (v24.15.0) was installed via the official .pkg from nodejs.org, which Hasmukh ran himself (installer needed his Mac password). The Claude CLI was then installed into a user-local npm prefix at ~/.npm-global , deliberately not system-wide, so future updates do not need sudo.

5 May 2026 · Vodalibrary

Vodalibrary moves to vodalibrary.online

SendGrid domain authentication for vodalibrary.online followed: three CNAMEs added at domains.co.za, validated green at SendGrid. The sender address moved from library@vodalibrary.vodavideos.co.za to library@vodalibrary.online .

5 May 2026 · Vodalibrary

Vodalibrary announcements feature and dated outputs

The launcher always opens the most recent HTML in the folder, found by a simple newest-first list. Old files stay until Hasmukh archives them by hand, which keeps the history under his control.

4 May 2026 · Vodalibrary

Vodalibrary launch and bulk Vimeo tagging

Total over the day: 1,196 videos newly tagged with vodac . Running total in the account: 1,201. All operations went through /root/scripts/vimeo-fetch.py and Vimeo’s API on the server, so the API token never left the VPS.

3 May 2026 · Vodalibrary

Vimeo library export, viewer, and a refresh launcher

The full account on the day: 1,962 videos. Roughly 465 of those have descriptions on Vimeo; the rest are bare titles. The single tag VodacomFibre is the only fibre-related tag in the account.

3 May 2026 · s2l.online

A quick site health check

A quick site health check

3 May 2026 · s2l.online

Online Meetings course on s2l.online

The slug is zoom2020-english , language english , level free , status published , in line with the rest of the English catalogue. Both videos on Vimeo are public-embed, so no per-video embed authorisation was needed.

3 May 2026 · s2l.online

WhatsApp isiXhosa course, plus the login fix that let everyone see it

What was different this time was scale: ten lessons instead of six, and almost eighty minutes of content instead of twenty. Not a long form course by any stretch, but enough that putting the wrong order in front of a learner would be obvious.

2 May 2026 · s2l.online

A “you are human” check on the register page

Hasmukh first leaned toward reCAPTCHA on familiarity, then changed his mind: Turnstile’s lighter footprint and weaker data trail fit the s2l audience better. Decision: Turnstile. He created the keys at Cloudflare and shared them.

2 May 2026 · s2l.online

Discovery plugin check on s2l.online

Discovery plugin check on s2l.online

1 May 2026 · Medilearn

medilearn.africa rebuild kickoff

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.

1 May 2026 · s2l.online

A short blog page sanity check

A short blog page sanity check

1 May 2026 · Docs site

Automatic publishing of daily session logs

The start-of-session check looks for any previous-day log that has not yet been published. If it finds one, it asks Claude to publish it as a permanent page on the documentation site, including a mention on the /overview/ index in the same run. If there is nothing to publish, it stays silent.

1 May 2026 · s2l.online

Course deletion no longer reloads the admin

A small but irritating UX bug in the EP Courses admin. Deleting a course used to fire window.location.reload(), which bounced the admin back to a top-level view and lost whichever tab or filter had been open. Deletion now removes the row in place with a soft fade, leaving the rest of the screen untouched. Two-file change, one in js/ep-courses.js and one in plugin.php, with a JS cache-bust so the new behaviour lands immediately. Timestamped server-side backups of both files.

30 April 2026 · s2l.online

A SARS isiXhosa course built from Vimeo videos

A free six-lesson SARS course in isiXhosa goes live on s2l.online, built end-to-end from existing Vimeo recordings. One new course row in pm_ep_courses (slug sars2isixhosa, level free, six lessons, ~21 minutes total), six lesson rows wired to their Vimeo ids and lesson durations, lesson titles kept in isiXhosa exactly as supplied. The course is reachable at /sars2isixhosa/ and visible without an account.

29 April 2026 · s2l.online

Lesson description on the watch page

A short follow-up to the 27 April lesson-description work. The description was live but only on the course landing page; from today it also renders on the watch page, in a soft grey panel between the lesson title and the video, so a learner sees the context before pressing play. Re-uses the existing per-language translation helper, so an isiXhosa learner will see an isiXhosa description if one is written. Two-file change — a few lines in plugin.php and a small block in ep-courses-frontend.css — with timestamped server-side backups kept of both files.

28 April 2026 · General

A working journal, started

An organisational session, not a code one. Set up a top-level sessions-log/ folder in the s2l-assistant project, agreed a four-section format for every entry (summary, decisions, changes made, follow-ups), wrote a short README to explain the convention, and committed the first entry same-day. From now on every working session ends with a dated Markdown file capturing what was decided and why — the local notes that sit underneath the polished docs pages.

27 April 2026 · s2l.online

A short description under every lesson on s2l.online

A small, well-shaped change to EP Courses: every lesson can now carry a one-or-two-line short description, edited in the admin (next to the title), translated per language, and rendered under the lesson title on every course landing page. End-to-end work across five layers — database column, admin editor, save handler, frontend markup, frontend CSS — with the existing translation system honoured throughout. Lessons without a description render exactly as before, so nothing visually breaks for content not yet enriched.

27 April 2026 · s2l.online

Blog page added, then a new SARS course on s2l.online

Two pieces of work in one day. Morning: stood up a blog on s2l.online — refreshed the existing /blog page from a Coming Soon placeholder into a card-based post listing, added a Blog link to the desktop and mobile menus, seeded a friendly first post. Afternoon: built a brand-new English course called SARS2s2L from two Vimeo videos tagged S2LSARS, wired the course landing page, and surfaced the course on both the English Courses page and the home page. Includes one good scar around an over-eager REPLACE.

26 April 2026 · s2l.online

Login-loop fix, two languages hidden, and the new S2L logo dropped into the header

The login loop was not a loop. Auth was working; the home page nav simply did not change with login state, so users assumed registration had failed. Added a [member-nav] shortcode to EP Membership, swapped three nav locations to use it, and fixed an unrelated braces bug on the profile page. Same day: hid the isiNdebele and Tshivenda language pages until their courses are ready, and dropped the new S2L logo into the site header beside the “Something to Learn Online” wordmark.

25 April 2026 · s2l.online

Private content reviewer built on the SA VPS

New self-hosted reviewer at reviewer.s2l.online. Static HTML, React via CDN, Bunny Fonts, basic-auth per user, Let’s Encrypt cert. Hasmukh’s page is live with the S2L preamble and a 9-channel grid.

25 April 2026 · s2l.online

SARS course, learner auth wired up, email migrated to mobilearn.africa

Built the SARS eFiling course on s2l.online from a Vimeo folder, finally wired the register and login pages to the EP Membership shortcodes, migrated SMTP off Kenn’s domain, added an SPF record, and fixed the long-running lesson drawer bug.

23 April 2026 · MobiLearn CPD

CPD activity funnel for MobiLearn, plus the wifi course on s2l.online

Built the six-stage activity funnel for cpd.medilearn.africa and added a wifi-skills course to the s2l home page.