Cómo escribir un post
Cómo agregar un artículo al blog de mibio, revisarlo como borrador y publicarlo sin romper el build.
El blog de mibio vive en /blog. Cada post es un archivo MDX dentro de
apps/client/content/blog/, y el nombre del archivo es la URL: el archivo
link-en-bio-para-coaches.mdx se publica en /blog/link-en-bio-para-coaches.
[!NOTE] Hoy los 5 posts del repo están en borrador (
draft: true): no aparecen en producción hasta que alguien los revise y los pase adraft: false.
1. Crear el archivo y el frontmatter
El frontmatter se valida al compilar (source.config.ts). Si falta un campo
obligatorio o tiene un valor inválido, el build falla.
---
title: 'Link en bio para coaches: qué poner y en qué orden'
description: Una frase que resuma el post (también se usa para SEO).
publishedAt: '2026-10-27T12:00:00.000Z'
updatedAt: '2026-11-02T12:00:00.000Z' # opcional
author:
name: Martín Coll
url: https://mibio.app # opcional
category: coaches
tags: ['link-en-bio', 'instagram']
cover: cover-link-en-bio-coaches # opcional
draft: true
faq: # opcional
- q: ¿Cuántos botones conviene tener?
a: Entre cuatro y siete suele alcanzar.
---| Campo | Obligatorio | Qué va |
|---|---|---|
title | Sí | Título del post. |
description | Sí | Resumen corto; se usa en el listado y en los metadatos. |
publishedAt | Sí | Fecha ISO. Ordena el listado (el más nuevo primero). |
updatedAt | No | Fecha ISO de la última actualización. |
author | Sí | name y, si querés, url. |
category | Sí | Una de: coaches, terapeutas, nutricionistas, consultores, crecimiento, producto. |
tags | No | Lista de etiquetas (por defecto, vacía). |
faq | No | Preguntas y respuestas (q / a) que se muestran al final y se publican como datos de FAQ. |
cover | No | Un id de lib/images/blog.ts o una ruta de imagen. Sin cover se usa la portada por defecto. |
draft | No | true mientras lo escribís. Por defecto es false. |
2. Revisarlo como borrador
-
Dejá
draft: true. -
Levantá el cliente en modo desarrollo con webpack (Turbopack devuelve 500 en dev):
cd apps/client && bunx next dev --webpack -
Abrí
/blogo/blog/<archivo>. En desarrollo los borradores se ven con la etiqueta Borrador y llevannoindex. -
Cuando el post está listo, cambiá a
draft: falsey commiteá.
[!WARNING] En un build de producción los borradores no se listan ni se generan. Si por error un borrador llega al índice del blog, a una página de categoría, al RSS o al sitemap, el build falla a propósito (
assertNoDraftsenlib/blog.ts).
3. Agregar la portada
Las imágenes del blog salen de un manifest, no de rutas sueltas:
-
Agregá una entrada en
apps/client/lib/images/blog.tsconid,src(/images/blog/<id>.webp),width: 1600,height: 900,alten español y elpromptde generación. -
Generá el placeholder desde la raíz del repo:
bun apps/client/scripts/gen-image-placeholders.tsEl script crea el WebP en la ruta y el tamaño del manifest, y falla si algún archivo no coincide.
-
Poné el
iden elcoverdel post. -
Cuando tengas la imagen final, reemplazá el archivo en la misma ruta y con el mismo tamaño (WebP, calidad 82). No hace falta tocar código.
4. Componentes que podés usar en el post
Además de Markdown, un post puede usar estos componentes de mibio:
<CtaSignup />: una caja que invita a crear tu mibio (lleva a/register).<ClaimHandle />: el formulario "reservá tu @" con el chequeo de disponibilidad en vivo.<TemplatePreview template="terapeuta" />: la vista en celular de un template. Los valores válidos soncoach-ejecutivo,wellness,terapeutayconsultor; cualquier otro hace fallar el build.
Escribilos en una línea propia, separados del texto por una línea en blanco.
Checklist antes de publicar
- El texto está en español rioplatense, tratando de "vos".
- No hay testimonios, cifras de clientes ni logos inventados.
categoryytagsestán completos.- La portada existe en el manifest y el script de placeholders pasa.
draft: falseybun run buildenapps/clienttermina sin errores.