Best of marmelab2025

  1. 1
    Article
    Avatar of Marmelabmarmelab·1y

    Best Open Source CRMs for 2025

    Choosing the right CRM for your small to medium business can be challenging, especially if you need an open-source solution that you can customize. The post reviews the best open-source CRMs of 2025, focusing on their adaptability, ease of use, and documentation. Top picks include Twenty, Atomic CRM, and EspoCRM, which are highlighted for being developer-friendly and supporting modifications.

  2. 2
    Article
    Avatar of Marmelabmarmelab·26w

    Spec-Driven Development: The Waterfall Strikes Back

    Spec-Driven Development frameworks like Kiro and Spec-kit generate extensive Markdown documentation before coding, echoing Waterfall methodology. While promising structure for AI coding agents, this approach creates context blindness, excessive documentation review, and diminishing returns on large codebases. The author argues for Natural Language Development instead: an iterative, Agile-inspired approach where developers give coding agents simple, incremental instructions without formal specifications, enabling faster convergence toward working products.

  3. 3
    Article
    Avatar of Marmelabmarmelab·35w

    React-Admin: September 2025 Update

    React-admin releases versions 5.9-5.11 with major improvements including render props for easier customization, a new RecordField component for flexible field display, soft delete functionality for archiving records, scheduling components with Bryntum integration, menu keyboard navigation, and enhanced reference field handling. The update also introduces ra-core as a headless solution and Shadcn Admin Kit as an alternative UI framework.

  4. 4
    Article
    Avatar of Marmelabmarmelab·1y

    How to build a CMS with React-Admin

    Learn how to build a CMS proof of concept using React-Admin for the admin interface and Supabase for backend support. The guide covers setting up a flexible data model, using SQL triggers for dynamic table updates, and creating dynamic CRUD views with React-Admin components.

  5. 5
    Article
    Avatar of Marmelabmarmelab·1y

    Client-Side React Rocks

    The post highlights the advantages of using client-side React for enhanced developer experience and performance. It critiques the current Datagrid API in react-admin and proposes a superior alternative using client-side components. Through a technical example, it discusses problems with composability, reusability, performance, and legibility in creating tabular data displays. It explores the challenges in implementing features like reading props from children and rendering outside of the React tree, emphasizing how client-side React can address these issues better than server components.

  6. 6
    Article
    Avatar of Marmelabmarmelab·1y

    Scrum Fatigue: Why It Happens and How to Fix It

    Scrum fatigue can occur when teams experience stress and burnout due to the pressures of constant short sprint cycles, lack of autonomy, an overload of meetings, an overemphasis on metrics, or poor adaptation to the organization. Solutions include focusing on delivering value, adapting sprint cycles, providing more autonomy, reducing meetings, prioritizing value over metrics, and tailoring Scrum practices to fit the team’s workflow. Emphasizing Agile principles can help create a more sustainable and human-centric Scrum environment.

  7. 7
    Article
    Avatar of Marmelabmarmelab·23w

    TypeScript Types as a Programming Language

    TypeScript's type system is Turing complete and can be approached as a programming language. Generic types function like type-level functions, conditional types enable branching logic with the extends keyword, the infer keyword acts as variable assignment for extracting types, recursion allows iteration over arrays and complex structures, template literals enable string manipulation at the type level, and mapped types provide iteration over object properties. These capabilities enable creating sophisticated type utilities like CRUD generators, middleware type inference, and dynamic method generation that reduce code duplication while improving type safety and IDE autocomplete.

  8. 8
    Article
    Avatar of Marmelabmarmelab·32w

    Do you need a Backend For Frontend?

    The Backend-for-Frontend (BFF) pattern addresses common issues in multi-client applications where frontend teams struggle with API complexity and performance problems. A BFF acts as a dedicated translation layer between frontends and backend services, aggregating data and handling client-specific logic. While it can dramatically improve development velocity and mobile performance, it's not suitable for simple applications or small teams due to increased operational complexity.