Ogni idea. Ogni schermo.
Crea un'app radio in un pomeriggio.
mHub è una piattaforma aperta che trasforma cartelle di semplici file e normali siti web in app per smartphone, TV e desktop. Non serve saper programmare: se sai descrivere quello che vuoi, un'IA può costruirlo, e mHub gli dà un posto dove girare.
Una piattaforma, tre parti.
mHub non è una sola app. Sono tre parti che si incastrano, e ognuna è aperta. Due sono le basi: un formato per i contenuti e un'API per il browser. La terza sono le app, e ognuna poggia su una delle due basi o su entrambe.
Le app
Quello che usi davvero. Vuma trasforma gli addon in un'unica schermata da esplorare, e le altre app portano ciascuna un'idea su ogni schermo di casa. Sono tutte web app: niente da installare. Scopri le app
I contenuti: gli addon
Un addon è una fonte di contenuti: film, stazioni radio, podcast, corsi. Dietro le quinte è una cartella di piccoli file di testo su un qualsiasi web host, descritta dall'Addon Protocol v2. Un'IA può scriverne uno per te. Scopri il protocollo
I poteri: window.mhub
Apri un normale sito web dentro un'app mHub e potrà fare cose che un browser non permette mai: leggere dati da qualsiasi fonte, sopravvivere a un dominio morto, vivere sulla tua TV. Un namespace, un tag script: la mHub Browser API. Scopri l'API
Le nostre preferite. Tutte online.
Vuma poggia su entrambe le basi; le app accanto mostrano fin dove arriva una base da sola. Cinque app, cinque idee diverse, e ognuna è un punto da cui partire.
Vuma
Dai a Vuma degli addon e li trasforma in un'unica schermata da esplorare: ogni catalogo che i tuoi addon espongono, la ricerca su tutti, una libreria, un player che riprende da dove hai interrotto. È una sola web app che gira su smartphone, TV e desktop, e gestisce da sé touch, telecomando e puntatore.
Poggia su entrambe le basi: gli addon portano i contenuti, e dentro un browser mHub la Browser API aggiunge i poteri che una pagina normale non ha mai. Puoi persino montarla su una tua pagina, con i tuoi addon e il tuo nome: un solo file HTML.


