UGC Reactions from Real Creators
Real creator library videos at $11 and images at $8. Custom production from $25/video with a $250 minimum. Commercial licensing included.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
Una ficha de propiedad entra, salen seis piezas de marketing con la marca de la agencia
翻訳待ち
Loading the full README.
Read the full README ↗Una ficha de propiedad entra. Salen seis piezas de marketing con la marca de la agencia: ficha técnica en PDF, post de Instagram, carrusel, story, email comercial y vídeo vertical.
El dolor que ataca está documentado en docs/research/: una agencia media teclea
los mismos datos tres o cuatro veces —CRM, portal, Canva, PDF— y dedica entre dos
horas y dos horas y media por propiedad. Y hay trabajo que directamente no se
hace: la ficha en PDF «a menudo no existe» y el vídeo es «prácticamente
inexistente» salvo que se contrate a alguien de fuera.
No publica por ti. Genera el material y te lo entrega; subirlo es tuyo.
Un motor genérico con un vertical enchufado encima. El motor no sabe qué es un
piso: recibe una entidad, la proyecta a una vista pública, resuelve bindings,
aplica reglas legales y encarga las piezas a los renderizadores. Lo que sabe de
inmuebles vive en niches/inmobiliaria/.
lib/engine/ motor: contratos, puertos, orquestación de trabajos
lib/infrastructure/ adaptadores: Playwright, FFmpeg, Prisma, ZIP, IA
niches/inmobiliaria/ el vertical: esquema, textos, plantillas, reglas legales
app/ interfaz (Next.js App Router) y API
docs/architecture/ la ADR que manda sobre todo lo anterior
La dirección de dependencias es innegociable y hay un test que la vigila fichero
a fichero: el nicho depende del motor, nunca al revés. Levantar un vertical
nuevo no toca lib/; hay una plantilla de PRP en .specs/templates/.
PublicPropertyView
es una proyección por allowlist y es el único tipo que aceptan las plantillas
públicas. Un campo nuevo no llega a una pieza hasta que alguien lo añade a
propósito. El editor de texto libre, que es la puerta de atrás, tiene su propio
guardarraíl.docs/architecture/niche-engine.md.Ninguna cuenta, clave ni servicio de terceros para tenerlo funcionando en local. Hacen falta dos cosas en la máquina, y conviene comprobarlas antes de empezar porque si faltan el fallo aparece tarde y mal:
| Requisito | Para qué | Comprobar |
|---|---|---|
| Node 22 o superior | todo | node -v |
FFmpeg en el PATH | el vídeo vertical y la recompresión de los audios | ffmpeg -version · ffprobe -version |
FFmpeg no se instala con npm. En Windows winget install Gyan.FFmpeg, en macOS
brew install ffmpeg, en Debian o Ubuntu sudo apt install ffmpeg. Sin él las
otras cinco piezas se generan igual: solo falla el vídeo, y con un mensaje que
dice exactamente eso.
npm install
npx playwright install chromium # el navegador que renderiza PDF e imágenes
npx prisma generate # cliente tipado a partir del schema
npx prisma migrate deploy # crea prisma/dev.db
npm run db:seed # marca y 3 propiedades de demo con fotos reales
cp .env.example .env
npm run dev # http://localhost:3000
En desarrollo eso es todo: no hay contraseña y se entra directo al panel.
Para producción hacen falta dos cosas más, y sin ellas la aplicación se niega a funcionar a propósito:
npm run set-password # imprime la línea APP_PASSWORD_HASH para el .env
npm run build && npm start
APP_PASSWORD_HASH: sin él responde 503 a todo. Es deliberado — una
instalación sin candado en una red es peor que una que no arranca.Secure, así que sobre HTTP el
navegador no la guarda y no hay manera de entrar. Ponlo detrás de un proxy
con TLS.El nombre visible se cambia por instalación con NEXT_PUBLIC_APP_NAME. La
reescritura de texto con IA es opcional y viene apagada: sin
AI_TEXT_ENABLED=1 no se llama a ningún servicio externo y el botón ni siquiera
aparece — .env.example explica cómo activarla con tu proveedor y tu clave.
This is the beginning of the README. Read the rest at the original. Read the full README ↗