← Todos los TILs
TIL - Proyecto portfolio-organico
20 micro-lecciones del proyecto portfolio-organico.
ProyectoTodosbloques-reciclablescall-blockercitas-bot-universalclaude-agent-patternsdevtoolsflask-survey-referral-systemgps-fleet-monitorgps-tracking-patternshikvision-cctv-backendhikvision-isapi-patternslive-conference-translatormulti-ai-provider-patternsportfolio-organicoportfolio-organico-templatesimulabnbtinymedia-compressvideo-frame-analyzerwhatsapp-webhook-patterns
proj:*bloques-reciclablescall-blockercitas-bot-universalclaude-agent-patternsdevtoolsflask-survey-referral-systemgps-fleet-monitorgps-tracking-patternshikvision-cctv-backendhikvision-isapi-patternslive-conference-translatormulti-ai-provider-patternsportfolio-organicoportfolio-organico-templatesimulabnbtinymedia-compressvideo-frame-analyzerwhatsapp-webhook-patterns
- WeasyPrint: generar PDFs profesionales desde Markdown con Pythonpythonportfolio-organico2026-04-07
- Vercel CLI: el workflow real para un portfolio en producciontoolingportfolio-organico2026-03-14
- Vercel Analytics + Speed Insights: observabilidad sin cookies ni consentnextjsportfolio-organico2026-03-13
- vercel env pull: sincronizar variables sin copiar secrets a manotoolingportfolio-organico2026-03-13
- OG images dinamicas con Satori: cargar fonts desde Google Fonts APInextjsportfolio-organico2026-03-12
- Google Analytics condicional: cargar solo si existe NEXT_PUBLIC_GA_IDnextjsportfolio-organico2026-03-10
- Google Analytics redundante: el mayor culpable de mobile perfperformanceportfolio-organico2026-03-10
- Animacion con CSS transitions en vez de framer-motion: RotatingLabelreactportfolio-organico2026-02-27
- @theme inline en Tailwind v4: calc() con CSS variables para radii escalablestailwindportfolio-organico2026-02-25
- base-ui Button + CVA: headless component con Tailwind variantsshadcnportfolio-organico2026-02-23
- ButtonLink: componer Next.js Link dentro de base-ui Button via render propshadcnportfolio-organico2026-02-23
- Dual-theme como storytelling: editorial vs terminal para audiencias diferentesarchitectureportfolio-organico2026-02-21
- Context con doble eje: theme + mode como estados independientesreactportfolio-organico2026-02-19
- data-slot en shadcn: cambiar font-family por tema sin conditional classesshadcnportfolio-organico2026-02-17
- next/font/google: variable fonts automaticas al quitar weightnextjsportfolio-organico2026-02-15
- gray-matter parsea dates como Date objects: el bug que rompio el buildarchitectureportfolio-organico2026-02-13
- generateStaticParams + gray-matter: SSG desde archivos MDX sin CMSnextjsportfolio-organico2026-02-11
- next-mdx-remote/rsc vs next-mdx-remote: server-side MDX sin JS de clientenextjsportfolio-organico2026-02-11
- @custom-variant en Tailwind v4: crear variantes editorial: y terminal:tailwindportfolio-organico2026-02-09
- Git como CMS: MDX + frontmatter + generateStaticParams = zero-maintenance contentarchitectureportfolio-organico2026-02-05
- WeasyPrint: generar PDFs profesionales desde Markdown con Pythonpythonportfolio-organico2026-04-07
- Vercel CLI: el workflow real para un portfolio en producciontoolingportfolio-organico2026-03-14
- Vercel Analytics + Speed Insights: observabilidad sin cookies ni consentnextjsportfolio-organico2026-03-13
- vercel env pull: sincronizar variables sin copiar secrets a manotoolingportfolio-organico2026-03-13
- OG images dinamicas con Satori: cargar fonts desde Google Fonts APInextjsportfolio-organico2026-03-12
- Google Analytics condicional: cargar solo si existe NEXT_PUBLIC_GA_IDnextjsportfolio-organico2026-03-10
- Google Analytics redundante: el mayor culpable de mobile perfperformanceportfolio-organico2026-03-10
- Animacion con CSS transitions en vez de framer-motion: RotatingLabelreactportfolio-organico2026-02-27
- @theme inline en Tailwind v4: calc() con CSS variables para radii escalablestailwindportfolio-organico2026-02-25
- base-ui Button + CVA: headless component con Tailwind variantsshadcnportfolio-organico2026-02-23
- ButtonLink: componer Next.js Link dentro de base-ui Button via render propshadcnportfolio-organico2026-02-23
- Dual-theme como storytelling: editorial vs terminal para audiencias diferentesarchitectureportfolio-organico2026-02-21
- Context con doble eje: theme + mode como estados independientesreactportfolio-organico2026-02-19
- data-slot en shadcn: cambiar font-family por tema sin conditional classesshadcnportfolio-organico2026-02-17
- next/font/google: variable fonts automaticas al quitar weightnextjsportfolio-organico2026-02-15
- gray-matter parsea dates como Date objects: el bug que rompio el buildarchitectureportfolio-organico2026-02-13
- generateStaticParams + gray-matter: SSG desde archivos MDX sin CMSnextjsportfolio-organico2026-02-11
- next-mdx-remote/rsc vs next-mdx-remote: server-side MDX sin JS de clientenextjsportfolio-organico2026-02-11
- @custom-variant en Tailwind v4: crear variantes editorial: y terminal:tailwindportfolio-organico2026-02-09
- Git como CMS: MDX + frontmatter + generateStaticParams = zero-maintenance contentarchitectureportfolio-organico2026-02-05