Cohete Skeleton: lo que tienes al clonar en 2026
Si tuvieras que empezar un proyecto web hoy, que necesitas?
Un servidor HTTP. Una API. Una base de datos. Un bus de mensajes para domain events. Un frontend. Y en 2026, que tu agente de IA pueda hablar con tu app directamente.
Cohete Skeleton te da todo eso con composer install y php src/bootstrap.php. Un proceso. Un event
loop. Cero configuracion.
Que es Cohete
Un framework PHP async construido sobre ReactPHP. No es Laravel. No es Symfony. No hay PHP-FPM, no hay Apache, no hay request lifecycle. Es un proceso PHP que no se apaga. Sirve HTTP, habla con MySQL, escucha RabbitMQ y expone MCP – todo en el mismo event loop.
Si vienes de Node.js, esto te resulta familiar. Si vienes de PHP tradicional, esto cambia las reglas.
Que viene en el skeleton
Clonas, instalas, arrancas. Esto es lo que tienes:
API REST completa
Un CRUD de Todos con 6 endpoints. No es un ejemplo trivial – usa DDD real:
Todoes un Aggregate Root con domain eventsTodoIdes un UUID Value ObjectTodoRepositoryes una interfaz del dominio (no sabe de MySQL ni de InMemory)TodoCreatedes un domain event que se dispara al crear
Cada controller devuelve PromiseInterface. No hay bloqueo. La base de
datos responde cuando puede, y el server sigue sirviendo otras requests
mientras tanto.
Infraestructura intercambiable
Sin archivo .env: todo corre in-memory.
Zero dependencias externas.
Con MYSQL_HOST en .env: cambia a MySQL async via react/mysql. Misma interfaz, mismo dominio,
diferente almacenamiento.
Con RABBITMQ_HOST en .env: los domain events viajan por AMQP en vez
de en memoria. Multiples consumers, persistencia, procesamiento
distribuido.
El dominio no cambia. Solo se sobreescribe la implementacion en el
container DI. En bootstrap.php:
if ($useRabbit) {
$definitions[MessageBus::class] = static fn () => new BunnieMessageBus([...]);
}
// Sin RABBITMQ_HOST: ReactMessageBus in-memory (framework default)Tres lineas. Infraestructura intercambiable.
Frontend con Web Components
El skeleton incluye un frontend funcional. No React. No Vue. No build step. No webpack.
Dos Web Components nativos con Shadow DOM y ES modules:
TodoApp.js(organism): el CRUD completo, hacefetch()contra la APITodoItem.js(atom): cada fila con toggle y delete
El middleware de static files del framework sirve public/ automaticamente. Un <script type"module">= y listo.
MCP: tu agente habla con tu app
Esto es lo que diferencia a Cohete en 2026.
El skeleton viene con MCP (Model Context Protocol) integrado. Dos transportes:
stdio (desarrollo local)
Tu agente (Claude Code, Cursor) ejecuta php src/mcp-server.php como subproceso. Acceso
directo al dominio via stdin/stdout.
SSE/HTTP (integrado en el server)
El mismo servidor HTTP que sirve la API y el frontend tambien sirve
MCP via Server-Sent Events. GET /mcp/sse
abre el stream, POST /mcp/message recibe
los comandos JSON-RPC.
Conectar Claude Code:
claude mcp add my-app --transport sse http://localhost:8080/mcp/sseUna vez conectado, el agente tiene 5 tools:
| Tool | Que hace |
|---|---|
list_todos |
Lista todos los todos |
get_todo |
Busca por UUID |
create_todo |
Crea un nuevo todo |
update_todo |
Actualiza titulo/completado |
delete_todo |
Borra un todo |
Lo importante: el agente crea un todo via MCP, tu lo ves en el navegador inmediatamente. Mismo proceso, misma memoria, mismo event loop. No hay sincronizacion, no hay polling, no hay cache invalidation. Es el mismo estado.
Anadir una tool nueva es una funcion PHP con un atributo:
#[McpTool(name: 'my_tool')]
public function myTool(string $param): array
{
return await($this->repository->doSomething($param));
}php-mcp/server genera el schema JSON
automaticamente por reflexion de los parametros.
Lo que NO es
- No es un framework de proposito general. Es async-first. Si necesitas PHP tradicional con sesiones y templates Blade, Laravel sigue ahi.
- No tiene ORM. Usa
react/mysqlcon queries directas y un patron Observable para hidratar entidades. - No tiene sistema de templates. El HTML es strings en controllers o archivos estaticos. Web Components se encargan del frontend.
- No tiene middleware de autenticacion. Lo anadiras tu cuando lo necesites.
- No esconde la complejidad. Si no entiendes promises y event loops, te va a costar. Pero si los entiendes, vas a ir rapido.
Los numeros
- 22 archivos PHP, 3 archivos frontend, 26 archivos en total
- 123 lineas de bootstrap (toda la configuracion de la app)
- 48 lineas el bus de RabbitMQ
- 31 tests PHPUnit
- 0 dependencias externas en modo default
Para quien es
- Desarrolladores que quieren async real en PHP sin Node.js
- Equipos que necesitan domain events distribuidos con RabbitMQ
- Proyectos donde la IA es parte del flujo de desarrollo (MCP de serie)
- Gente que prefiere Web Components nativos a React
Como empezar
git clone https://github.com/pascualmg/cohete-skeleton
cd cohete-skeleton
composer install
php src/bootstrap.phpAbre http://localhost:8080. Tienes un
todo app funcionando.
Conecta tu agente al MCP. Crea todos desde la IA. Velos en el navegador.
Lee el CLAUDE.md – es la guia completa
para que cualquier agente de IA sepa construir con Cohete desde el
primer momento.
El codigo esta en GitHub. MIT. Feedback bienvenido.
Comentarios (0)
Sin comentarios todavia. Se el primero!
Deja un comentario