Synaplan
Open-source AI platform for companies: self-hosted AI agents, GDPR-compliant chatbot widget, RAG knowledge base, WhatsApp and Outlook AI, MCP, multi-model routing. Docker, Kubernetes or hosted in Germ
Studio Herre, estudio de diseño gráfico: marcas hechas a fuego. Video, redes sociales e identidad visual con oficio de taller.
Translation pending
BusinessCSS · JavaScriptGitHub @Herrera18OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Sitio estático (HTML, CSS y JS, sin frameworks ni base de datos). Las páginas se generan a partir de dos archivos de datos con un script de Node sin dependencias (build.js), que Vercel ejecuta solo en cada publicación.
data/projects.json ← todos los proyectos (lo único que tocas para agregar trabajos)
data/site.json ← tu nombre, frase, bio, contacto y redes
media/<proyecto>/ ← imágenes WebP y reels MP4 de cada proyecto
media/site/ ← tu foto (nacho.webp) e imagen para compartir (og.jpg)
assets/ ← diseño: css/styles.css y js/main.js
build.js ← genera el sitio en dist/
tools/preparar_imagenes.py ← convierte tus imágenes a WebP
1. Prepara los archivos. Junta en una carpeta las imágenes originales (JPG/PNG) y, si hay, los reels en MP4. Nombra portada a la imagen principal. Luego:
python tools/preparar_imagenes.py "C:\ruta\a\la\carpeta" nombre-del-proyecto
Esto crea media/nombre-del-proyecto/ con cover.webp, 01.webp, 02.webp…, og.jpg (la imagen que aparece al compartir el link por WhatsApp) y copia los reels como reel-01.mp4… Al final imprime las líneas portada y galeria listas para pegar.
2. Agrega el bloque en data/projects.json. Copia uno existente y cámbiale los datos. El orden del archivo es el orden en el sitio (pon los nuevos arriba).
{
"slug": "nombre-del-proyecto",
"titulo": "Nombre visible",
"cliente": "Cliente",
"categoria": "video",
"anio": 2026,
"resumen": "Una línea. Se usa como descripción al compartir el link.",
"contexto": "Qué necesitaba el cliente.",
"queHice": ["Tarea 1", "Tarea 2"],
"resultado": "Qué se logró.",
"portada": "cover.webp",
"portadaVideo": "reel-01.mp4",
"youtube": "ID_DEL_VIDEO",
"galeria": ["01.webp", "02.webp", "reel-01.mp4"]
}
| Campo | Notas |
|---|---|
slug | Igual al nombre de la carpeta en media/. Minúsculas, sin espacios ni tildes. Es la URL: /proyectos/slug/. |
categoria | rrss (Social media), video, identidad (Identidad de marca) o logos (Logofolio). Define en qué sección numerada del inicio aparece y en qué vista de Trabajos. |
rubro | Opcional. A qué se dedica el cliente ("Agencia de viajes"). Se muestra junto al año en las láminas de Trabajos y en el escenario de marcas del inicio. |
manual | Opcional. Número de páginas de un manual de marca guardado en media/<slug>/manual/ (01.webp grande y m01.webp miniatura por página). Activa el mosaico inclinado en la página del proyecto. |
youtube | Opcional. Solo el ID: en https://youtu.be/aqz-KE-bpKQ es aqz-KE-bpKQ. Funciona con videos "No listado". |
portadaVideo | Opcional. Un reel que se reproduce en loop en la tarjeta del proyecto. |
galeria | Lista de archivos de la carpeta del proyecto. Los .mp4 se muestran en loop y sin sonido. |
videos | Opcional, para proyectos de video. Enlaza cada adelanto con su video completo en YouTube: {"reel-01.mp4": "ID_DEL_VIDEO"}. El adelanto mudo pasa a tener botón de play y abre el video con sonido. Sirve con Shorts "No listados". |
pies | Opcional. Texto bajo una imagen, por nombre de archivo: {"01.webp": "Rogienny · Marca personal"}. |
laminas | Opcional. Fichas de marca (imágenes altas) que se muestran al final de la página, en mosaico. |
mono | Opcional (logofolio). Logos a una tinta con fondo transparente: [{"archivo": "mono-01.webp", "nombre": "Marca", "ancho": 640, "alto": 497}]. Se usan en la lámina crema del inicio y en la cinta de marcas. |
3. Revisa y publica.
node build.js --serve
Abre http://localhost:3000. Si falta un archivo o hay un error en el JSON, el script lo dice. Cuando esté bien:
git add .
git commit -m "Agrega proyecto nombre-del-proyecto"
git push
Vercel publica solo en un minuto aprox.
rrss); Videos e Identidad son cintas en movimiento; Logofolio es la lámina crema con los logos mono./trabajos/#rrss, #video o #identidad. Una lámina de social media necesita al menos 5 imágenes en galeria; la de identidad, un manual. Una categoría con un solo proyecto (hoy Logofolio) abre directo la página de ese proyecto.build.js (busca cierres).reel-01.webp) se muestra mientras carga el video.youtube. El reproductor se carga recién al hacer clic, sin videos sugeridos de otros canales.data/site.json. Las redes con "url": "" no se muestran.proceso en data/site.json (pasos, plazo, texto del botón y mensaje de WhatsApp). Si lo borras, la sección desaparece. Cada paso puede llevar una animación con "grafico": celular, timeline o dias.habilidades en data/site.json. Íconos disponibles: pluma, motion, video, redes, marca.secciones en data/site.json. Ahí se cambian el nombre, el texto de la barra y el orden. Cada una elige cómo se muestra: "collage": true (escenario de marcas), "cinta": true (tira en movimiento; con "curva": true va en anillo curvo en escritorio y "ritmo" son los segundos por pieza), "soloCinta": true (sin nada más debajo) o "rejilla": true (lámina de logos). Sin ninguna, la sección muestra un carrusel de tarjetas.intro, servicios y sobreMi.bio en data/site.json. Todo va en primera persona ("yo"); evita mezclar con "hacemos".servicios en data/site.json; el título se cambia en serviciosTitulo. Con categoria, la tarjeta enlaza a esa sección del inicio.herramientas en data/site.json (sigla, nombre y nivel de 0 a 100, que define cuánto se llena el anillo). Si la dejas vacía ([]), la sección desaparece. Para mostrar un logo en vez de la sigla, agrega "icono" con la ruta a una silueta en WebP/PNG con fondo transparente (ver CapCut como ejemplo); se pinta sola con el color de acento.media/site/nacho.webp (vertical, ~1200×1500).media/site/retrato-inicio.webp, un recorte transparente que ya trae su círculo con la cabeza saliendo por arriba. Si la cambias, ajusta fotoInicioCirculo (centro y radio del círculo en píxeles de la imagen) en data/site.json.portafolio (si no aparece, "Adjust GitHub App Permissions" y dale acceso).vercel.json. Clic en Deploy.git push a main actualiza el sitio.Dominio propio: en Vercel, Settings → Domains. Si lo agregas, escribe la dirección en "url" de data/site.json (ej: "https://nacho.cl") para que los links compartidos usen ese dominio.
media/site/og.jpgassets/css/styles.css. --grad-fondo es el fondo del sitio (Noche en oscuro; crema con un resplandor suave en claro), --grad-hero el del inicio (Atardecer, solo en oscuro) y --grad-fuego el de las formas naranjas.build.js y los nombres en --titulos y --sans.