Waves
Stazioni radio, podcast e audiolibri gratuiti in un'unica app. Waves è un solo file HTML sulla stessa build di Vuma: cinque addon audio, un colore d'accento verde acqua e addonManager: "fixed", così le fonti sono fisse e l'utente può solo attivarle e disattivarle. Guardane il codice sorgente: la pagina è l'intero tutorial.
Junior
TV per bambini. Un solo addon, colori vivaci, tedesco dalla prima schermata (locale: "de") e addonManager: "hidden": niente da configurare male dal divano. Anche questa è un file HTML sulla build di Vuma.
Mediathek
L'addon sono i dati; quello che qualcuno ci costruisce sopra è l'app. Mediathek è un file HTML direttamente sull'addon ard-mediathek, senza Vuma sotto: righe, ricerca, serie con i loro episodi, sottotitoli e un player che ricorda dove hai interrotto. L'addon recupera i dati, la pagina pensa all'aspetto.
Glance
L'altra base, da sola: Glance non usa nessun addon. Un file HTML sulla Browser API, che porta meteo in tempo reale, notizie, prezzi di mercato e lo stato dei tuoi server su un'unica schermata tranquilla. In un browser normale perde qualche funzione senza rompersi; dentro un'app mHub ogni riquadro si risveglia.
Un'idea, una cartella, ogni schermo.
Tutto ciò che ha un elenco può diventare un addon, e tutto ciò che un browser si rifiuta di fare può diventare un sito dentro mHub. Queste sono idee che ci piacerebbe veder realizzate, e ognuna è a un prompt di distanza: scegline una e finisce nel prompt per l'IA più in basso.
Guarda
La tua TV regionale
Ogni trasmissione che l'emittente mette online, in righe per programma, con il telegiornale della sera per primo.
Un festival del cinema
Il programma con trailer e sinossi, da sfogliare per giorno, sala e sezione.
Cinema muto
Film di pubblico dominio dall'Internet Archive, ordinati per decennio e regista.
La tua squadra del cuore
Highlights, partite intere e il calendario della stagione come catalogo sempre aggiornato.
Webcam della città
Le webcam pubbliche di una città, il porto, la piazza, la montagna, come canali in diretta.
Il consiglio comunale
Registrazioni e dirette del consiglio comunale, per seduta e punto all'ordine del giorno.
Ascolta
Le tue stazioni radio
Le dieci stazioni che ascolti davvero, con i loghi, nell'ordine che preferisci.
Una rete di podcast
Ogni programma di una rete dai suoi feed RSS, con gli episodi più recenti per primi.
Audiolibri per autore
Le registrazioni LibriVox di un autore, i capitoli come episodi, da riprendere dove hai interrotto.
Storie della buonanotte
Brevi storie audio per bambini, con una copertina tranquilla per ogni storia e senza pubblicità.
Una comunità religiosa
Le funzioni e gli incontri della tua chiesa, moschea o comunità, in diretta e registrati.
L'app di una stazione radio
Waves, con gli stream e i podcast di una sola stazione e i suoi colori. Un file HTML.
Impara
Le lezioni di un'università
Le registrazioni delle lezioni pubbliche, per facoltà e semestre, sulla TV invece che sul portatile.
Un corso di lingua
Le lezioni come episodi, in ordine, con gli esercizi audio accanto ai video.
Visite al museo
Le guide video e audio di un museo, sala per sala.
Scuola di cucina
Video di ricette per portata e tipo di cucina, con gli ingredienti nella descrizione.
Un browser per archivi
Un volto amichevole per Archive.org o Project Gutenberg: sfoglia, cerca e leggi come in un'app.
I talk di una conferenza
Ogni talk registrato di una serie di conferenze, per anno e track.
Casa e famiglia
Uno schermo per la famiglia
Meteo, notizie e il prezzo delle cose che ti interessano, in un'unica schermata tranquilla. Questa l'abbiamo costruita noi: è Glance.
Pannello di controllo di casa
Luci, NAS, stampante, router. I browser rifiutano richieste locali di questo tipo; l'app mHub le fa per te.
Parete di telecamere
Le tue telecamere, dalla rete locale, in una griglia sulla TV.
La cornice digitale di famiglia
Le foto dal tuo server come catalogo di immagini: la TV diventa la cornice.
I cartoni di un canale
Gli episodi gratuiti di un canale per bambini, per programma, da lasciare ai piccoli senza pensieri.
Strumenti
Un lettore di notizie
Prendi qualsiasi feed direttamente dalla fonte. I browser normali lo bloccano; dentro mHub funziona e basta, e si legge bene dal divano.
Un controllo prezzi
Controlla prezzi e disponibilità nei negozi, tieni d'occhio una lista di prodotti, vedi la risposta su qualsiasi schermo.
Bacheca di stato dei server
Le tue macchine, i loro dischi e servizi, come riquadri che diventano rossi prima che qualcuno chiami.
Un canale YouTube, risolto
Un addon resolver: incolla un canale, ottieni i suoi video come catalogo riproducibile.
Sottotitoli per una lingua
Un addon di sottotitoli per una lingua, che risponde per id imdb, da una fonte di sottotitoli aperta.
Dove vedere un titolo
Scrivi un film e scopri dove lo trovi nel tuo paese. Un addon di elementi sopra un database aperto.
Ne hai creato uno? Pubblicalo su mhub.mx: lo revisioniamo, lo ospitiamo a tuo nome e lo mettiamo nel repository della community.
La tua app è un solo file HTML.
Waves e Junior sono esattamente questo: carica la build di Vuma, dalle un elemento, chiama mount. Questo file, su qualsiasi hosting statico, è un'app finita con i tuoi addon, il tuo nome e i tuoi colori, e segue da solo le release di Vuma. Nessuna build, nessun codice server, nessun account.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover, user-scalable=no">
<title>My App</title>
<link rel="stylesheet" href="https://vuma.mx/latest/style.css">
</head>
<body>
<div id="app"></div>
<script type="module">
import { mount } from "https://vuma.mx/latest/app.js";
mount({
addons: [
"https://www.mhub.mx/radio-and-podcasts",
"https://www.mhub.mx/public-domain",
],
brand: { name: "My App", colors: { accent: "#00AAFF" } },
});
</script>
</body>
</html>
Un addon è l'URL del suo manifest. Quelli ospitati qui sono elencati nell'indice degli addon, e un'IA può costruirtene uno nuovo.
Ogni opzione di mount, e da dove arrivano i file, è documentata nell'app stessa: Come creare la tua app. La guida è inclusa nella build, quindi descrive la versione che stai per caricare e non quella su cui è stata scritta questa pagina.
Un addon è una cartella di file JSON.
Un addon è una fonte di contenuti: film, stazioni radio, podcast, ricette, corsi. Metti la cartella ovunque sul web, aggiungi il suo indirizzo in un'app, e tutto quello che contiene compare lì, pronto da esplorare. La versione 2 del protocollo non ha bisogno di un server: ogni endpoint può essere un file statico su qualsiasi CDN. Ogni addon v1 esistente continua a funzionare; le app traducono tra le due versioni, e la v1 resta supportata.
Statico prima di tutto
Tutti gli endpoint sono GET, tutti memorizzabili in cache, tutti ospitabili come semplici file. Un solo POST facoltativo per il sistema dei task.
/mhub-addon.json /catalog/{type}/{catalogId}.json /item/{type}/{id}.json /source/{type}/{id}.json
Componibile
Cataloghi, dettagli degli elementi, fonti, resolver e sottotitoli sono risorse separate. Un addon può fornirle tutte o una sola.
"resources": ["catalog", "item", "source", "resolve", "subtitle"]
Task client-fetch
Un endpoint può rispondere con un task invece che con i dati. L'app fa la richiesta con l'IP dell'utente, così un addon statico funziona anche con API soggette a blocchi geografici.
// l'addon resta statico,
// la richiesta la fa il client
mhub-addon.json
Un addon minimo è un manifest e un file di catalogo. Caricali entrambi su un qualsiasi hosting statico e funziona. La specifica è OpenAPI 3.1, con tipi TypeScript generati e una libreria client senza dipendenze, con licenza MIT, su GitHub.
{ "id": "my-movies", "name": "My Movies", "specVersion": 2, "resources": ["catalog"], "types": ["video"], "catalogs": [{ "id": "all", "name": "All", "type": "video" }] }
Descrivilo. Un'IA lo costruisce.
L'intero formato degli addon sta in un solo prompt, e non devi mai leggerlo. Copia il prompt, aggiungi la tua idea, e l'IA risponde con una cartella di file. Caricali ovunque e il tuo addon è online.
Copia il prompt
Indirizza l'IA alla specifica. Funziona con qualsiasi assistente che sappia leggere i link, come ChatGPT o Claude.
Aggiungi la tua idea
"Le mie stazioni radio preferite." "Tutti i film di un regista." "Le lezioni pubbliche della mia università." Qualsiasi cosa che abbia un elenco.
Carica i file
Va bene qualsiasi hosting statico, GitHub Pages è gratuito. Aggiungi l'indirizzo in un'app mHub ed esplora il tuo addon.
Leggi la specifica mHub Addon Protocol v2 all'indirizzo
https://raw.githubusercontent.com/mediahubmx/protocol/main/openapi.yaml
e costruisci un addon per me. Un addon è una cartella di file JSON statici,
pronta da caricare su qualsiasi web host. Rispondi con ogni file: il percorso completo,
poi il contenuto integrale.
Il mio addon: [descrivi qui la tua idea]
Se il tuo assistente non riesce ad aprire i link, incolla direttamente nella chat il file della specifica. La specifica e addon di esempio completi si trovano su GitHub.
Cosa può fare il tuo sito dentro mHub
Tutto sta sotto un unico namespace: window.mhub, e ogni host offre il core completo. Verifica una volta che il namespace esista, poi chiamalo e basta. Nessun SDK, nessuna build, nessun account: un tag script è tutta la configurazione, e puoi anche ospitarlo tu.
- Host
- …
- Dispositivo
- …
- Funzionalità
- …
L'API è attiva nelle app e arriva con i loro aggiornamenti. Scrivi il codice oggi e la tua pagina funziona in ogni caso: dove non c'è un host, window.mhub semplicemente non esiste e il tuo sito resta un normale sito web. Scarica un browser che la supporta.
mhub.fetch
Recupera qualsiasi cosa. Niente CORS, e header di richiesta che il browser normalmente riserva a sé.
// cross-origin, leggibile const r = await mhub.fetch(url);
mhub.openStream
Alcuni media hanno bisogno di header di richiesta propri per essere riprodotti. Una chiamata, e l'host sceglie la strada giusta su ogni piattaforma.
const s = await mhub.openStream( { url, headers }); video.src = s.url;
mhub.storage
Archiviazione chiave/valore che segue il tuo sito, non il dominio su cui si trova a girare. Nessuna richiesta di permesso, nessuna configurazione.
await mhub.storage.set(k, v);
mhub-site.json
Un dominio va giù, il tuo sito si carica comunque. Metti un piccolo file su ogni dominio; il browser lo trova, verifica i tuoi mirror e passa da solo a uno funzionante. Nessun codice.
{ "id": "mysite", "endpoints": [ "https://a.example", "https://b.example" ] }
mhub.setLinks
Un riquadro nella schermata home del browser. La strada per tornare al tuo sito, che resta tra una visita e l'altra.
mhub.setLinks([ { id, name, icon, url }]);
mhub.setSearch
La barra degli indirizzi diventa la ricerca del tuo sito. Query e suggerimenti arrivano direttamente alla tua pagina.
mhub.setSearch({ placeholder, onQuery, onSuggest });
mhub.device + capabilities
Sai dove stai girando e cosa sa fare l'host, dallo smartphone alla TV, prima ancora del primo rendering.
if (mhub.device.isTV) tvUi();
…e le dichiarazioni dell'app
Una pagina che gira come app dice all'host cosa gestisce da sola: la propria navigazione indietro (setBackHandler), un player a schermo intero (setImmersive) e l'uscita (exit); un meta tag nell'HTML dice che è un'app pensata per il telecomando. Ogni membro, con il modello dei permessi e il sistema dei mirror, è nel riferimento dell'API.
mhub.setBackHandler(depth); mhub.setImmersive(true); <meta name="mhub" content="app dpad">
Pubblicati da persone come te.
Finora 56 addon della community, opera di 31 autori. Accedi con la tua email, carica una cartella come zip o collega una che ospiti tu, e una volta superata la revisione il tuo addon vive su mhub.mx/@you/addon, nell'elenco della community e nel suo repository.
Costruisci qualcosa. Grande o piccolo.
Il riferimento dell'API copre ogni membro, il modello dei permessi e il sistema dei mirror. La specifica del protocollo include addon di esempio completi da copiare.
Internet Archive
RTVE