21Million Academy
Piattaforma di corsi di finanza con video protetti, che sostituisce WordPress e LearnDash con un backend su misura.
- Online su
- 21million.it
- Tecnologie
- Astro, Node.js, PostgreSQL, VdoCipher, Coolify
- Area
- Software

Il punto di partenza
21Million Academy è una piattaforma di corsi di finanza. Girava su WordPress con LearnDash per i corsi, BuddyBoss per la community e VdoCipher per i video protetti. Per far funzionare l’app mobile avevamo già scritto un plugin ponte, perché le API di LearnDash non davano né i progressi dell’utente né l’accesso protetto ai video.
Ogni funzione nuova significava un plugin in più da aggiornare e un altro punto da cui poteva rompersi qualcosa. L’obiettivo era togliere WordPress senza che gli iscritti se ne accorgessero: stessi corsi, stessi progressi, stessa password.
Cosa abbiamo fatto
Abbiamo scritto un backend in Node.js con database PostgreSQL che gestisce corsi, lezioni, iscrizioni, progressi, certificati e community. Le sue API ricalcano una per una quelle del plugin ponte: all’app è bastato cambiare l’indirizzo del server, senza toccare il codice.
Per portare fuori i dati da WordPress non abbiamo chiesto l’accesso al database. Uno script crea un frammento di codice temporaneo sul sito, scarica password cifrate, iscrizioni e progressi, e poi lo cancella. Anche gli identificativi di WordPress sono rimasti gli stessi, così ogni link e ogni riferimento dell’app punta ancora alla risorsa giusta.
Le password non sono state reimpostate. Al primo accesso il backend verifica la password nel vecchio formato di WordPress e la riscrive in un formato più sicuro (bcrypt). Chi entra non nota niente.
Il sito pubblico è in Astro: pagine statiche per catalogo e schede dei corsi, e un’area riservata per seguire le lezioni. Il server web gira al backend le chiamate delle API, sullo stesso dominio.
Durante il passaggio WordPress è rimasto acceso in sola lettura, per poter tornare indietro in qualsiasi momento.
Com’è fatto
- Backend Node.js ed Express, database PostgreSQL
- Sito Astro servito da nginx
- Video VdoCipher con codice di visione valido 5 minuti, chiesto dal server solo per chi è iscritto
- Filigrana in movimento con l’email di chi guarda, contro la condivisione degli account
- Accessi con token a scadenza breve e limite ai tentativi di login
- Community con bacheca, membri, messaggi e notifiche
- Pubblicazione con Coolify a ogni modifica del codice
Risultato
Il sito gira sul nuovo sistema: 47 corsi e 849 lezioni vivono ora in un database nostro, insieme agli iscritti e ai loro progressi. I contenuti a pagamento sono protetti a ogni passaggio: chi non è iscritto a un corso non riceve né la lezione né il codice per vedere il video. Sito e app usano le stesse API e gli stessi account, e anche la pagina privacy dichiarata negli store è rimasta allo stesso indirizzo.