Book: PHP to TypeScript Also by me: The TypeScript Library — the 5-book collection My project: Hermes IDE | GitHub — an IDE for developers who ship with Claude Code and other AI coding tools Me: xgabriel.com | GitHub Day two on the new TypeScript team. You left Symfony last Friday. You open the new TypeScript repo, scroll to a controller, and expect to see something close to: #[Route('/users/{id}', methods: ['GET'])] public function show ( int $id ): Response { /* ... */ } Enter fullscreen mode Exit fullscreen mode What you find instead is one of three different things, depending on which framework the team picked: // NestJS @ Controller ( ' users ' ) class UsersController { @ Get ( ' :id ' ) show (@ Param ( ' id ' ) id : number ) { /* ... */ } } Enter fullscreen mode Exit fullscreen mode // Hono app . get ( ' /users/:id ' , validate ( IdParam ), async ( c ) => { /* ... */ }); Enter fullscreen mode Exit fullscreen mode // tRPC export const users = router ({ show : publicProcedure . input ( z .…