Cloudflare R2 · D1 · SW
Almacenamiento de objetos gratuito (10 GB) para audios con URL pública; D1 (SQL) para la comunidad — follows, reacciones, escuchas y avisos — y un service worker para servir la web offline y con precarga.
Miniapp de risa liberadaRisa liberada miniapp
Introduce el código que te dio el bot — escribe /entrar aEnter the code the bot gave you — write /entrar to
@RisaLiberadaBot y pulsa «Código por el bot».and tap “Code from the bot”.
En movimientoIn motion
Cultura
Reír en grupo es tan viejo como la humanidad, pero convertirlo en ejercicio es reciente: en 1995, el médico Madan Kataria fundó en un parque de Bombay el primer club de la risa con cinco personas. Hoy hay miles en más de cien países.
Del bufón medieval al clown hospitalario, de las comedias del arte a los memes: cada cultura ha guardado un rincón sagrado para la carcajada compartida.
Ciencia
La ciencia que estudia la risa tiene nombre —gelotología— y bastantes datos. Reír no cura, pero mueve el cuerpo por dentro de forma medible.
Hay incluso estudios que distinguen tipos de risa —de cosquillas, de broma, de alegría— y ven que activan zonas distintas del cerebro. Puedes escuchar sus muestras reales en la playlist «Risas del mundo».
Hackeando
Esto es código abierto y se replica en una tarde: clona el repo, lee el estándar, lanza tu propio bot con tu bucket y tu canal. Y si lo tuyo es inventar —bot, web, IA, diseño—, hay sitio para ti: el repo y el grupo están abiertos, entra, prueba, propón.
Techs
Piezas pequeñas, estándares abiertos y coste cero: el proyecto corre sin servidor propio y cualquiera puede montar el suyo. Este sistema se replica al pie de la letra.
Almacenamiento de objetos gratuito (10 GB) para audios con URL pública; D1 (SQL) para la comunidad — follows, reacciones, escuchas y avisos — y un service worker para servir la web offline y con precarga.
La web es un solo HTML servido desde un repositorio público; un cron de GitHub Actions llama al bot cada 5–10 minutos para vaciar la cola de subidas.
El bot recibe notas de voz, las normaliza con ffmpeg y las publica en el canal y en risa.json.
El asistente de IA con el que se desarrolla: escribe, valida y despliega este mismo código desde la terminal.
Tu perfil liberadaYour liberada profile
Cómo compartías tus risas, cómo lo haces hoy y hacia dónde va tu perfil.How you shared your laughs, how you do it today, and where your profile is going.
Tu página de autor dentro de risa: un enlace largo que solo mostraba tus risas de esta app.Your author page inside risa: a long link that only showed your laughs from this app.
⤓ Descarga Risa v1 · Nick as tag⤓ Download Risa v1 · Nick as tagEl perfil de la demo, ya con su subdominio: redirige a su perfil agregador con risas, amores y alias.The demo profile, already with its subdomain: it redirects to her aggregator profile with laughs, loves and aliases.
usa.liberada.net — tour del subdominio ↗usa.liberada.net — subdomain tour ↗Un perfil de desarrollo: bio extendida, juega y filtra — la actividad de tus otras apps en tu nuevo perfil.A development profile: extended bio, play and filter — the activity of your other apps in your new profile.
La versión mini: un único prompt que convierte a un agente (IA) en el encargado de montar todo el sistema en tu proyecto. Cópialo, pégaselo y supervisa el resultado.
Rol: asiste a montar el proyecto «mi proyecto», inspirándote en el proyecto libre github.com/floveorg/risa. Objetivo: sistema completo — subida de audio · vídeo por Telegram → moderación → publicación en canal + feed web. Sin servidor propio. Datos: - Bot: @TuBot — cron Actions 5–10 min - Contenido: audio · vídeo - Feed: risa.json · newest-first - Campos por pieza: título · etiquetas · autor. Requisitos (release completa): piezas ≤ 1 min · ≤ 10 MB · máx. 5 en cola y 5 al día · CC BY-SA 4.0 («Enviar = consentir», tag «libre») · página de autor #/u/<key> con feed propio · comandos de solo lectura /me · /stats · /profile · /status · /queue · /latest · /now · /today · /since · /random · /trending · /play · etiquetas → chips · búsqueda · favoritos (filtro local) · entrada por deep link + QR · repo dedicado con Pages · feed risa.json newest-first. Pasos: 1. Clona el repo de referencia; estudia bot/, index.html, risa.json y .github/workflows. 2. Pide y valida los secretos (BOT_TOKEN, CHANNEL_ID, MOD_GROUP_ID, credenciales R2) antes de usarlos. 3. Configura GitHub Actions como cron que llame a getUpdates cada 5–10 minutos. 4. Monta el feed risa.json y la web en GitHub Pages. 5. Verifica de punta a punta con una prueba real de audio · vídeo. Permisos: leer/escribir el repo del proyecto, instalar dependencias de Node, desplegar Pages y Actions. Nada fuera del repo; confirma antes de crear credenciales. Restricciones: sin servidor ni base de datos propios; piezas gratuitas (R2, Pages, Actions); respeta la privacidad (nunca guardar ids de Telegram en claro). Responde en español.
El flujo completo, paso a paso:
risa.json y la web, todo en un solo repo.La v1 ya trae esto funcionando, feature a feature, y cada pieza está escrita para una sola cosa: sin build, sin servidor y sin coste. Lo que queda se vive en la pestaña Desarrollo (v2).
risa.json) como fuente de verdad de la webfloatChips)#/u/<key> con su propio feedparent) con conectores visuales y etiqueta del autor respondidousername.liberada.net solo con «Sí, quiero» tras publicar (nunca automático)liberada.net/usa/<username>/ unifica risas + amast.me/RisaLiberadaBot para escaneargetUpdates (ni pérdidas ni duplicados)@username)parenthasAncestor() impide A→B→…→Affmpegrisa.json (git como base de datos)parseUpdates es una función puramigrate-r2.mjs y sync-media.mjs/me · /stats · /profile · /status · /queue/latest · /random · /now · /since · /today · /trending/play (recorre el feed, el mismo que la web)/entrar (miniapp) · /mejorar (novedades) · /name (nombre público) · /usuario (subdominio) · /pub (mostrar @)#/u/<key> automáticamentetimeAgo)risa.json versionado: id, t, name, tags, src, when, tg, key{flag, clips}flove.json se ignoranflove.json enriquece sin interrumpir: timeout de 4 s y fail-silentrisa.json es la verdad; flove.json solo añade, nunca al revésmigrate-r2.mjssync-media.mjs (idempotente)node --test: 91 verdes sobre la lógica del bot y de la webrisa.js corre igual en la web y en Nodenode --check en todos los archivosplan-v2.md del estándarprefers-reduced-motion respetado (animaciones off)aria-label y roles en los controles importantesalt descriptivo en todas las imágenesloading="lazy") de imágenespreload="none" (no descarga hasta reproducir)La guía técnica completa — flujos subir/moderar/escuchar, modelo de datos (risa.json), identidad y privacidad, hosting y licencia — vive en el estándar RisaLiberada v1. Resumen de un párrafo: un bot de Telegram recoge notas de voz, un grupo humano modera, y todo lo aprobado acaba como MP3 en Cloudflare R2 con su entrada en risa.json; la web solo lee el feed.
Risa v1
Código abierto, sin servidor, sin coste. Clona el repo, lanza tu bot y empieza a publicar risas en una tarde.
El desarrollo continua con estas mejoras (añade al plan si no están ya):
liberada v2 no se instala al lado de liberada v1: se enciende encima. Cada novedad aterriza sobre la etapa de liberada v1 que potencia, y la web sigue leyendo el mismo risa.json.
Risa es autosuficiente: la web carga siempre su propio risa.json. Después, y solo después, hace una llamada opcional a flove.json que enriquece cuando responde y calla cuando no:
flove.json falla (404, timeout, CORS), la web queda exactamente igual: sin enlaces, sin esperas, sin bloquear el feed.risa.json es la verdad del feed; flove.json solo añade. Nunca al revés.flove.org/users/<key>/): ahí ves tus risas y al lado puedes activar Lovy ya autenticado — mismo authy, sin volver a loguearte.El detalle completo vive en los planes del estándar y del repo:
Ohm
La carcajada no pide traducción: se entiende antes que las palabras. Esta sección es una introducción a la risa como puente — una pausa compartida que nos acerca a quienes ríen con nosotros y a lo que nos hace humanos.
🎬 La risa, un idioma universal
Promotores
Reír sola está bien; reír en grupo es otra cosa. Busca un club de la risa cerca, monta uno en tu portal con tres amigos, o simplemente pasa esta página a quien haga tiempo que no se ríe.
…
Envía tu risa como nota de voz a nuestro bot de Telegram. Un par de moderadores la revisan y, si entra, suena en la web. Al enviarla la publicas en libre, bajo CC BY-SA 4.0, con el nombre que elijas o anónimo. 💛Send your laugh as a voice note to our Telegram bot. A couple of moderators review it and, if it's in, it plays on the web. By sending it you publish it free, under CC BY-SA 4.0, with the name you choose or anonymous. 💛
Abrir TelegramOpen TelegramTu respuesta se publica justo debajo del clip, como hilo.Your reply is published right below the clip, as a thread.
— reenvía este clip a nuestro bot (@RisaLiberadaBot) y tu nota de voz se publicará como respuesta. Puedes añadir título y etiquetas antes de enviar. 💛 — forward this clip to our bot (@RisaLiberadaBot) and your voice note will be published as a reply. You can add a title and tags before sending. 💛
Abrir el botOpen the botTus datos se insertan solos en el prompt de «Agentes», en la introducción. Cambia lo que quieras y pulsa «Generar prompt».Your data is inserted into the “Agents” prompt automatically, in the intro. Change what you want and press “Generate prompt”.
Accede a tu perfil liberada para ver todas tus risas juntas. Edítalo desde su botón de Editar allí si entras.Access your liberada profile to see all your laughs together. Edit it from its Edit button there if you enter.
Gratis!Free!
Ven aquí desde tu miniapp en Telegram o dale a Activar y sigue los 2 pasos siguientes (fácil).Come here from your Telegram miniapp or tap Activate and follow the next 2 easy steps.
<tu-nombre>.liberada.net para compartir todas tus risas con un enlace corto.— your profile at <your-name>.liberada.net to share all your laughs with a short link.