Corporate learning
An LMS stuck on PHP 5.6 that now ships a release every week.
The background
Kampus is a corporate learning platform used by companies, schools and training bodies in Chile. It worked — and that was exactly the problem: it had worked for years without anyone being able to touch it with any confidence. The LMS ran on PHP 5.6, a version out of support since 2018, spread across nine applications solving pieces of the same job. And the code, along with the entire deployment chain, lived on an outside vendor’s infrastructure.
Nobody moves house with the house full of people inside. That is exactly what had to be done here.
The challenge: moving Kampus to AWS without switching it off
A learning platform has no quiet hour. Someone is always sitting an assessment, uploading material or downloading their certificate. There was no weekend window to switch everything off, move it and turn it back on: each piece had to be replaced with the platform running, and put back if anything went wrong.
So it went in stages. First, taking back what was theirs: the code and the deployment chain returned to the owner’s hands, with their own keys. Then, no longer depending on anyone’s memory — the whole cloud was described in files that can be read, reviewed and reapplied the same way tomorrow as in two years’ time; servers stopped being configured by hand and started coming up ready from an image; and every database change went in with its rollback written before it was applied.
Only then was the engine replaced: the LMS moved to PHP 8.5 and a modern framework, and the nine applications were consolidated into four. The old version kept serving traffic until the very last day.
The most delicate part was sign-in. Moving authentication to Amazon Cognito without asking anyone for a new password: the first time someone signs in, their password is checked against the old system and recorded in the new one. It did not work on the first attempt — the first one was rolled back the same day, when the new system’s password rules started rejecting old passwords that were perfectly valid. The final cutover went in weeks later, with that rule adjusted and the rollback lever tested beforehand. Users never knew they had changed systems, which was precisely the point.
Certifi-K: the certificate that verifies itself
A training certificate is worth little if whoever receives it cannot check that it is genuine. Certifi-K solves that: each institution builds its certificate with its own design and decides who signs it, and the document is signed cryptographically — not with a picture of a signature pasted on top. Change a single character of the file and the signature stops validating.
Every certificate carries a code and a QR that lead to an open page, where an employer or an auditor confirms that it exists and whose name is on it, with no account and no password. Signing runs apart from the rest of the platform and the document is kept in private storage, never in a public folder.
What the platform carries
Kampus is not a course catalogue: it is a suite where each institution enables the modules it needs.
- LMS — courses, learning paths, cohorts and enrolments, with SCORM content and staged release.
- Evalúa+ — assessments, grading and reassignment.
- Drive+ — a material library per institution, with permissions by role.
- Poll+ — satisfaction surveys.
- Certifi-K — certificates with digital signatures and public verification.
- Metas and Bitácora — performance management: goals per person and a record of the conversations.
- Chart+ — reporting and org charts, with heavy exports generated in the background.
For technical training bodies, the platform also reports e-learning course attendance to the SENCE register: the filing that decides whether the Chilean training tax credit can be claimed.
How it runs today
Kampus ships a release a week, in a fixed, announced window, after passing through a staging environment on the same deployment chain. The platform watches itself: logs are centralised and there is a public status page, so when something breaks the alert arrives before the client’s email does.
The public site was rebuilt separately, in Next.js and in two languages, decoupled from the LMS. It is the same kind of work we offer as custom development.
Where it stands today
Kampus runs on AWS on the rebuilt foundation, with weekly releases and federated sign-in already available to institutions that run their own corporate directory. The work continues: payments, moving heavy media onto a content delivery network, and the satellite applications still waiting their turn.