Skip to content

Publicar: la persona elige el nombre de su app - #147

Merged
ErickUser1 merged 1 commit into
mainfrom
feat/nombre-al-publicar
Oct 21, 2026
Merged

ErickUser1 merged 1 commit into
mainfrom
feat/nombre-al-publicar

Conversation

@ErickUser1

Copy link
Copy Markdown
Owner

Qué cambia

Hasta ahora la app publicada quedaba con el id de la sala como nombre, por ejemplo vibe-fiesta-45.pages.dev. Ahora el panel de publicar tiene un campo "Nombre de tu app":

  • arranca con el nombre de la sala, o con su id si no tiene nombre;
  • debajo muestra en vivo cómo queda la dirección, por ejemplo mi-tienda-de-cafe.pages.dev.

Reglas

  • El nombre solo se elige antes de la primera publicación. Cloudflare no deja renombrar un proyecto, y cambiarlo después dejaría el link viejo congelado o roto. Las salas que ya estaban publicadas se quedan con su id, y republicar no cambia el nombre.

  • El texto se limpia antes de usarlo. nombreDeApp() (en engine/publicar.ts) lo convierte en algo que sirve como subdominio: quita acentos, pone guiones y lo corta a 58 caracteres. El server lo vuelve a filtrar siempre.

  • Dos salas no pueden tener el mismo nombre, porque se pisarían el proyecto en Cloudflare. Se revisa contra:

    • la base de datos;
    • el id de las salas viejas que ya publicaron;
    • las salas que se están publicando en ese momento.

    Si choca, el error sale debajo del campo.

  • El nombre se guarda solo si la publicación sale bien, en la columna nueva nombre_publicado.

  • Si otra cuenta de Cloudflare ya tiene el nombre, Cloudflare le pone un sufijo (nombre-abc.pages.dev). sacarUrl ya acepta ese sufijo.

  • En celular el panel crecía hacia afuera de la pantalla y cortaba el campo. Este problema ya existía antes. Ahora el panel va a lo ancho de la pantalla, debajo del botón.

Pruebas

  • npm run typecheck, npm run build y todas las demos del CI pasan.
  • demo:publicar suma 12 checks y ahora corre en el CI. Los nuevos cubren:
    • nombreDeApp con acentos, ñ, solo símbolos y nombres largos;
    • sacarUrl con el sufijo de Cloudflare;
    • nombreEnUso contra una sala con nombre y contra una sala vieja con id;
    • que el nombre se guarde y se lea de la base.
  • Con curl contra el server local (credenciales falsas de Cloudflare):
    • un nombre que ya usa otra sala responde 409 "ese nombre ya lo usa otra app de Multti";
    • !!! responde 400;
    • un nombre libre arranca la publicación.
  • Con Playwright, en compu (1280) y celular (390):
    • el campo arranca con el nombre de la sala;
    • escribir "Página tipo Uber!!" muestra pagina-tipo-uber.pages.dev;
    • con solo símbolos el botón se desactiva;
    • una sala publicada no muestra el campo.
  • Falta: publicar de verdad en el VPS con un nombre elegido.

Generated by Claude Code

Hasta ahora la app publicada se llamaba como el id de la sala
(vibe-fiesta-45.pages.dev), que no le dice nada a nadie. Ahora el panel de
publicar trae un campo "Nombre de tu app" que arranca con el nombre de la sala
y enseña en vivo cómo queda la dirección (mi-tienda-de-cafe.pages.dev).

- Se elige solo antes de la primera publicación: Cloudflare no deja renombrar
  un proyecto, y cambiarlo después dejaría el link viejo congelado o roto. Las
  salas ya publicadas siguen con su nombre (su id) y republicar no lo cambia.
- nombreDeApp() pasa lo escrito a algo que acepta un subdominio (sin acentos,
  guiones, 58 caracteres). El server lo vuelve a filtrar siempre.
- Dos salas no pueden usar el mismo nombre (se pisarían el proyecto): se revisa
  contra la base, contra el id de las salas viejas publicadas, y contra las que
  se están publicando en ese momento.
- El nombre se guarda solo si la publicación sale (columna nombre_publicado).
- sacarUrl acepta el sufijo que pone Cloudflare cuando el subdominio ya lo
  tiene otra cuenta (nombre-abc.pages.dev).
- En celular el panel crecía hacia afuera de la pantalla y cortaba el campo:
  ahora va a lo ancho, debajo del botón.
- demo:publicar suma 12 checks y entra al CI.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HJ5oT2Xm3VZMvbPAcgKbz4
@ErickUser1
ErickUser1 merged commit 1600b9b into main Oct 21, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants