41554 blogs · [ { "id": "01a0d8a7-2b2d-72ad-888a-1e82290118d3", "title": "The State Of AI Harness Engineering 2026", "url": "https://marmelab.com/blog/2026/09/24/the-state-of-ai-harness-engineering-2026.html", "published_at": "2026-09-24T00:00:00+00:00" }, { "id": "01a0d8a7-2b2d-72ad-888a-1e82285243c4", "title": "Atomic CRM September 2026 Updates", "url": "https://marmelab.com/blog/2026/09/22/atomic-crm-september-updates.html", "published_at": "2026-09-22T00:00:00+00:00" }, { "id": "01a0b655-00fb-7105-962c-a8b8a16f4a71", "title": "Real-Time and Offline Are the Same Problem", "url": "https://marmelab.com/blog/2026/09/09/real-time-and-offline-are-the-same-problem.html", "published_at": "2026-09-09T00:00:00+00:00" }, { "id": "01a0b655-00fb-7105-962c-a8b8a07f53e9", "title": "Can An AI Agent Debug Kubernetes? I Broke A Cluster To Find Out", "url": "https://marmelab.com/blog/2026/09/03/ai-agents-vs-broken-kubernetes.html", "published_at": "2026-09-03T00:00:00+00:00" }, { "id": "01a0b655-00fb-7105-962c-a8b8a0036604", "title": "Cutting the Coding Agent Bill: 5 Plugins Under Test", "url": "https://marmelab.com/blog/2026/08/27/which-agent-based-plugin-should-you-use-in-2026.html", "published_at": "2026-08-27T00:00:00+00:00" }, { "id": "01a0b655-00fb-7105-962c-a8b89f669242", "title": "OpenAI Codex vs Claude Code vs Kimi Code : la battle", "url": "https://marmelab.com/blog/2026/07/29/codex-vs-claude-code-the-battle.html", "published_at": "2026-07-29T00:00:00+00:00" }, { "id": "01a0b655-00fb-7105-962c-a8b89e6f85e3", "title": "Open Source Is Rocket Fuel for AI Agents", "url": "https://marmelab.com/blog/2026/07/13/save-open-source.html", "published_at": "2026-07-13T00:00:00+00:00" }, { "id": "01a0b655-00fb-7105-962c-a8b89e079177", "title": "A Multi-Agent Support Bot with the OpenAI Agents SDK", "url": "https://marmelab.com/blog/2026/07/03/a-multi-agent-support-bot-with-the-openai-agents-sdk.html", "published_at": "2026-07-03T00:00:00+00:00" }, { "id": "01a0b655-00fb-7105-962c-a8b89e060d07", "title": "La Product Conf 2026 : l'IA sous un autre prisme", "url": "https://marmelab.com/blog/2026/06/22/la-product-conf-2026-lia-sous-un-autre-prisme.html", "published_at": "2026-06-22T00:00:00+00:00" }, { "id": "01a0b655-00fb-7105-962c-a8b89d330734", "title": "4 Years Later: Why Caritas Still Bets on React-admin in the Age of AI Agents", "url": "https://marmelab.com/blog/2026/06/16/4-years-later-why-caritas-still-bets-on-react-admin-in-the-age-of-ai-agents.html", "published_at": "2026-06-16T00:00:00+00:00" }, { "id": "01a0b655-00fb-7105-962c-a8b89d159e7f", "title": "Foreign Data Wrapper: Postgresify all the things!", "url": "https://marmelab.com/blog/2026/06/03/foreign-data-wrapper-postgresify-everything.html", "published_at": "2026-06-03T00:00:00+00:00" }, { "id": "01a0b655-00fb-7105-962c-a8b89cea9f8b", "title": "Agentic Software Factories: The Future Of Programming?", "url": "https://marmelab.com/blog/2026/05/22/software-factories-the-future-of-programming.html", "published_at": "2026-05-22T00:00:00+00:00" }, { "id": "01a0b655-00fb-7105-962c-a8b89c258b0b", "title": "Et si votre PME avait enfin le logiciel qu'elle mérite ?", "url": "https://marmelab.com/blog/2026/05/21/et-si-votre-pme-avait-enfin-le-logiciel-quelle-merite.html", "published_at": "2026-05-21T00:00:00+00:00" }, { "id": "01a0b655-00fb-7105-962c-a8b89bcf40bd", "title": "Getting More Out of Claude Code in the Terminal", "url": "https://marmelab.com/blog/2026/05/12/claude-code-hidden-commands.html", "published_at": "2026-05-12T00:00:00+00:00" }, { "id": "01a0b655-00fb-7105-962c-a8b89b03922c", "title": "AI Wars Ep. 3: The Return of the Developer", "url": "https://marmelab.com/blog/2026/05/07/episode-3-the-return-of-the-developer.html", "published_at": "2026-05-07T00:00:00+00:00" }, { "id": "01a0b655-00fa-7075-a0f2-8884a94ceebb", "title": "From Legacy to Lightning: How To Modernize A Python App", "url": "https://marmelab.com/blog/2026/04/27/modernize-legacy-python-app.html", "published_at": "2026-04-27T00:00:00+00:00" }, { "id": "01a0b655-00fa-7075-a0f2-8884a88a351b", "title": "Claude Code Tips I Wish I’d Had From Day One", "url": "https://marmelab.com/blog/2026/04/24/claude-code-tips-i-wish-id-had-from-day-one.html", "published_at": "2026-04-24T00:00:00+00:00" }, { "id": "01a0b655-00fa-7075-a0f2-8884a80dcb19", "title": "MCP Servers: Your Next User Is An AI Agent", "url": "https://marmelab.com/blog/2026/04/22/mcp-servers-101.html", "published_at": "2026-04-22T00:00:00+00:00" }, { "id": "01a0b655-00fa-7075-a0f2-8884a73d116c", "title": "Creating an MCP Server from OpenAPI Documentation", "url": "https://marmelab.com/blog/2026/04/16/create-mcp-from-openapi.html", "published_at": "2026-04-16T00:00:00+00:00" }, { "id": "01a0b655-00fa-7075-a0f2-8884a7337237", "title": "AI Strikes Back: Using an LLM to write COBOL", "url": "https://marmelab.com/blog/2026/04/08/cobol-ai-strikes-back.html", "published_at": "2026-04-08T00:00:00+00:00" }, { "id": "01a0b655-00fa-7075-a0f2-8884a6be498d", "title": "A new hope. Good bye React. Meet COBOL-Admin.", "url": "https://marmelab.com/blog/2026/04/01/good-bye-react-meet-cobol-admin.html", "published_at": "2026-04-01T00:00:00+00:00" }, { "id": "01a0b655-00fa-7075-a0f2-8884a65de4c2", "title": "UX Quest: Train Your Usability Skills", "url": "https://marmelab.com/blog/2026/03/26/ux-quest-train-your-usability-skills.html", "published_at": "2026-03-26T00:00:00+00:00" }, { "id": "01a0b655-00fa-7075-a0f2-8884a632ced4", "title": "Symfony, Mercure, React: Real-time Updates In Less Than 100 Lines Of Code", "url": "https://marmelab.com/blog/2026/03/25/symfony-mercure-react-realtime-updates.html", "published_at": "2026-03-25T00:00:00+00:00" }, { "id": "01a0b655-00fa-7075-a0f2-8884a57e7e69", "title": "Software Developers Will Never Die", "url": "https://marmelab.com/blog/2026/03/20/software-will-never-die.html", "published_at": "2026-03-20T00:00:00+00:00" }, { "id": "01a0b655-00fa-7075-a0f2-8884a4fece67", "title": "Atomic CRM March 2026 Updates", "url": "https://marmelab.com/blog/2026/03/13/atomic-crm-march-updates.html", "published_at": "2026-03-13T00:00:00+00:00" }, { "id": "01a0b655-00fa-7075-a0f2-8884a4e83cde", "title": "Taskfile: The Modern Alternative to Makefile That Will Change Your Workflow", "url": "https://marmelab.com/blog/2026/03/12/taskfile-alternative-makefile.html", "published_at": "2026-03-12T00:00:00+00:00" }, { "id": "01a0b655-00fa-7075-a0f2-8884a49567b5", "title": "React-Admin: February 2026 Update", "url": "https://marmelab.com/blog/2026/02/26/react-admin-february-2026-update.html", "published_at": "2026-02-26T00:00:00+00:00" }, { "id": "01a0b655-00fa-7075-a0f2-8884a428f975", "title": "9 Advanced PostgreSQL Features I Wish I Knew Sooner", "url": "https://marmelab.com/blog/2026/02/23/do-you-know-psql.html", "published_at": "2026-02-23T00:00:00+00:00" }, { "id": "01a0b655-00fa-7075-a0f2-8884a3664440", "title": "Building an Admin App with TanStack Start and Shadcn", "url": "https://marmelab.com/blog/2026/02/18/scaffold-your-shadcn-admin-app-with-tanstack-start.html", "published_at": "2026-02-18T00:00:00+00:00" }, { "id": "01a0b655-00fa-7075-a0f2-8884a2fff215", "title": "MCP Security: Understanding Vulnerabilities in Model Context Protocol", "url": "https://marmelab.com/blog/2026/02/16/mcp-security-vulnerabilities.html", "published_at": "2026-02-16T00:00:00+00:00" }, { "id": "01a0b655-00fa-7075-a0f2-8884a2ab4d0f", "title": "Mettre React KO avec knockoutjs", "url": "https://marmelab.com/blog/2026/02/10/knockoutjs.html", "published_at": "2026-02-10T00:00:00+00:00" }, { "id": "01a0b655-00fa-7075-a0f2-8884a22707f6", "title": "Arazzo: The Missing Piece for AI-Assisted API Consumption", "url": "https://marmelab.com/blog/2026/02/02/arazzo-a-documentation-helper-for-generating-client-code-using-ai.html", "published_at": "2026-02-02T00:00:00+00:00" }, { "id": "01a0b655-00fa-7075-a0f2-8884a21ff638", "title": "Coding a trading card game on ATProtocol", "url": "https://marmelab.com/blog/2026/01/30/coding-a-trading-card-game-on-atproto.html", "published_at": "2026-01-30T00:00:00+00:00" }, { "id": "01a0b655-00fa-7075-a0f2-8884a209f12a", "title": "A Free Laravel Admin With API Platform and React-Admin", "url": "https://marmelab.com/blog/2026/01/23/laravel-api-platform-react-admin.html", "published_at": "2026-01-23T00:00:00+00:00" }, { "id": "01a0b655-00fa-7075-a0f2-8884a170d034", "title": "Agent Experience: Best Practices for Coding Agent Productivity", "url": "https://marmelab.com/blog/2026/01/21/agent-experience.html", "published_at": "2026-01-21T00:00:00+00:00" }, { "id": "01a0b655-00fa-7075-a0f2-8884a0e070fd", "title": "Build a Kanban Board With Drag-and-Drop in React with Shadcn", "url": "https://marmelab.com/blog/2026/01/15/building-a-kanban-board-with-shadcn.html", "published_at": "2026-01-15T00:00:00+00:00" }, { "id": "01a0b655-00fa-7075-a0f2-8884a0cd25c4", "title": "Best Open Source CRM for 2026", "url": "https://marmelab.com/blog/2026/01/09/open-source-crm-benchmark-2026.html", "published_at": "2026-01-09T00:00:00+00:00" }, { "id": "01a0b655-00fa-7075-a0f2-8884a0b367f8", "title": "You Don’t Need Code, You Need to Test Hypotheses", "url": "https://marmelab.com/blog/2026/01/06/you-dont-need-code-you-need-to-test-hypotheses.html", "published_at": "2026-01-06T00:00:00+00:00" }, { "id": "01a0b655-00fa-7075-a0f2-88849fc7d8ec", "title": "L'évaluation des IAs : Comment passer du POC à la production", "url": "https://marmelab.com/blog/2025/12/17/evaluation-ia.html", "published_at": "2025-12-17T00:00:00+00:00" }, { "id": "01a0b655-00fa-7075-a0f2-88849f1617d1", "title": "SQL Window Functions and PARTITION BY in Practice", "url": "https://marmelab.com/blog/2025/12/15/sql-window-functions-and-partition-by-in-practice.html", "published_at": "2025-12-15T00:00:00+00:00" }, { "id": "01a0b655-00fa-7075-a0f2-88849e3568c8", "title": "Tech F'Est : La conf de proximité", "url": "https://marmelab.com/blog/2025/12/11/tech-f-est-2025.html", "published_at": "2025-12-11T00:00:00+00:00" }, { "id": "01a0b655-00fa-7075-a0f2-88849dc13d27", "title": "Transactions and RLS in Supabase Edge Functions", "url": "https://marmelab.com/blog/2025/12/08/supabase-edge-function-transaction-rls.html", "published_at": "2025-12-08T00:00:00+00:00" }, { "id": "01a0b655-00fa-7075-a0f2-88849d7e8351", "title": "TypeScript Types as a Programming Language", "url": "https://marmelab.com/blog/2025/12/04/typescript-type-as-a-programming-language.html", "published_at": "2025-12-04T00:00:00+00:00" }, { "id": "01a0b655-00fa-7075-a0f2-88849cf288fa", "title": "LocalStack: Develop and Test Lambdas Locally", "url": "https://marmelab.com/blog/2025/11/26/localstack-develop-and-test-your-lambda-locally.html", "published_at": "2025-11-26T00:00:00+00:00" }, { "id": "01a0b655-00fa-7075-a0f2-88849cdaa379", "title": "React Server Components With Parcel", "url": "https://marmelab.com/blog/2025/11/14/react-server-components-with-parcel.html", "published_at": "2025-11-14T00:00:00+00:00" }, { "id": "01a0b655-00fa-7075-a0f2-88849ca5fd63", "title": "Spec-Driven Development: The Waterfall Strikes Back", "url": "https://marmelab.com/blog/2025/11/12/spec-driven-development-waterfall-strikes-back.html", "published_at": "2025-11-12T00:00:00+00:00" }, { "id": "01a0b655-00fa-7075-a0f2-88849c7beb8d", "title": "4 Serious Games That Boost Team Communication", "url": "https://marmelab.com/blog/2025/11/04/boosting-team-communication-through-play-3-reious-games-to-try.html", "published_at": "2025-11-04T00:00:00+00:00" }, { "id": "01a0b655-00fa-7075-a0f2-88849c1d7eb6", "title": "vibe-spec: Generate Specifications From Coding Agent Logs", "url": "https://marmelab.com/blog/2025/10/30/vibe-spec-generate-specifications-from-coding-agent-logs.html", "published_at": "2025-10-30T00:00:00+00:00" }, { "id": "01a0b655-00fa-7075-a0f2-88849b827333", "title": "From GraphQL to Zod: Simplifying Arte's API Architecture", "url": "https://marmelab.com/blog/2025/10/29/from-graphql-to-zod.html", "published_at": "2025-10-29T00:00:00+00:00" }, { "id": "01a0b655-00fa-7075-a0f2-88849b1cf040", "title": "Why AI Agents Need to Make Mistakes", "url": "https://marmelab.com/blog/2025/10/20/why-smart-agents-need-to-make-mistakes.html", "published_at": "2025-10-20T00:00:00+00:00" }, { "id": "01a0b655-00fa-7075-a0f2-88849aed66cf", "title": "Add Role-Based Access Control On Top Of Your REST API", "url": "https://marmelab.com/blog/2025/10/16/rbac-rest-middleware.html", "published_at": "2025-10-16T00:00:00+00:00" }, { "id": "01a0b655-00fa-7075-a0f2-88849a44f2d3", "title": "Learning Collaboration with Serious Games", "url": "https://marmelab.com/blog/2025/10/09/leaning-collaboration-with-serious-games-glance-play14-nancy.html", "published_at": "2025-10-09T00:00:00+00:00" }, { "id": "01a0b655-00fa-7075-a0f2-88849950ce7c", "title": "Do you need a Backend For Frontend?", "url": "https://marmelab.com/blog/2025/10/01/do-you-need-a-backend-for-frontend.html", "published_at": "2025-10-01T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a22206b2b", "title": "Build a Drag-and-Drop Scheduler in React with Bryntum", "url": "https://marmelab.com/blog/2025/09/29/ra-scheduler.html", "published_at": "2025-09-29T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a216ab659", "title": "Marmelab, agence web à Nancy au cœur du Grand Est", "url": "https://marmelab.com/blog/2025/09/24/marmelab-agence-web-a-nancy-au-coeur-du-grand-est.html", "published_at": "2025-09-24T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a212f2cec", "title": "ARTE x Marmelab : Dans les coulisses d’ARTE.tv", "url": "https://marmelab.com/blog/2025/09/23/arte-agile-bff-home-page-editor.html", "published_at": "2025-09-23T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a20842f7e", "title": "React-Admin: September 2025 Update", "url": "https://marmelab.com/blog/2025/09/15/react-admin-september-2025-update.html", "published_at": "2025-09-15T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a207a985a", "title": "The Bright Future Of Developers", "url": "https://marmelab.com/blog/2025/09/03/natural-language-developers.html", "published_at": "2025-09-03T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a1fb0da40", "title": "Bring MCP Support To Your Shadcn Registry", "url": "https://marmelab.com/blog/2025/08/19/shadcn-admin-kit-mcp.html", "published_at": "2025-08-19T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a1f50e192", "title": "AI Coding Assistants Are the New Compilers", "url": "https://marmelab.com/blog/2025/07/29/ai-coding-assistants-are-the-new-compilers.html", "published_at": "2025-07-29T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a1e87e1ee", "title": "DNS Caching in NodeJS", "url": "https://marmelab.com/blog/2025/07/28/dns-in-nodejs.html", "published_at": "2025-07-28T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a1dda4380", "title": "Thumbless OS: What If AI Was Generating The UI?", "url": "https://marmelab.com/blog/2025/07/21/thumbless-os-what-if-ai-was-the-heart-of-the-system.html", "published_at": "2025-07-21T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a1d3c0b01", "title": "10 Icebreakers to Warm Up a Group of People", "url": "https://marmelab.com/blog/2025/07/02/10-icebreakers-to-warm-up-a-group-of-people.html", "published_at": "2025-07-02T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a1c76fe0d", "title": "Typed Query Builders: Kysely vs. Drizzle", "url": "https://marmelab.com/blog/2025/06/26/kysely-vs-drizzle.html", "published_at": "2025-06-26T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a1c091f5a", "title": "MiXiT 2025 : La conférence tech, éthique et crêpes", "url": "https://marmelab.com/blog/2025/06/19/mixit-2025.html", "published_at": "2025-06-19T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a1bcbc32b", "title": "Recherche généalogique de nouvelle génération : La refonte du système de Coutot-Roehrig", "url": "https://marmelab.com/blog/2025/06/17/recherche-genealogique-de-nouvelle-generation-la-refonte-du-systeme-de-coutot-roehrig.html", "published_at": "2025-06-17T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a1b5f533c", "title": "SolidJS for React Developers", "url": "https://marmelab.com/blog/2025/05/28/solidjs-for-react-developper.html", "published_at": "2025-05-28T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a1a966e67", "title": "React-Admin: May 2025 Update", "url": "https://marmelab.com/blog/2025/05/21/react-admin-may-2025-update.html", "published_at": "2025-05-21T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a19fe5c33", "title": "React Paris 2025 : De l'importance des utilisateurs (et des développeurs)", "url": "https://marmelab.com/blog/2025/05/15/react-paris-2025.html", "published_at": "2025-05-15T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a19f5ceab", "title": "Client-Side React Rocks", "url": "https://marmelab.com/blog/2025/05/09/client-side-react-rocks.html", "published_at": "2025-05-09T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a19214fb3", "title": "React-admin With Shadcn UI", "url": "https://marmelab.com/blog/2025/04/23/react-admin-with-shadcn.html", "published_at": "2025-04-23T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a189c06f4", "title": "Give a SPA Feel to Your Static Website with Hotwire's Turbo", "url": "https://marmelab.com/blog/2025/04/18/give-a-spa-feel-to-your-static-website-with-turbo.html", "published_at": "2025-04-18T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a181882a5", "title": "Building AI-Powered Browser Extensions With WXT", "url": "https://marmelab.com/blog/2025/04/15/browser-extension-form-ai-wxt.html", "published_at": "2025-04-15T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a180b13f8", "title": "get-current-day: The Ultimate NPM Package For Today's Date", "url": "https://marmelab.com/blog/2025/04/01/get-current-day.html", "published_at": "2025-04-01T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a1791c5d0", "title": "React-admin: March 2025 Update", "url": "https://marmelab.com/blog/2025/03/24/react-admin-march-2025-update.html", "published_at": "2025-03-24T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a17578d94", "title": "AI's Environmental Impact: Making an Informed Choice", "url": "https://marmelab.com/blog/2025/03/19/ai-carbon-footprint.html", "published_at": "2025-03-19T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a17200746", "title": "Scrum Fatigue: Why It Happens and How to Fix It", "url": "https://marmelab.com/blog/2025/03/14/scrum-fatigue.html", "published_at": "2025-03-14T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a1627ee52", "title": "Making Specialized AI Agents Work Together with Swarm", "url": "https://marmelab.com/blog/2025/03/06/ai-agents-orchestration-with-swarm.html", "published_at": "2025-03-06T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a15a6f5e2", "title": "Testing Zero: Rocicorp's Ultra-Fast Sync Engine for the Web", "url": "https://marmelab.com/blog/2025/02/28/zero-sync-engine.html", "published_at": "2025-02-28T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a14f1e842", "title": "Filling Forms from Images in React Admin", "url": "https://marmelab.com/blog/2025/02/21/filling-forms-from-document-in-react-admin.html", "published_at": "2025-02-21T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a148d4c6e", "title": "Load Testing Web Applications With k6", "url": "https://marmelab.com/blog/2025/02/14/load-testing.html", "published_at": "2025-02-14T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a13e1c139", "title": "Handling Relationships in React Admin", "url": "https://marmelab.com/blog/2025/02/06/handling-relationships-in-react-admin.html", "published_at": "2025-02-06T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a13bbe355", "title": "Best Open Source CRM for 2025", "url": "https://marmelab.com/blog/2025/02/03/open-source-crm-benchmark-for-2025.html", "published_at": "2025-02-03T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a1390b654", "title": "Beyond Buttons: Using AI Agents To Augment Web Apps", "url": "https://marmelab.com/blog/2025/01/31/adding-ai-interaction-to-control-a-web-app.html", "published_at": "2025-01-31T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a13857932", "title": "How to build a CMS with React-Admin", "url": "https://marmelab.com/blog/2025/01/24/how-to-build-a-cms-with-react-admin.html", "published_at": "2025-01-24T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a1343c988", "title": "DevFest Dijon 2024: Retour sur les bancs de la fac", "url": "https://marmelab.com/blog/2025/01/17/devfest-dijon.html", "published_at": "2025-01-17T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a12859797", "title": "React-admin: January 2025 Update", "url": "https://marmelab.com/blog/2025/01/08/react-admin-january-2025-update.html", "published_at": "2025-01-08T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a11b28e2a", "title": "The Secret to Reliable AI Agents: Mastering Eval", "url": "https://marmelab.com/blog/2024/12/18/eval-the-key-to-useful-ai-agents.html", "published_at": "2024-12-18T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a10b3fb4b", "title": "Who Needs Human Code Reviews When We Have AI?", "url": "https://marmelab.com/blog/2024/12/16/automated-code-review.html", "published_at": "2024-12-16T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a108612b5", "title": "Un regard sur le Devfest Strasbourg 2024", "url": "https://marmelab.com/blog/2024/12/06/devfest-strasbourg.html", "published_at": "2024-12-06T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a1013dc10", "title": "Tech, Maroille, et Bière. Marmelab était à la DevFest Lille !", "url": "https://marmelab.com/blog/2024/11/26/devfest-lille.html", "published_at": "2024-11-26T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a0f8f9637", "title": "Google OAuth in React: A Beginner’s Guide to Authentication", "url": "https://marmelab.com/blog/2024/11/18/google-authentication-react.html", "published_at": "2024-11-18T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a0f0527be", "title": "API Platform Admin: The Ultimate Admin Generator For PHP", "url": "https://marmelab.com/blog/2024/11/12/api-platform-admin-the-ultimate-admin-generator-for-php.html", "published_at": "2024-11-12T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a0e6ca3b0", "title": "PostgREST: Revolutionizing Web Development with Instant APIs", "url": "https://marmelab.com/blog/2024/11/04/postgrest-revolutionizing-web-development-with-instant-apis.html", "published_at": "2024-11-04T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a0e1c757a", "title": "Behind the Code of Atomic CRM", "url": "https://marmelab.com/blog/2024/10/28/behind-the-code-of-atomic-crm.html", "published_at": "2024-10-28T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a0e121ed5", "title": "useContextSelector: Speeding Up React Apps With Large Context", "url": "https://marmelab.com/blog/2024/10/16/usecontextselector-a-faster-usecontext-for-react.html", "published_at": "2024-10-16T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a0d96b994", "title": "LLMs Are the CPUs of the AI Era", "url": "https://marmelab.com/blog/2024/10/10/llms-are-modern-day-cpus.html", "published_at": "2024-10-10T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a0ca7795a", "title": "Le bestiaire des longs formulaires", "url": "https://marmelab.com/blog/2024/10/04/le-bestiaire-des-longs-formulaires.html", "published_at": "2024-10-04T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a0c4fe658", "title": "React-admin: October 2024 Update", "url": "https://marmelab.com/blog/2024/09/27/react-admin-october-2024-update.html", "published_at": "2024-09-27T00:00:00+00:00" }, { "id": "01a0b655-00f8-71be-8b56-f83a0be44895", "title": "Shape Up: Should You Change Your Agile Methodology?", "url": "https://marmelab.com/blog/2024/09/26/shape-up.html", "published_at": "2024-09-26T00:00:00+00:00" } ] posts Claim your blog
Back to marmelab.com
Blog · corpus.blog/blogs/marmelab.com/posts

marmelab.com

marmelab.com

2026

2025

2024