Personaliza tu producto
Define la identidad, los idiomas, el estilo visual, el tema, los datos legales y los sistemas opcionales antes de crear funciones propias.
Al terminar esta página, el starter tendrá el nombre, las rutas, los idiomas y el aspecto de tu producto, y cada sistema opcional tendrá una decisión explícita: conservar, adaptar o eliminar. Hazlo antes de cambiar pantallas concretas; la identidad y los límites del producto afectan a las URL, el correo, los textos legales, la analítica, la facturación y la consola de administración.
Qué incluye y qué debes decidir
| Área | Comportamiento incluido | Tu decisión |
|---|---|---|
| Identidad | saas.config.json registra nombre, slug, soporte y URL de docs | Ejecuta el customizer y revisa el diff |
| Soporte | El email de soporte es un valor de producto trazado | Defínelo antes del lanzamiento o asigna otro canal |
| Idiomas | Están disponibles inglés, chino, español, francés y japonés; los prefijos son as-needed | Elige idioma predeterminado, conjunto habilitado y detección del navegador |
| Lenguaje visual | studio es el preset de compilación compartido por web y admin | Consérvalo o elige en código glass, soft, editorial o brutalist |
| Modo de color | La app de clientes usa system por defecto mediante una variable | Elige system, light o dark; admin aún no tiene selector de modo |
| Páginas legales | Un borrador visible refleja los flujos de datos predeterminados | Completa identidad y políticas y obtén revisión jurídica |
| Sistemas opcionales | Hay código o adaptadores para cobros, almacenamiento, correo, Slack, analítica, referidos, tareas y reservas | Conserva y configura cada uno, o elimina a la vez UI, validación, rutas y documentación |
Punto de partida recomendado
Usa un nombre real, conserva el modo system y el preset studio hasta estabilizar la arquitectura de información, y habilita solo los idiomas que tu equipo pueda mantener. Mantén desactivados analítica, publicidad, referidos y funciones de demostración hasta tener un motivo, textos para usuarios y un proceso operativo.
Las alternativas son válidas, pero añaden trabajo. Más idiomas amplían el público y la obligación de traducir. Un preset más marcado diferencia el producto, pero exige revisar modos claro/oscuro y admin. Activar una integración ahorra desarrollo, pero añade credenciales, fallos, divulgaciones de privacidad y soporte.
Configura identidad e idiomas
Ejecuta primero el customizer trazable:
pnpm customize
pnpm customize -- --name "Acme Cloud" --slug acme-cloud --preset glass --locales es,en --default-locale es --support-email support@example.com --docs-url https://docs.example.com --yesEl comando valida y escribe atómicamente saas.config.json, y solo sincroniza valores públicos en perfiles ignorados existentes; nunca toca secretos. --dry-run imprime el candidato y --no-env evita sincronizar. El gate de producción rechaza overrides que contradigan la identidad trazada.
Elige un preset visual
Elige el preset con el customizer o edita la configuración trazada:
{ "appearance": { "preset": "glass" } }src/config/style.ts deriva el valor tipado desde saas.config.json. Web y admin comparten el preset; es una decisión de build, no un selector por usuario.
Completa la identidad legal
Rellena LegalData en src/config/legal.ts: razón social y domicilio, contactos de privacidad y asuntos legales, ley aplicable, fecha de vigencia y los subencargados reales. Resuelve todos los marcadores entre corchetes. Mientras falte algún dato obligatorio, LegalConfig.isConfigured seguirá siendo false y privacidad y términos mostrarán un aviso de borrador no revisado.
El texto incluido es una estructura de trabajo, no asesoramiento jurídico ni una política terminada. Elimina proveedores que no uses, añade los que reciban datos personales, alinea la retención con el borrado de cuentas y solicita revisión profesional.
Define el límite del producto
Registra una de estas decisiones para cada sistema opcional:
- Conservar: configura credenciales, textos, monitorización, manejo de fallos y responsable.
- Adaptar: cambia la política o el proveedor tras la frontera de servicio existente y actualiza pruebas y guías.
- Eliminar: quita rutas, UI, validación de producción, trabajos y documentación en el mismo cambio. Una credencial vacía no es una decisión de producto.
Para lo que conserves, continúa con Planes y derechos, Facturación con Stripe, Carga de archivos y Despliegue y seguridad.
Verifica antes de crear funciones
pnpm lint
pnpm test:run
pnpm build:web
pnpm build:adminComprueba que el idioma predeterminado no tenga prefijo, que cada idioma adicional resuelva, que el selector no ofrezca idiomas deshabilitados, que los enlaces de documentación y soporte cumplan lo prometido, que ambas apps compartan preset y que la web sea legible en claro y oscuro. Abre privacidad y términos: no publiques mientras siga el aviso de borrador o queden marcadores de política.
Lo que no está terminado por ti
El starter no incluye configurador de marca, selector de preset en ejecución, modo oscuro de admin, correo de soporte por entorno, política legal revisada ni una decisión sobre qué sistemas opcionales pertenecen a tu producto. Son decisiones del equipo que adopta el starter.
Si activas medición o publicidad, toma esa decisión junto con Analítica y consentimiento, no como un valor de entorno aislado.
Instantánea del código fuente
Verificado con el commit 2a1a04a del starter: