# Angel Cruz · Software Developer > Sitio personal de Angel Cruz: blog técnico, lab de TIL, portafolio open-source y página de contacto. Foco en Laravel, Next.js, APIs RESTful, AI editors y desarrollo backend senior. Voz primera persona, español. Cada post incluye frontmatter completo (title, date, category, excerpt, author, ogImage). El sitio sirve markdown via content negotiation: agrega `Accept: text/markdown` o el sufijo `.md` a cualquier URL de contenido (posts, guías, categorías, servicios, páginas) para recibir markdown puro en lugar de HTML. ## Superficies para agentes (endpoints de máquina) Superficie pública de solo lectura: todos los endpoints son GET, ninguno pide autenticación y ninguno muta nada. La descripción formal está en OpenAPI 3.1 y el inventario en el catálogo de APIs (RFC 9727). - [/llms.txt](https://www.angelcruz.dev/llms.txt): Índice estilo llmstxt.org de cada página y post - [/llms-full.txt](https://www.angelcruz.dev/llms-full.txt): Corpus completo con el cuerpo de cada post inline en markdown - [/sitemap.xml](https://www.angelcruz.dev/sitemap.xml): Sitemap XML estándar (páginas estáticas y categorías) - [/sitemap-posts.xml](https://www.angelcruz.dev/sitemap-posts.xml): Sitemap XML solo de posts, con - [/sitemap.md](https://www.angelcruz.dev/sitemap.md) (`text/markdown`): Versión markdown jerárquica del sitemap - [/AGENTS.md](https://www.angelcruz.dev/AGENTS.md) (`text/markdown`): Guía para agentes que consumen el sitio - [/feed.xml](https://www.angelcruz.dev/feed.xml) (`application/rss+xml`): RSS de los artículos del blog - [/til.xml](https://www.angelcruz.dev/til.xml) (`application/rss+xml`): RSS solo de los TIL (notas breves), separado del de artículos - [/til.md](https://www.angelcruz.dev/til.md) (`text/markdown`): Todos los TIL en markdown, sin el chrome de la página - [/entitymap.json](https://www.angelcruz.dev/entitymap.json) (`application/json`): Índice de entidades del sitio según EntityMap v1.0, con la evidencia citada y atribuida - [/entitymap.html](https://www.angelcruz.dev/entitymap.html) (`text/html`): Gemelo legible del EntityMap, con JSON-LD por entidad y la atribución en texto visible - [/manifest.webmanifest](https://www.angelcruz.dev/manifest.webmanifest): Web app manifest - [/.well-known/api-catalog](https://www.angelcruz.dev/.well-known/api-catalog): API catalog (RFC 9727) - [/openapi.json](https://www.angelcruz.dev/openapi.json) (`application/json`): Descripción OpenAPI 3.1 de los endpoints públicos de solo lectura - [/.well-known/agent-skills/index.json](https://www.angelcruz.dev/.well-known/agent-skills/index.json) (`application/json`): Skills que publica el sitio (Agent Skills Discovery RFC v0.2.0), cada una con su digest sha256 - [/search-index.json](https://www.angelcruz.dev/search-index.json) (`application/json`): Índice de todos los artículos indexables (título, slug, extracto recortado y categoría) en un solo JSON - [/robots.txt](https://www.angelcruz.dev/robots.txt): Permite GPTBot, ClaudeBot, PerplexityBot, Google-Extended, CCBot y otros Los errores de estos endpoints siguen Problem Details (RFC 9457) en `application/problem+json`, con `code`, `resolution` y las URLs de discovery en el cuerpo. Una ruta inexistente devuelve 404 real, y con `Accept: text/markdown` o sufijo `.md` devuelve ese mismo 404 como problem+json en vez de HTML. ## Páginas principales - [Home](https://www.angelcruz.dev/): Página principal con posts recientes, categorías activas y bio. - [Acerca de mí](https://www.angelcruz.dev/acerca-de-mi): Trayectoria profesional, stack técnico, experiencia. - [Contacto](https://www.angelcruz.dev/contacto): Canales de contacto, disponibilidad actual, idiomas, horarios. - [Blog](https://www.angelcruz.dev/post): Listado completo de artículos del blog. - [Categorías](https://www.angelcruz.dev/categorias): Listado de categorías del blog con contadores. - [Lab](https://www.angelcruz.dev/lab): TIL stream (Today I Learned) con notas técnicas cortas. - [Open Source](https://www.angelcruz.dev/open-source): Repos open-source mantenidos por el autor. - [Uses](https://www.angelcruz.dev/uses): Hardware, software y herramientas del autor. - [Guías](https://www.angelcruz.dev/guias): Índice de las cinco guías pilar del sitio. Markdown: https://www.angelcruz.dev/guias.md - [Laravel Fundamentals](https://www.angelcruz.dev/laravel-fundamentals): Guía pilar de fundamentos de Laravel, organizada por capítulos. Markdown: https://www.angelcruz.dev/laravel-fundamentals.md - [Guía MCP](https://www.angelcruz.dev/guia-mcp): Guía pilar de Model Context Protocol, agrupada por pistas (entender, construir, conectar, operar). Markdown: https://www.angelcruz.dev/guia-mcp.md - [Guía de agentes de IA](https://www.angelcruz.dev/guia-agentes-ia): Guía pilar sobre agentes de IA para desarrolladores, agrupada por pistas (entender, patrones, infraestructura, práctica, PHP). Markdown: https://www.angelcruz.dev/guia-agentes-ia.md - [Guía de PHP](https://www.angelcruz.dev/guia-php): Guía pilar de PHP, agrupada por pistas (operadores, seguridad y dependencias, escribir mejor). Markdown: https://www.angelcruz.dev/guia-php.md - [Laravel en producción](https://www.angelcruz.dev/laravel-produccion): Guía pilar de Laravel más allá del curso, agrupada por pistas (Eloquent, estructura, producción, integraciones). Markdown: https://www.angelcruz.dev/laravel-produccion.md - [Guía Claude Code](https://www.angelcruz.dev/guia-claude-code): Guía pilar de Claude Code, agrupada por pistas (configurar, extender, escalar, optimizar, aplicar). Markdown: https://www.angelcruz.dev/guia-claude-code.md - [Guía OpenClaw](https://www.angelcruz.dev/guia-openclaw): Guía pilar de OpenClaw (antes Clawdbot): instalación por sistema, requisitos reales y errores comunes. Markdown: https://www.angelcruz.dev/guia-openclaw.md - [Publicidad / Media Kit](https://www.angelcruz.dev/advertise): Media kit con métricas de audiencia y opciones de patrocinio. ## Servicios - [Servicios](https://www.angelcruz.dev/servicios): Catálogo de servicios profesionales (overview). - [Desarrollo Laravel](https://www.angelcruz.dev/servicios/desarrollo-laravel): Servicio de desarrollo en Laravel/PHP. - [SEO técnico](https://www.angelcruz.dev/servicios/seo-tecnico): Auditorías y consultoría SEO técnico. - [Desarrollo WordPress](https://www.angelcruz.dev/servicios/desarrollo-wordpress): Servicio de desarrollo y mantenimiento WordPress. - [Servidores MCP](https://www.angelcruz.dev/servicios/servidores-mcp): Diseño y construcción de servidores Model Context Protocol a medida. ## Productos - [Productos](https://www.angelcruz.dev/productos): Catálogo de productos y plugins open-source del autor. - [Rebill WooCommerce](https://www.angelcruz.dev/producto/rebill-woocommerce): WordPress Plugin — Plugin gratuito y de código abierto que integra Rebill en WooCommerce mediante checkout alojado seguro. Sin PCI compliance requerido. - [CloudSaver](https://www.angelcruz.dev/producto/cloudsaver): Optimización de costos cloud — Herramienta gratuita que escanea tu cuenta de DigitalOcean y revela oportunidades de ahorro en costos en menos de 30 segundos. Solo lectura, sin registro. - [Rebill Memberships](https://www.angelcruz.dev/producto/rebill-memberships): WordPress Plugin — Membresías y contenido pago en WordPress con Rebill como motor de cobro. Checkout alojado, sin PCI, sin WooCommerce. - [ThatSEOAgent](https://thatseoagent.com?utm_source=angelcruzdev&utm_medium=referral&utm_campaign=catalogo-productos&utm_content=thatseoagent): Plataforma SEO — Un agente que decide qué herramientas de SEO correr, las ejecuta y sintetiza los resultados cruzando Search Console, Analytics 4 y PageSpeed en tiempo real. ## Herramientas - [Tools](https://www.angelcruz.dev/tools): Hub de herramientas y comparativas técnicas. - [Cursor Rules vs Skills](https://www.angelcruz.dev/tools/cursor-rules): Comparación entre Cursor Rules, AGENTS.md y Claude Code Skills. ## D&D - [Harbek Ironforge](https://www.angelcruz.dev/dnd/harbek-ironforge): Ficha de personaje D&D 5e (Enano de las colinas Guerrero nivel 1), con stats, equipo y backstory. - [Kaelor](https://www.angelcruz.dev/dnd/kaelor): Ficha de personaje D&D 5e (Hobgoblin Bárbaro nivel 3), con stats, equipo y backstory. ## Artículos del blog - [¿Vale la pena estudiar programación en 2026? La pregunta está mal hecha](https://www.angelcruz.dev/post/vale-la-pena-estudiar-programacion-2026): Opinión · 2026-09-02 — El mercado junior está roto y hay datos de nóminas que lo confirman: los de 22 a 25 años en trabajos expuestos a IA están un 19% por debajo. Pero el mecanismo no es el que todo el mundo repite, y eso cambia qué deberías hacer. - [OpenClaw 2.0: qué cambia y cómo actualizar sin romper tu Claw](https://www.angelcruz.dev/post/openclaw-2-que-cambia-y-como-actualizar): OpenClaw · 2026-08-31 — OpenClaw 2.0 (v2026.8.1) llegó con tres breaking changes, una fecha límite para los plugins y varios comportamientos que ahora vienen activados por defecto. Qué se rompe, qué hace openclaw doctor --fix y qué revisar antes de actualizar. - [OpenAI corta sus modelos en Cursor: qué pasa el 12 de noviembre](https://www.angelcruz.dev/post/openai-corta-modelos-cursor-spacex): Herramientas · 2026-08-29 — OpenAI avisó a SpaceX de que retira sus modelos de Cursor con fecha propuesta del 12 de noviembre de 2026, y no le dará los futuros. Qué dice el comunicado, qué te queda dentro del editor y qué decidir antes de esa fecha. - [Agent Skills Discovery: publicar skills en .well-known para que los agentes las encuentren](https://www.angelcruz.dev/post/agent-skills-discovery-well-known): Inteligencia Artificial · 2026-08-28 — El RFC de Cloudflare define un índice en /.well-known/agent-skills/index.json para que un agente descubra qué skills publica un dominio. Qué dice la spec, leída del original, y cómo la implementé en este sitio con Next.js. - [WebMCP: la API que deja a tu web ofrecer herramientas a los agentes](https://www.angelcruz.dev/post/webmcp-api-navegador-agentes-ia): Inteligencia Artificial · 2026-08-26 — WebMCP es la propuesta de Google y Microsoft para que una página registre tools que un agente del navegador puede llamar. Qué es, en qué estado está y cómo se escribe, con la API imperativa y la declarativa. - [Laravel Tackle: el agente de IA que vive dentro de tu app](https://www.angelcruz.dev/post/laravel-tackle-agente-ia): Laravel · 2026-08-20 — Tackle no es otra CLI de agente: se instala con Composer y corre como comandos Artisan, así que ve tus rutas, tu Telescope y tus tests. Y los límites no se le piden por prompt, están en PHP. Cómo funciona, el autocurador de colas y por qué su base es la parte frágil. - [Lerd: el Laravel Herd que sí corre en Linux](https://www.angelcruz.dev/post/lerd-laravel-herd-linux): PHP · 2026-08-19 — Herd no tiene build para Linux y no la anuncia. Lerd cubre ese hueco con Podman rootless, dominios .test automáticos y un dashboard que trae gratis lo que Herd cobra en Pro. Cómo funciona por dentro, el requisito que rompe en Ubuntu 22.04 y dónde no encaja. - [fx de Vercel: el agente de código escrito en Zig](https://www.angelcruz.dev/post/fx-vercel-agente-codigo-zig): Inteligencia Artificial · 2026-08-18 — Vercel Labs liberó fx, un agente de código en un binario nativo de 7,8 MiB, Apache-2.0 y agnóstico de modelo. Qué trae por dentro, qué detalles no cuenta el anuncio (el revisor automático de permisos cuesta tokens aparte) y para qué sirve de verdad. - [Graph engineering: cuándo tu agente deja de ser un bucle](https://www.angelcruz.dev/post/graph-engineering-agentes-ia): Inteligencia Artificial · 2026-08-16 — Un grafo de agentes son tres cosas: estado, nodos y aristas. Pero el motivo real para montarlo no es la taxonomía que repiten los blogs, es la ejecución durable: que una caída en el minuto 40 reanude en vez de empezar de cero. - [Servidores MCP maliciosos: el ataque que parte la petición para que ningún trozo parezca peligroso](https://www.angelcruz.dev/post/servidores-mcp-maliciosos-ghostsplice): Inteligencia Artificial · 2026-08-13 — Pídele a un asistente que te lea el .env y lo mande fuera, y se niega. Parte esa misma petición en dos trozos inocentes repartidos por canales distintos y la negativa se convierte en obediencia. Así funciona GhostSplice, y por qué los escáneres de MCP no lo ven. - [Google dice que Go es ideal para programar con agentes. ¿Y PHP?](https://www.angelcruz.dev/post/php-laravel-lenguaje-para-agentes): Laravel · 2026-08-12 — Google publicó los cinco criterios que hacen a un lenguaje bueno para revisar código generado por IA. Mido PHP y Laravel con esa misma vara: empatan en dos y pierden en tres, pero solo uno de los tres no tiene arreglo. - [Grok Bot: agentes con su propio ordenador, y una letra chica que conviene leer](https://www.angelcruz.dev/post/grok-bot-agentes-ordenador-compartido): Inteligencia Artificial · 2026-08-12 — SpaceXAI lanzó Grok Bot, agentes que inician sesión en tus herramientas y trabajan solos en un ordenador en la nube. La documentación oficial trae una advertencia que casi nadie está contando: todos tus bots comparten ese ordenador, sus sesiones y sus credenciales. - [SEO técnico en la era de la IA: de rankear a que la IA te cite](https://www.angelcruz.dev/post/seo-tecnico-en-la-era-de-la-ia): Inteligencia Artificial · 2026-08-11 — Pasé meses construyendo una herramienta de SEO para la era de la IA, y eso me obligó a redefinir qué es el SEO técnico hoy: el objetivo ya no es solo rankear en Google, es que ChatGPT, Perplexity o los AI Overviews te citen. Esto es lo que cambió y lo que hay que hacer. - [Claude marca el contenido que genera: watermark en texto y C2PA en archivos](https://www.angelcruz.dev/post/claude-marcas-contenido-ia-watermark-c2pa): Inteligencia Artificial · 2026-08-10 — Desde el 2 de agosto de 2026 los modelos nuevos de Claude marcan el texto que generan y firman los archivos con C2PA. Anthropic ya confirmó el método: una versión de SynthID-Text, que no añade nada al texto sino que cambia de dónde sale el azar al elegir cada palabra. Cómo funciona, dónde falla y qué te toca a ti. - [Muse Code: Meta entra en la terminal, y los benchmarks no cuadran](https://www.angelcruz.dev/post/muse-code-meta-agente-terminal): Inteligencia Artificial · 2026-08-07 — Meta lanzó Muse Code el 5 de agosto de 2026, su agente de terminal sobre Muse Spark 1.2. Lo interesante no es que compita con Claude Code: es que su número estrella no aparece en el leaderboard verificado, y que la versión barata se paga con tu código. - [Cloudflare OS: el sistema operativo que no es un sistema operativo](https://www.angelcruz.dev/post/que-es-cloudflare-os): Inteligencia Artificial · 2026-08-05 — Cloudflare liberó Cloudflare OS con licencia Apache 2.0. No es una distro: es un espacio de trabajo para agentes construido sobre Workers. Lo interesante está en cómo resuelve el problema de los permisos, que es donde todos acabamos escribiendo --dangerously-skip-permissions. - [Instalé TypeScript 7 y ESLint dejó de arrancar: no hay versión que lo arregle](https://www.angelcruz.dev/post/typescript-7-sin-api-javascript-eslint): Next.js · 2026-08-04 — TypeScript 7 typechequea 4 veces más rápido, pero no expone API JavaScript. Todo lo que lee tipos programáticamente se queda fuera, y el linter es lo primero que cae. Probé cinco mecanismos de pnpm para darle un TS 6 solo a ESLint: ninguno funciona, y el motivo enseña algo sobre cómo se resuelven los peers. - [Un GET colgaba mi servidor MCP cinco minutos y ningún test lo vio](https://www.angelcruz.dev/post/mcp-get-sse-timeout-serverless): Inteligencia Artificial · 2026-08-02 — Un GET a un endpoint MCP no es un health check: abre un stream SSE. En modo stateless nadie lo cierra nunca, y en serverless eso se paga en minutos de función facturada. Por qué la suite no lo vio y cómo se arregla con un 405. - [Stacked pull requests: por dentro solo son rebases en cascada](https://www.angelcruz.dev/post/stacked-pull-requests): DevOps · 2026-08-01 — GitHub los acaba de poner en preview público, pero el mecanismo tiene años y cabe en dos flags de git. Si entiendes la cascada, la herramienta pasa a ser opcional. - [MCP se vuelve stateless: adiós a las sesiones y al Sampling](https://www.angelcruz.dev/post/mcp-stateless-adios-sesiones-y-sampling): Inteligencia Artificial · 2026-07-28 — La revisión 2026-07-28, hoy la versión vigente de MCP, borra el handshake, las sesiones y la resumabilidad, y deja a Roots, Sampling y Logging en camino de salida. Casi todo sale de una sola decisión. - [Por qué env(safe-area-inset) te devuelve 0](https://www.angelcruz.dev/post/safe-area-inset-viewport-fit-cover): Web · 2026-07-28 — Copias la receta del notch, la pegas, y no pasa nada. No está rota: le falta una pieza. Y cuando entiendas cuál, vas a descubrir que probablemente no la necesitas. - [Seis bugs que mis 615 aserciones en verde no detectaron](https://www.angelcruz.dev/post/bugs-que-los-tests-en-verde-no-detectan): WordPress · 2026-07-26 — 615 aserciones en verde, plugin check limpio, y ninguno de los seis defectos que importaban apareció ahí. Qué los hacía invisibles y cómo se arregla cada uno. - [Plugins de Claude Code: empaqueta y comparte tu setup](https://www.angelcruz.dev/post/plugins-claude-code): Inteligencia Artificial · 2026-07-23 — Un plugin de Claude Code agrupa skills, subagentes, hooks y servidores MCP en un paquete instalable y versionable, para compartir tu configuración con tu equipo o la comunidad. Cómo se crea, qué lleva el manifiesto y cómo se instala. - [Cómo conectar un servidor MCP a Cursor y Claude Code](https://www.angelcruz.dev/post/conectar-mcp-cursor-claude): Inteligencia Artificial · 2026-07-22 — Paso a paso para conectar un servidor MCP a Claude Code (claude mcp add, stdio o HTTP) y a Cursor (.cursor/mcp.json), verificar que funciona y resolver los problemas más comunes. - [Qué es un agente de IA (para desarrolladores)](https://www.angelcruz.dev/post/que-es-un-agente-de-ia): Inteligencia Artificial · 2026-07-21 — Un agente de IA no es un chatbot: es un modelo que percibe, decide y actúa en bucle usando herramientas para cumplir un objetivo. Su anatomía, cómo razona, cómo se le dan herramientas con MCP y cómo pasar de un agente a un equipo. - [Skills de Claude Code: cómo crearlas y cuándo usarlas](https://www.angelcruz.dev/post/skills-claude-code): Inteligencia Artificial · 2026-07-20 — Una skill es un procedimiento que Claude Code carga solo cuando lo necesita. Ideal para checklists y flujos repetibles (revisar un PR, hacer un release) que no quieres tener siempre en el contexto. Cómo se crea un SKILL.md, con un ejemplo real de Laravel. - [Aprende Laravel: Deploy a producción](https://www.angelcruz.dev/post/aprende-laravel-deploy): Laravel · 2026-07-20 — Aprende a poner tu app Laravel en producción: requisitos del servidor, los comandos de optimización, APP_DEBUG en false, permisos de directorios y plataformas como Laravel Cloud y Forge. - [Aprende Laravel: Artisan](https://www.angelcruz.dev/post/aprende-laravel-artisan): Laravel · 2026-07-20 — Aprende a usar Artisan, la consola de Laravel: los comandos que más vas a usar, cómo crear tus propios comandos con argumentos y opciones, y la entrada y salida por consola. - [Aprende Laravel: Componentes de Blade](https://www.angelcruz.dev/post/aprende-laravel-blade-componentes): Laravel · 2026-07-20 — Aprende a crear interfaces reutilizables con los componentes de Blade: componentes anónimos y de clase, pasar datos con props, slots y el attribute bag. - [Loop y harness engineering: cómo se construye un agente de IA](https://www.angelcruz.dev/post/loop-harness-engineering): Inteligencia Artificial · 2026-07-20 — Un modelo no es un agente por sí solo: necesita un harness (el bucle, las herramientas y la gestión de contexto). Esto es el loop engineering, por qué el criterio de parada lo es casi todo, y en qué se diferencia de un metaharness. - [Aprende Laravel: Testing con Pest](https://www.angelcruz.dev/post/aprende-laravel-testing-pest): Laravel · 2026-07-20 — Aprende a testear tu app Laravel con Pest: la diferencia entre tests de Feature y Unit, cómo crear y correr tests, tests HTTP y RefreshDatabase para tocar la base de datos. - [Aprende Laravel: Middleware](https://www.angelcruz.dev/post/aprende-laravel-middleware): Laravel · 2026-07-20 — Aprende qué es el middleware en Laravel y cómo usarlo: crear el tuyo, el método handle con $next, asignarlo a rutas, grupos, alias y pasarle parámetros. - [Aprende Laravel: Autenticación](https://www.angelcruz.dev/post/aprende-laravel-autenticacion): Laravel · 2026-07-20 — Aprende a manejar la autenticación en Laravel 13: los starter kits con Fortify (login, registro, 2FA), cómo proteger rutas con middleware y cómo acceder al usuario autenticado. - [Aprende Laravel: Validación](https://www.angelcruz.dev/post/aprende-laravel-validacion): Laravel · 2026-07-20 — Aprende a validar datos de entrada en Laravel: validación en el controller, Form Requests, mensajes personalizados y cómo mostrar los errores en Blade. - [MCP por dentro: cómo funciona el protocolo que conecta agentes y herramientas](https://www.angelcruz.dev/post/mcp-por-dentro): Inteligencia Artificial · 2026-07-17 — Ya sabes qué es MCP. Ahora, cómo funciona por dentro: el modelo host-cliente-servidor, el protocolo JSON-RPC 2.0 que viaja por el cable, la negociación de versión por petición y los dos transportes (stdio y HTTP). Un análisis a fondo desde la especificación oficial. - [Modelos chinos abiertos para programar: por qué importan y cómo usarlos](https://www.angelcruz.dev/post/modelos-chinos-abiertos-para-programar): Inteligencia Artificial · 2026-07-16 — Los mejores modelos para programar ya no son solo de OpenAI y Anthropic. Los laboratorios chinos (Zhipu, DeepSeek, Alibaba, Moonshot) publican modelos de pesos abiertos que lideran el open-weight en código, cuestan una fracción de los cerrados, y los puedes enchufar a tu agente. Panorama, cómo usarlos y la letra chica. - [Vibe coding vs. agentic engineering: por qué la estructura le gana a la velocidad](https://www.angelcruz.dev/post/vibe-coding-vs-agentic-engineering): Inteligencia Artificial · 2026-07-16 — La diferencia entre vibe coding y agentic engineering no la marca la herramienta, la marca el proceso. Uno prioriza la velocidad y acumula deuda; el otro mete al agente dentro de un flujo con disciplina de ingeniería. Cuándo conviene cada uno, aterrizado en herramientas reales. - [CLIs para orquestar agentes de IA en tu terminal](https://www.angelcruz.dev/post/clis-orquestar-agentes-ia): Inteligencia Artificial · 2026-07-15 — Cuando corres varios agentes de IA a la vez (Claude Code, Codex, Gemini), necesitas una capa que los coordine. Esto es la orquestación de agentes, sus piezas (metaharness, memoria compartida, el bucle) y las herramientas que la hacen posible. - [MentisDB: memoria persistente y self-hosted para tus agentes de IA](https://www.angelcruz.dev/post/mentisdb-memoria-persistente-agentes): Inteligencia Artificial · 2026-07-15 — MentisDB es un motor de memoria en Rust, self-hosted y open source, que le da a Claude Code, Cursor o Codex un cerebro persistente vía MCP: sobrevive a los reinicios de contexto y lo controlas tú, no tu proveedor. - [Hooks en Claude Code: automatiza y aplica reglas](https://www.angelcruz.dev/post/hooks-claude-code): Inteligencia Artificial · 2026-07-14 — Los hooks ejecutan comandos en momentos clave del ciclo de vida de Claude Code. Sirven para forzar reglas que siempre deben cumplirse: formatear con Pint, correr tests o proteger archivos en tu proyecto Laravel. - [La tecnología del Mundial 2026 es tu stack de producción](https://www.angelcruz.dev/post/tecnologia-en-el-mundial-2026): Inteligencia Artificial · 2026-07-11 — Visión por computadora, fusión de sensores, LLMs sobre datos propios e inferencia en el edge. El Mundial 2026 corre sobre los mismos patrones de ingeniería que usas en producción, solo que en el entorno más exigente que existe. - [Claude Code vs Cursor: ¿cuál elegir en 2026?](https://www.angelcruz.dev/post/claude-code-vs-cursor): Inteligencia Artificial · 2026-07-10 — Claude Code y Cursor resuelven el mismo problema con filosofías opuestas: un agente en la terminal vs un editor potenciado con IA. Comparativa honesta y cuándo conviene cada uno. - [Cloudflare Monetization Gateway: cobrarle a los agentes de IA por tu contenido](https://www.angelcruz.dev/post/cloudflare-monetization-gateway): Inteligencia Artificial · 2026-07-07 — Cloudflare quiere que puedas cobrar por página, API o herramienta MCP que consuma un agente de IA, usando el protocolo abierto x402 y pagos en stablecoins. Qué es, cómo funciona y qué significa para la web. - [npx skills: instala y comparte skills para tu agente de IA](https://www.angelcruz.dev/post/npx-skills): Inteligencia Artificial · 2026-07-03 — npx skills es un gestor de skills para agentes de IA hecho por Vercel Labs: instala las skills de cualquier repo de GitHub en Claude Code o Cursor con un comando. Ejemplo real con abr4xas/skills. - [Laravel Charter: crea tu app Laravel con Sail sin memorizar comandos](https://www.angelcruz.dev/post/laravel-charter): Laravel · 2026-07-03 — Laravel Charter es un generador visual que arma el comando para crear una app Laravel con Sail. Eliges servicios, starter kit y herramientas, y copias un solo curl. - [IA para desarrolladores Laravel: la guía completa](https://www.angelcruz.dev/post/ia-para-desarrolladores-laravel): Laravel · 2026-07-03 — Todo lo que un dev de Laravel necesita para trabajar con IA: codear con Claude Code y Boost, exponer tu app con MCP y entender las piezas oficiales del ecosistema. - [Claude Code en un proyecto Laravel real: flujo completo](https://www.angelcruz.dev/post/claude-code-proyecto-laravel): Laravel · 2026-07-03 — Cómo usar Claude Code en un proyecto Laravel de verdad: configurar Boost y el CLAUDE.md, trabajar en plan mode y dejar que el agente escriba código idiomático con tests Pest. - [AAP: OAuth 2.0 para la era de los agentes de IA](https://www.angelcruz.dev/post/aap-oauth-agentes-de-ia): Inteligencia Artificial · 2026-07-02 — OAuth no fue diseñado para agentes autónomos. AAP es la extensión que mete capacidades con límites, binding a tarea, cadena de delegación y aprobación humana dentro del propio token. - [MCP para Laravel: conecta tu app con la IA](https://www.angelcruz.dev/post/mcp-para-laravel): Laravel · 2026-07-01 — En Laravel el MCP tiene dos caras oficiales: Laravel Boost, para que tu agente escriba mejor Laravel, y Laravel MCP, para exponer tu app a ChatGPT, Claude o Cursor. - [Vercel ahora soporta Docker: por qué importa](https://www.angelcruz.dev/post/vercel-soporta-docker): DevOps · 2026-06-30 — Vercel deja desplegar cualquier Dockerfile sobre su infraestructura con autoscaling y pricing por uso. Más que una feature, es una señal de hacia dónde va el deploy. - [Cómo ahorrar tokens en Claude Code y gastar menos](https://www.angelcruz.dev/post/optimizar-claude-code-reducir-tokens): Inteligencia Artificial · 2026-06-29 — Técnicas concretas para gastar menos tokens en Claude Code: gestionar el contexto, elegir el modelo correcto, no romper la caché, delegar en subagentes y mantener tu CLAUDE.md liviano. - [Mejores servidores MCP para desarrolladores](https://www.angelcruz.dev/post/mejores-servidores-mcp): Inteligencia Artificial · 2026-06-29 — Una selección honesta de servidores MCP útiles para programar: los oficiales de referencia y los que de verdad usarías a diario (git, bases de datos, navegador, documentación). - [Subagentes en Claude Code: cómo crearlos y para qué sirven](https://www.angelcruz.dev/post/subagentes-claude-code): Inteligencia Artificial · 2026-06-29 — Qué es un subagente en Claude Code, para qué sirve, cómo crear uno con /agents o a mano, y buenas prácticas para delegar tareas sin ensuciar tu contexto. - [Qué poner en tu CLAUDE.md: buenas prácticas](https://www.angelcruz.dev/post/claude-md-buenas-practicas): Inteligencia Artificial · 2026-06-29 — Qué es el CLAUDE.md, dónde colocarlo, qué instrucciones incluir y cuáles dejar fuera, y las buenas prácticas que de verdad hacen que Claude Code te haga caso. - [Solo (SoloTerm): el workspace para tus agentes de IA](https://www.angelcruz.dev/post/soloterm-workspace-agentes-ia): Inteligencia Artificial · 2026-06-28 — Solo es una terminal nativa que corre Claude Code, Codex, Gemini y tu stack de desarrollo en un solo lugar, y deja que los agentes se coordinen entre sí vía MCP. - [Cómo crear un servidor MCP en TypeScript paso a paso](https://www.angelcruz.dev/post/como-crear-un-servidor-mcp): Inteligencia Artificial · 2026-06-27 — Crea tu primer servidor MCP con el SDK oficial de TypeScript: código completo, prueba con MCP Inspector y conéctalo a Claude y Cursor desde cero. - [¿Claude te está haciendo más tonto? Una reflexión](https://www.angelcruz.dev/post/claude-te-esta-haciendo-mas-tonto): Inteligencia Artificial · 2026-06-19 — Luis Güette escribió que si te sientes más inteligente cada vez que usas Claude, quizás te estás volviendo más tonto. Me incomodó lo suficiente como para sentarme a pensarlo en serio. - [Cómo evitar que Google indexe los archivos de /_next/ en Next.js](https://www.angelcruz.dev/post/noindex-next-static-google): Next.js · 2026-06-16 — Google intenta indexar los chunks JS y CSS de /_next/static y los marca como 'Rastreada: actualmente sin indexar' en Search Console. Te explico por qué pasa, por qué NO se arregla con robots.txt y cuál es la solución correcta con X-Robots-Tag. - [Operadores en PHP: la guía completa](https://www.angelcruz.dev/post/operadores-php): PHP · 2026-06-16 — Todos los operadores de PHP en un solo lugar: aritméticos, de asignación, de comparación, lógicos, de cadena, de incremento, bit a bit, ternario y null coalescing, con ejemplos y los gotchas que más confunden. - [== vs === en PHP: igualdad suelta vs estricta](https://www.angelcruz.dev/post/igual-vs-identico-php): PHP · 2026-06-16 — La diferencia entre == y === en PHP explicada con ejemplos: conversión de tipos, el cambio de PHP 8, los gotchas de switch e in_array, y cómo comparar arrays y objetos. - [Operador spaceship (<=>) en PHP](https://www.angelcruz.dev/post/operador-spaceship-php): PHP · 2026-06-16 — Qué es el operador nave espacial (<=>) de PHP, qué devuelve y su uso estrella: ordenar arrays con usort. Orden ascendente, descendente y por múltiples criterios, con ejemplos. - [Null coalescing en PHP: el operador ?? y ??=](https://www.angelcruz.dev/post/null-coalescing-php): PHP · 2026-06-16 — Cómo funciona el operador null coalescing (??) y su versión de asignación (??=) en PHP: valores por defecto sin warnings, encadenamiento, y la diferencia clave con el operador Elvis (?:). - [Requisitos de OpenClaw y errores comunes al instalar](https://www.angelcruz.dev/post/requisitos-y-errores-comunes-openclaw): OpenClaw · 2026-06-16 — Los requisitos reales de OpenClaw (Node, RAM, sistema operativo) y cómo resolver los errores más comunes al instalarlo: Node demasiado viejo, el daemon que no arranca, el puerto 18789 y la API key. - [Cómo instalar OpenClaw en una Raspberry Pi (4 y 5)](https://www.angelcruz.dev/post/instalar-openclaw-en-raspberry-pi): OpenClaw · 2026-06-16 — Guía paso a paso para correr OpenClaw 24/7 en una Raspberry Pi: qué modelo sirve de verdad, Raspberry Pi OS 64-bit, instalación, daemon con systemd y acceso remoto con Cloudflare Tunnel. - [Cómo instalar OpenClaw con Docker Compose](https://www.angelcruz.dev/post/instalar-openclaw-con-docker-compose): OpenClaw · 2026-06-16 — Instalación de OpenClaw con Docker y Docker Compose paso a paso: imagen oficial en GitHub Container Registry, el script de setup, dónde se persiste la configuración y cómo actualizar sin perder datos. - [Cómo instalar OpenClaw en Ubuntu (servidor 24/7)](https://www.angelcruz.dev/post/instalar-openclaw-en-ubuntu): OpenClaw · 2026-06-16 — Instala OpenClaw en Ubuntu paso a paso: script automático o Node manual, cómo dejarlo corriendo como servicio systemd de usuario, acceso remoto sin abrir puertos y el ajuste que evita que el kernel te mate el gateway. - [Cómo instalar OpenClaw en Windows (nativo o WSL2)](https://www.angelcruz.dev/post/instalar-openclaw-en-windows): OpenClaw · 2026-06-16 — OpenClaw en Windows 10 y 11 tiene tres caminos oficiales y dos son nativos: el instalador de PowerShell, la app Windows Hub o un gateway en WSL2. Cuándo conviene cada uno, el arranque automático y los fallos típicos. - [DNS-AID: descubrimiento de agentes de IA a través de DNS](https://www.angelcruz.dev/post/dns-aid-descubrimiento-agentes-ia-dns): Inteligencia Artificial · 2026-06-14 — DNS-AID es un borrador del IETF para que los agentes de IA se descubran vía DNS, reutilizando registros SVCB (RFC 9460) y DNSSEC. Te explico qué es, cómo funciona y si conviene hoy, leído del draft original. - [Cache::flexible() en Laravel: la clave interna que no escribiste](https://www.angelcruz.dev/post/key-fantasma-de-cache-flexible): Laravel · 2026-06-11 — Cache::flexible() guarda una clave interna que nunca escribiste. La encontré construyendo una UI de caché: esta es la historia, el código del framework y cómo la resolví. - [Composer 2.10: bloqueo de malware y políticas de dependencias](https://www.angelcruz.dev/post/composer-2-10-bloqueo-malware-politicas-dependencias): PHP · 2026-06-01 — Composer 2.10 trae bloqueo de malware nativo, un objeto config.policy unificado para advisories, paquetes abandonados y malware, e inmutabilidad de versiones estables. La respuesta del ecosistema PHP a los ataques de supply chain de 2026. - [Cómo crear un plugin para Claude Cowork (y Claude Code) a partir de tus skills](https://www.angelcruz.dev/post/crear-plugin-claude-cowork-claude-code-desde-skills): Inteligencia Artificial · 2026-05-31 — Guía práctica para empaquetar tus skills en un plugin que funciona igual en Claude Cowork y Claude Code, con el truco de OAuth para conectar un MCP remoto sin API key. - [Partículas atmosféricas en Next.js sin Canvas: performante con CSS puro](https://www.angelcruz.dev/post/particulas-atmosfericas-nextjs-css-sin-canvas): Next.js · 2026-05-24 — Cómo construir un sistema de partículas (embers, chispas, copos de nieve) en Next.js con CSS puro: sin Canvas, sin requestAnimationFrame, SSR-safe, configurable por palette y dirección, y con cero impacto en performance. - [¿Han muerto los MCP por culpa de Skills?](https://www.angelcruz.dev/post/han-muerto-los-mcp-por-culpa-de-skills): Inteligencia Artificial · 2026-03-13 — Skills llegó y muchos declararon a los MCP obsoletos. La realidad es más matizada: no murieron, cambiaron de rol. Te explico por qué. - [Descubre las novedades de Laravel 13](https://www.angelcruz.dev/post/laravel-13-novedades): Laravel · 2026-03-04 — Laravel 13 fue lanzado el 17 de marzo de 2026 con PHP 8.3 mínimo, el Laravel AI SDK de primera parte, soporte JSON:API, búsqueda vectorial, passkeys y mucho más. Guía completa de novedades y breaking changes. - [Laravel Semanal: 16-23 Febrero 2026](https://www.angelcruz.dev/post/laravel-semanal-16-23-febrero-2026): Laravel · 2026-02-23 — Resumen completo de la semana en Laravel: incidente de Laravel Cloud, AI SDK oficial, Statamic 6, NativePHP gratis, y preparativos para Laravel 13. - [Cómo instalar OpenClaw paso a paso](https://www.angelcruz.dev/post/como-instalar-openclaw-guia-completa): OpenClaw · 2026-02-16 — La forma rápida de instalar OpenClaw (antes Clawdbot) es el script oficial: un comando y listo en 5 minutos. Aquí está ese camino, la alternativa manual con npm, y desde dónde seguir según tu sistema. - [Cursor Precios 2026: Planes y Costos Actualizados](https://www.angelcruz.dev/post/cursor-ide-precios-planes): Herramientas · 2026-02-14 — Precios actualizados de Cursor IDE directo de la fuente oficial. Comparativa de planes gratuito vs Pro y todos los tiers: Pro+, Ultra, Teams Standard y Premium, y Enterprise, con las dos bolsas de uso explicadas. - [OpenClaw vs Zapier: Cuál Elegir para Automatización](https://www.angelcruz.dev/post/openclaw-vs-zapier-cual-elegir-automatizacion): OpenClaw · 2026-02-14 — Comparativa completa entre OpenClaw (antes OpenClaw) y Zapier: diferencias clave, pricing, capacidades de automatización y cuándo usar cada herramienta según tus necesidades. - [Aprende Laravel: Proyecto Práctico - Blog Simple](https://www.angelcruz.dev/post/aprende-laravel-proyecto-blog): Laravel · 2026-02-14 — Construye tu primer proyecto Laravel desde cero: un blog completo con autenticación, CRUD de posts y comentarios. Proyecto final de la serie. - [Aprende Laravel: Models, Database & Eloquent](https://www.angelcruz.dev/post/aprende-laravel-models-database): Laravel · 2026-02-14 — Domina Eloquent ORM en Laravel: models, migrations, los cinco tipos de relación, soft deletes, scopes y cómo cerrar el problema N+1 para que no vuelva. - [Aprende Laravel: Controllers](https://www.angelcruz.dev/post/aprende-laravel-controllers): Laravel · 2026-02-14 — Aprende a organizar la lógica de tu aplicación con Controllers en Laravel. Desde controllers básicos hasta resource controllers y Single Action Controllers. - [Content Negotiation para Agentes de IA: De 316KB a 1.3KB (Reducción del 99.6%)](https://www.angelcruz.dev/post/content-negotiation-agentes-ia): Next.js · 2026-02-13 — Cloudflare lanzó una función que reduce tokens un 80%. Pero hay una mejor forma: conversión desde la fuente. Descubre cómo implementar content negotiation en Next.js y lograr 97% de reducción sin perder fidelidad. - [Context7 vs DeepWiki: ¿Cuál elegir para documentación actualizada?](https://www.angelcruz.dev/post/context7-vs-deepwiki-comparativa): Inteligencia Artificial · 2026-02-13 — Comparativa completa entre Context7 y DeepWiki, dos herramientas gratuitas que traen documentación actualizada a tus asistentes de IA. Diferencias y cuándo usar cada una. - [Service Workers: Cache-First vs Network-First - ¿Cuál Usar y Por Qué?](https://www.angelcruz.dev/post/service-workers-estrategias-caching-guia-practica): JavaScript · 2026-02-13 — Descubre las estrategias de caching en Service Workers y aprende cuándo usar cache-first, network-first o stale-while-revalidate para optimizar tu Progressive Web App. - [Migrar al cloud: quién puede hacerlo por ti](https://www.angelcruz.dev/post/migrar-servidores-al-cloud-sin-interrupciones): DevOps · 2026-02-04 — Migrar al cloud sin riesgos es posible. Descubre quién puede migrar tu infraestructura a la nube de forma segura, transparente y sin interrupciones con Aitire. - [Ralph Loop: La Técnica que Revoluciona los Agentes de IA en 2026](https://www.angelcruz.dev/post/ralph-loop-revolucion-agentes-ia): Inteligencia Artificial · 2026-01-26 — Descubre Ralph Loop, la metodología de Geoffrey Huntley que permite a los agentes de IA trabajar en tareas complejas sin límites de contexto, usando Git como memoria y reiniciando cada iteración con contexto fresco - [Clawdbot ahora es OpenClaw: qué pasó con el nombre y qué es hoy](https://www.angelcruz.dev/post/clawdbot-asistente-ia-personal-open-source): OpenClaw · 2026-01-26 — Clawdbot se renombró dos veces en cuatro días: primero a Moltbot por una petición de Anthropic, después a OpenClaw. Qué es el proyecto hoy, qué quedó abandonado con el nombre viejo (y por qué no deberías instalarlo) y qué saber de seguridad antes de usarlo. - [Revalidación On-Demand en Next.js: Invalidar Caché con revalidateTag y revalidatePath](https://www.angelcruz.dev/post/revalidacion-cache-nextjs): Next.js · 2026-01-17 — Aprende cómo implementar revalidación de caché en Next.js usando revalidateTag y revalidatePath con webhooks para mantener tu contenido siempre actualizado sin sacrificar rendimiento. - [Detecta ahorros ocultos en tu cuenta de DigitalOcean en 30 segundos, gratis y sin registro](https://www.angelcruz.dev/post/herramienta-gratuita-optimizar-costos-digitalocean): Herramientas · 2026-01-16 — CloudSaver analiza tu DigitalOcean gratis en 30 segundos: detecta recursos inactivos y ahorra 10-40% en tu factura mensual sin comprometer seguridad. - [Sincronización de Caché en Arquitecturas Híbridas con Laravel](https://www.angelcruz.dev/post/revalidacion-cache-aplicaciones-hibridas): Laravel · 2025-12-29 — Sincroniza el caché entre Laravel y Next.js con una estrategia automática basada en eventos, jobs y revalidación selectiva para mejorar SEO y rendimiento. - [Rebill para WooCommerce](https://www.angelcruz.dev/post/rebill-woocommerce-gateway-pagos-latam): WordPress · 2025-12-28 — Plugin gratuito y de código abierto que integra Rebill en WooCommerce mediante checkout alojado seguro. Sin PCI compliance requerido. Disponible en GitHub. - [Por qué las pruebas técnicas automatizadas no reflejan realmente el potencial del desarrollador](https://www.angelcruz.dev/post/las-pruebas-tecnicas-no-miden-el-talento-real): Opinión · 2025-10-29 — Las pruebas técnicas automatizadas miden velocidad y memorización, no el potencial real del desarrollador. Un análisis de sus sesgos, limitaciones y por qué el talento técnico se evalúa mejor con entrevistas contextuales. - [Cache UI Laravel: administra claves de caché en Redis, File y Database sin borrar todo](https://www.angelcruz.dev/post/cache-ui-laravel-herramienta-para-gestionar-cache): Laravel · 2025-10-07 — Cache UI Laravel es un paquete open source para administrar claves de caché en Laravel de forma selectiva. Lista, busca, previsualiza y elimina claves específicas en Redis, File y Database sin borrar todo el caché. - [IA en WhatsApp 2025: lista completa y cómo usarlas](https://www.angelcruz.dev/post/inteligencias-artificiales-en-whatsapp): Inteligencia Artificial · 2025-09-28 — Lista completa y verificada de inteligencias artificiales accesibles por WhatsApp en 2025: ChatGPT, Copilot, Perplexity, Grok y más. Incluye números de contacto, enlaces wa.me y cómo usar cada una. - [Context7: Documentación siempre actualizada para LLMs y asistentes de código](https://www.angelcruz.dev/post/context7-documentacion-actualizada-asistentes-codigo-ia): Inteligencia Artificial · 2025-09-09 — Context7 brinda documentación oficial y actualizada a asistentes de código IA, evitando errores por ejemplos obsoletos y APIs desactualizadas. - [15 Mejores Herramientas Gratuitas para Desarrolladores en 2025 que Aceleran tu Flujo de Trabajo](https://www.angelcruz.dev/post/herramientas-gratis-para-programadores): Herramientas · 2025-09-01 — Herramientas gratuitas para desarrolladores: descubre cómo elegir, integrar y aprovechar las mejores opciones de software, diseño, colaboración y optimización para acelerar tu flujo de trabajo en 2025. - [Apple Inc vs Apple Corps: el conflicto legal que redefinió el sonido digital](https://www.angelcruz.dev/post/apple-inc-vs-apple-corps-historia): Opinión · 2025-08-29 — Descubre la historia de Apple Inc vs Apple Corps, la disputa legal entre los Beatles y la empresa de Steve Jobs que marcó un antes y un después en la relación entre música y tecnología. - [Guía Completa para Crear Reglas en Cursor](https://www.angelcruz.dev/post/crear-reglas-cursor-ide): Herramientas · 2025-07-06 — Aprende cómo crear reglas personalizadas en Cursor paso a paso: los tres tipos de regla, la sintaxis de los archivos .mdc, cómo migrar desde el .cursorrules antiguo y buenas prácticas. - [Qué es MCP (Model Context Protocol) y cómo funciona](https://www.angelcruz.dev/post/introduccion-a-mcp-model-context-protocol): Inteligencia Artificial · 2025-07-03 — MCP es el estándar abierto que conecta aplicaciones de IA con herramientas y datos externos. Qué es, quién habla con quién en su arquitectura, qué expone un servidor y qué cambió en la revisión vigente del protocolo. - [Testing de modelos en Laravel: ¿necesario o no? Una mirada crítica y práctica](https://www.angelcruz.dev/post/laravel-testing-modelos-si-o-no): Laravel · 2025-06-30 — ¿Vale la pena hacer testing de modelos en Laravel? Análisis crítico y práctico: ventajas, cuándo es necesario, errores comunes y mejores prácticas con PHPUnit, Pest y factories. - [Laravel Nightwatch Cambia las Reglas: Monitoreo y Logs sin Dolor](https://www.angelcruz.dev/post/laravel-nightwatch-monitoreo): Laravel · 2025-06-19 — Laravel Nightwatch es el servicio de monitoreo y observabilidad diseñado exclusivamente para Laravel, anunciado en junio de 2025. Dashboard en tiempo real, historial de errores, monitoreo de jobs y comparativa con Sentry. - [Diseño atómico en Laravel: guía básica para componentes reutilizables](https://www.angelcruz.dev/post/componentes-reutilizables-laravel): Laravel · 2025-06-13 — Guía práctica para implementar Atomic Design en Laravel usando Blade Components. Aprende a organizar átomos, moléculas y organismos en una estructura de carpetas escalable y mantenible. - [WordPress Studio: Guía Completa 2026](https://www.angelcruz.dev/post/que-es-wordpress-studio): WordPress · 2024-05-15 — WordPress Studio es la herramienta oficial gratuita de WordPress.com para desarrollo local. Disponible para macOS, Windows y Linux, incluye CLI, Blueprints, Xdebug, un agente de IA integrado y un servidor MCP que conecta tus sitios locales con Claude Code o Cursor. - [Uso Eficiente de Memoria en PHP con WeakMaps](https://www.angelcruz.dev/post/ahorro-memoria-php-weakmaps): PHP · 2024-05-12 — Descubre cómo los WeakMaps en PHP pueden optimizar el uso de memoria, mejorando el rendimiento y escalabilidad de tus aplicaciones. - [¿Cuál es la Mejor Plataforma de E-commerce para tu Negocio con Laravel?](https://www.angelcruz.dev/post/mejores-plataformas-ecommerce-laravel): Laravel · 2024-05-05 — Descubre cómo potenciar tu negocio con Laravel para e-commerce. Conoce las mejores plataformas y estrategias de marketing digital. ¡Haz crecer tu tienda en línea hoy! - [Entendiendo el patrón Abstract Factory](https://www.angelcruz.dev/post/patron-abstract-factory-php): PHP · 2024-04-10 — Mejora la arquitectura de tus proyectos PHP: domina el patrón Abstract Factory para un código más eficiente y organizado. - [La importancia del archivo composer.lock en PHP](https://www.angelcruz.dev/post/importancia-composer-lock-php): PHP · 2024-03-02 — Descubre la importancia del archivo composer.lock en el desarrollo PHP. Asegura consistencia y seguridad en tus proyectos con esta herramienta clave. - [Descubre las novedades de Laravel 11](https://www.angelcruz.dev/post/laravel-11-novedades): Laravel · 2024-02-26 — Descubre las emocionantes mejoras de Laravel 11 para construir aplicaciones web avanzadas y eficientes. ¡El futuro del desarrollo web está aquí! - [Origen y relevancia del estándar de los 80 caracteres por línea, en la programación](https://www.angelcruz.dev/post/origen-relevancia-estandar-80-caracteres-linea-programacion): Opinión · 2024-02-16 — Descubre por qué los 80 caracteres por línea son clave en la programación. ¡Un vistazo al pasado y su impacto en el presente! - [Kommo CRM: Descubre su innovadora herramienta WhatsApp CRM](https://www.angelcruz.dev/post/kommo-crm-whatsapp): Herramientas · 2024-01-15 — Gestionar eficazmente las relaciones con los clientes es un proceso continuo que requiere precisión y compromiso, lo que supone un desafío. Este escenario presenta a Kommo CRM como una solución integral y destaca la innovadora herramienta CRM WhatsApp. - [Aprende Laravel: Vistas & Layouts](https://www.angelcruz.dev/post/aprende-laravel-vistas-layouts): Laravel · 2023-06-03 — Las vistas ofrecen una presentación visual de los resultados (una pantalla de nuestro sitio web) al usuario, quien podrá interactuar con ella. - [Aprende Laravel: Rutas](https://www.angelcruz.dev/post/aprende-laravel-rutas): Laravel · 2023-05-30 — Este es el segundo artículo de seis relacionado a como usar laravel por primera vez, en este artículo vamos a conocer lo básico del sistema de rutas de Laravel - [Aprende Laravel: Instalación & Setup](https://www.angelcruz.dev/post/aprende-laravel-instalacion-setup): Laravel · 2023-05-22 — Aprende Laravel desde cero: instalación y setup paso a paso (Parte 1/6). Conocimiento básico necesario para dominar este framework PHP moderno. - [Cómo implementar Global Scopes en Laravel](https://www.angelcruz.dev/post/como-implementar-los-global-scopes-usando-laravel): Laravel · 2023-02-11 — Un global scope aplica la misma condición a todas las consultas de un modelo sin que tengas que repetirla. Cómo crearlo, las dos formas de registrarlo, cómo quitarlo cuando estorba y cuándo no conviene usarlo. - [Cómo usar Query Scopes en Laravel](https://www.angelcruz.dev/post/como-se-usan-los-query-scopes): Laravel · 2023-02-05 — Los query scopes son una alternativa para optimizar nuestro código cuando necesitamos hacer condiciones específicas en nuestras consultas, aquí en este post te explico de que tratan. - [Limpiar la caché de Laravel: comandos y error de permisos](https://www.angelcruz.dev/post/laravel-error-de-permisos-al-intentar-borrar-el-cache): Laravel · 2023-01-08 — Los comandos para limpiar cada caché de Laravel, y qué hacer cuando artisan falla con un error de permisos en storage. Lo segundo me pasó haciendo deploys con Envoy. - [Como implementar Actions en Laravel](https://www.angelcruz.dev/post/como-implementar-actions-en-laravel): Laravel · 2022-02-10 — Que son las actions? Pues basicamente son clases que se encargan de tareas especificas dentro de nuestra aplicación. - [Como usar Ping-O-Matic con Laravel](https://www.angelcruz.dev/post/como-usar-ping-o-matic-con-laravel): Laravel · 2022-01-30 — Ping-O-Matic es un servicio que permite notificar a los motores de busqueda que hemos publicado un nuevo artículo. - [Crear OG images en Laravel con Browsershot](https://www.angelcruz.dev/post/crear-og-images-con-laravel-y-browsershot): Laravel · 2022-01-17 — Hay muchos servicios por ahí que sirven para crear este tipo de imágenes pero para no depender de ellos usaremos browsershot, que es un paquete creado por la gente de spatie. - [Script para configurar docker y docker-compose](https://www.angelcruz.dev/post/script-para-configurar-docker-y-docker-compose): DevOps · 2021-07-01 — Docker Compose es una herramienta que permite simplificar el uso de Docker. A partir de archivos YAML es más sencillo crear contenedores, conectarlos, habilitar puertos, volumenes, etc. - [Qué hacer cuando necesitas subir una app de Laravel a un hosting compartido?](https://www.angelcruz.dev/post/que-hacer-cuando-necesitas-subir-aun-app-de-laravel-a-un-hosting-compartido): Laravel · 2021-04-07 — Es un proceso un sencillo que siguiendo estos pasos podrás hacer sin muchos problemas - [Hablemos sobre alpinejs](https://www.angelcruz.dev/post/hablemos-sobre-alpinejs): JavaScript · 2021-01-04 — Alpine.js: framework JavaScript ligero con reactividad de Vue/React. Ideal para comportamiento dinámico sin el peso de frameworks grandes. Guía completa. - [password_hash en PHP: Cómo Hashear Contraseñas con bcrypt](https://www.angelcruz.dev/post/hashing-passwords-con-php): PHP · 2020-05-14 — Cómo usar password_hash en PHP: bcrypt y Argon2id, el parámetro cost, la anatomía del hash $2y$, el límite de 72 bytes que trunca en silencio y por qué nunca debes usar md5. - [¿Cuál es la diferencia entre WHERE y HAVING en SQL?](https://www.angelcruz.dev/post/cual-es-la-diferencia-entre-where-y-having-en-mysql): Bases de Datos · 2020-04-17 — WHERE filtra filas antes de agrupar y HAVING filtra grupos después. De ahí salen todas las demás diferencias: los alias, las funciones agregadas y por qué una de las dos usa mejor los índices. - [Instalar Robo 3T (formerly Robomongo) en Ubuntu 18.04](https://www.angelcruz.dev/post/instalar-robo-3t-formerly-robomongo-en-ubuntu-1804): Bases de Datos · 2020-04-16 — Robo3T, anteriormente conocido como RobMongo, es una de las mejores herramientas GUI para administrar y consultar la base de datos MongoDB. - [Arduino Uno con ¿javascript?](https://www.angelcruz.dev/post/arduino-uno-con-javascript): JavaScript · 2020-02-11 — Controla Arduino con JavaScript usando Johnny-Five. Tutorial paso a paso para hacer proyectos interesantes de forma sencilla y entretenida. - [Integrando "Invisible reCAPTCHA" de Google de forma fácil en Laravel](https://www.angelcruz.dev/post/integrando-invisible-recaptcha-de-google-de-forma-facil-en-laravel): Laravel · 2020-01-18 — Vamos a integrar "Invisible reCAPTCHA" de Google en Laravel en menos de 5 minutos. - [Ordenar productos por SKU en WooCommerce](https://www.angelcruz.dev/post/ordenar-por-sku-con-woocommerce): WordPress · 2019-12-05 — Cómo añadir la opción 'Ordenar por SKU' al selector de la tienda en WooCommerce con dos filtros de PHP. Código completo y dónde colocarlo. - [Tipos TEXT en MySQL: TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT](https://www.angelcruz.dev/post/tamanos-maximos-de-almacenamiento-de-text-tinytext-mediumlong-text): Bases de Datos · 2019-09-21 — El tamaño máximo de cada tipo de texto en MySQL, TINYTEXT, TEXT, MEDIUMTEXT y LONGTEXT, en bytes y en caracteres, sus diferencias, y cómo elegir el correcto sin tener que migrar la tabla después. - [Qué es Adminer, el gestor de bases de datos de un solo archivo](https://www.angelcruz.dev/post/adminer-gestor-de-bases-de-datos-minimalista): Bases de Datos · 2019-09-21 — Adminer gestiona MySQL, PostgreSQL, SQLite y más desde un único archivo PHP. Qué lo diferencia de phpMyAdmin, cómo instalarlo y qué cambia en la versión 6.0.0. - [Rest API en WordPress](https://www.angelcruz.dev/post/rest-api-en-wordpress): WordPress · 2019-08-02 — Desde la versión 4.7 WordPress integra una REST API y hoy les voy hablar sobre un caso peculiar sobre las rutas personalizadas. - [Operador ternario en PHP](https://www.angelcruz.dev/post/el-operador-ternario-php): PHP · 2019-07-31 — Qué es el operador ternario en PHP y cómo se usa: la sintaxis, el Elvis (?:), el null coalescing (??), cuatro casos reales, cuándo conviene un if o un match, y por qué anidar sin paréntesis revienta desde PHP 8. - [Operadores AND, OR y módulo en JavaScript](https://www.angelcruz.dev/post/operadores-en-javascript-segunda-parte-final): JavaScript · 2019-07-15 — Domina operadores avanzados en JavaScript (Parte 2): lógicos, comparación y asignación. Ejemplos prácticos para escribir código más eficiente. - [Operadores en JavaScript, primera parte](https://www.angelcruz.dev/post/operadores-en-javascript-primera-parte): JavaScript · 2019-03-25 — Aprende operadores en JavaScript desde cero (Parte 1): aritméticos, asignación y concatenación. Fundamentos esenciales con ejemplos prácticos. ## Lab: TIL (solo markdown) Notas cortas, una por URL, sin página HTML. Se leen en contexto en [/lab](https://www.angelcruz.dev/lab). - [IndexNow no acelera la indexación en Google](https://www.angelcruz.dev/lab/indexnow-no-sirve-para-google.md) (2026-08-15, SEO, Web Platform) - [La URL que más necesitas reenviar a IndexNow es la que acabas de borrar](https://www.angelcruz.dev/lab/indexnow-origen-de-un-redirect.md) (2026-08-15, SEO, DevOps) - [requestAnimationFrame no dispara en pestañas de fondo](https://www.angelcruz.dev/lab/requestanimationframe-pestanas-de-fondo.md) (2026-08-04, JavaScript, React, Web Platform) - [pnpm 10 en CI ignora en silencio los ajustes de pnpm 11](https://www.angelcruz.dev/lab/pnpm-10-ci-ignora-ajustes-de-pnpm-11.md) (2026-08-04, pnpm, CI/CD, DevOps) - [minimumReleaseAgeExclude de pnpm acumula en vez de reemplazar](https://www.angelcruz.dev/lab/pnpm-minimumreleaseageexclude-acumula.md) (2026-08-04, pnpm, DevOps) - [Chrome pinta el anillo de foco de un SVG en :focus, no en :focus-visible](https://www.angelcruz.dev/lab/chrome-anillo-de-foco-svg-focus-visible.md) (2026-08-01, CSS, Accessibility, Web Platform) - [new Date() parsea la fecha sin hora como UTC y con hora como local](https://www.angelcruz.dev/lab/new-date-utc-vs-local-segun-la-hora.md) (2026-08-01, JavaScript, Web Platform) - [Laravel 13: Context::add() comparte datos entre middlewares y jobs](https://www.angelcruz.dev/lab/laravel-13-context-add-middlewares-y-jobs.md) (2026-05-15, Laravel, PHP, Backend) - [PHP 8.4: Property hooks reemplazan getters y setters](https://www.angelcruz.dev/lab/php-8-4-property-hooks.md) (2026-05-12, PHP, Backend) - [@starting-style permite animar elementos al aparecer en el DOM](https://www.angelcruz.dev/lab/starting-style-animar-al-aparecer.md) (2026-05-08, CSS, Animation, Web Platform) - [View Transitions API funciona cross-document en Chrome 126+](https://www.angelcruz.dev/lab/view-transitions-cross-document.md) (2026-05-04, CSS, Web Platform, Performance) - [Next.js 16: 'use cache' + cacheLife() reemplaza configuración fetch](https://www.angelcruz.dev/lab/next-16-use-cache-cachelife.md) (2026-04-30, Next.js, Cache, Performance) - [Next.js revalidateTag() requiere expire: 0 para invalidación inmediata](https://www.angelcruz.dev/lab/next-revalidatetag-expire-0.md) (2026-01-29, Next.js, Cache, Performance) - [OKLCH es superior a HSL para dark mode](https://www.angelcruz.dev/lab/oklch-vs-hsl-en-dark-mode.md) (2026-01-28, CSS, Design, Accessibility) - [React.cache() deduplica requests en Server Components](https://www.angelcruz.dev/lab/react-cache-deduplica-requests.md) (2026-01-27, React, Next.js, Performance) - [Tailwind @theme inline reemplaza extend en v4](https://www.angelcruz.dev/lab/tailwind-theme-inline-en-v4.md) (2026-01-26, Tailwind, CSS) - [AVIF reduce imágenes 50% vs WebP](https://www.angelcruz.dev/lab/avif-vs-webp-peso-de-imagenes.md) (2026-01-25, Performance, Images, Next.js) - [adjustFontFallback previene CLS en font loading](https://www.angelcruz.dev/lab/adjustfontfallback-previene-cls.md) (2026-01-24, Next.js, Performance, Fonts) ## Recursos opcionales - [llms-full.txt](https://www.angelcruz.dev/llms-full.txt): Versión con cuerpo completo de cada post embebido en markdown. - [Feed RSS](https://www.angelcruz.dev/feed.xml): Feed RSS de los artículos del blog (XML). - [Feed RSS de TIL](https://www.angelcruz.dev/til.xml): Feed RSS solo de los TIL, notas breves, separado del de artículos (XML). Markdown: https://www.angelcruz.dev/til.md - [Sitemap](https://www.angelcruz.dev/sitemap.xml): Sitemap XML del sitio. - [Política de privacidad](https://www.angelcruz.dev/privacidad): Cómo se tratan los datos en el sitio. - [Términos y condiciones](https://www.angelcruz.dev/terminos): Términos de uso del sitio.