Plataforma educativa en español que documenta, con transparencia radical, la construcción de un negocio digital desde cero.
InitNullTV es una base editorial moderna enfocada en compartir aprendizaje real, decisiones estratégicas y construcción pública de una marca digital.
Combina contenido local en MDX con un backend editorial en Sanity, permitiendo escalar contenido sin perder control técnico.
- ⚡
Vite 6 - ⚛️
React 19 - 🟦
TypeScript - 🔀
React Router 7 - 🧠
Sanity(CMS headless) - 📝
react-markdown+remark-gfm+rehype-raw - 🎨 CSS personalizado
- 🏠 Landing con narrativa del proyecto
- 📝 Blog basado en MDX (local-first)
- 🎥 Biblioteca de videos
- 🧩 Integración con CMS (Sanity)
- 🔎 SEO completo (Open Graph, JSON-LD, sitemap, feeds)
- 📊 Tracking dinámico (GTM, GA4, Meta Pixel, Metricool)
- 🌐 Rutas públicas optimizadas para indexación
Los artículos viven en:
/posts/*.mdxProcesados mediante:
lib/localPosts.tsIncluye:
- Parsing de frontmatter
- Generación de slug
- Ordenamiento por fecha
- Render con soporte Markdown + HTML
Frontmatter requerido:
---
title: "Título del post"
excerpt: "Resumen corto"
date: 2025-10-27 00:00:00 -0500
tags: [emprendimiento, youtube, ia]
image: /assets/img/mi-portada.webp
---Configurado en:
lib/sanityClient.tsDatos consumidos:
- Configuración global (
siteSettings) - Perfil del creador
- Recursos y recomendaciones
- Testimonios
- Contenido legal
⚠️ Nota: Aunque existe un schemaposten Sanity, actualmente los artículos públicos se sirven desde MDX local.
Desde siteSettings, el frontend resuelve:
- Identidad del sitio (título, descripción)
- SEO global
- Assets (logo, favicon, OG image)
- Redes sociales
- Tracking IDs
| Ruta | Descripción |
|---|---|
/ |
Home |
/proyecto |
Historia del proyecto |
/comunidad |
Presencia social |
/multimedia |
Videos |
/notas |
Blog |
/notas/:slug |
Post individual |
/recursos |
Recursos |
/contacto |
Contacto |
/aviso-legal |
Legal |
/politica-privacidad |
Privacidad |
/politica-cookies |
Cookies |
/terminos-condiciones |
Términos |
/sitemap.xml |
Sitemap |
/feed.xml |
RSS |
/videos.xml |
Video sitemap |
.
├── App.tsx
├── components/
├── data/
├── hooks/
├── lib/
├── pages/
├── posts/
├── schemaTypes/
├── assets/
├── constants.ts
├── sanity.config.ts
└── vite.config.ts- Node.js (LTS)
- npm
npm installnpm run dev📍 Disponible en:
http://localhost:3000
npm run buildnpm run preview{
"dev": "vite",
"build": "vite build",
"preview": "vite preview"
}Actualmente no hay scripts de linting ni testing.
-
Crear archivo en
/posts -
Agregar frontmatter obligatorio
-
Escribir contenido en Markdown/HTML
-
Publicación automática en:
/notas- Home
/notas/:slug
Incluye:
- ✅ Meta tags dinámicos
- ✅ Open Graph + Twitter Cards
- ✅ JSON-LD estructurado
- ✅
robots.txt - ✅
sitemap.xml - ✅
feed.xml - ✅
videos.xml
- Alias
@configurado envite.config.ts - Sin variables de entorno requeridas (config hardcodeada en Sanity client)
- Generación de sitemap/feed desde React (no estático)
- Sanity Studio incluido pero sin script expuesto
InitNullTV no es una landing tradicional.
Es una infraestructura de contenido diseñada para documentar:
- 📘 Aprendizaje real
- 💼 Decisiones de negocio
- 🎥 Estrategia de contenido en video
- 🧠 Pensamiento estratégico
- 🧩 Curaduría de recursos
- 📈 Crecimiento de marca personal
Construir en público. Documentar sin filtros. Aprender haciendo.
- Sistema de tags dinámicos
- Búsqueda interna
- Migración opcional a contenido híbrido (MDX + Sanity posts)
- Testing (Vitest / Playwright)
- Linting (ESLint + Prettier)
- CI/CD pipeline
Este proyecto se comparte bajo la licencia Creative Commons Atribución (CC BY).
Esto significa que puedes compartir, reutilizar y adaptar el contenido y el código fuente, incluso con fines comerciales, siempre que otorgues el crédito correspondiente al autor original.
Al reutilizar o derivar este trabajo, debes incluir una atribución visible a Wuilmer Bolívar dentro del código, la documentación o la plataforma final donde se publique la adaptación.
Este proyecto está enfocado principalmente en uso personal/documentación pública, pero puede evolucionar a open source en el futuro.
Disponible desde /contacto dentro del sitio.
⭐ Si este proyecto te aporta valor, considera usarlo como referencia o base para tu propio sistema de contenido.
