Useful tool for exploring EspoCRM codebase

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Alexis
    Junior Member
    • Apr 2025
    • 2

    Useful tool for exploring EspoCRM codebase

    Hi everyone,

    I'm new to EspoCRM — just getting started — and we're planning to use it for our next project.

    While diving into the code, I found a tool that could be extremely helpful for anyone working with EspoCRM:


    Basically, you can chat with the EspoCRM repo and get instant explanations about files, structures, logic, etc.

    I just added the EspoCRM repo to DeepWiki. Here's the direct link to explore and chat with it:
    EspoCRM is an open-source Customer Relationship Management application with a modular and extensible architecture. This document provides a high-level overview of the codebase structure, its core comp


    I thought it could be a great resource for new developers here.
    Hope it helps others as much as it’s already helping me!

    Cheers,
    Alexis
    Deep Research for GitHub repo
    Last edited by Alexis; Yesterday, 09:57 AM. Reason: added direct link
  • item
    Active Community Member
    • Mar 2017
    • 1519

    #2
    Hi,
    Thanks for the info, very cool

    Now the big question is : What think Team and Yuri ? is correct what IA respond ?
    Last edited by item; Yesterday, 11:51 AM.
    If you could give the project a star on GitHub. EspoCrm believe our work truly deserves more recognition. Thanks.​

    Comment

    • hacxx
      Junior Member
      • Mar 2025
      • 1

      #3
      Thanks for the tip.

      Comment

      • harrytruman
        Senior Member
        • Jun 2023
        • 106

        #4
        Hi Alexis, this is very interesting. Thanks so much for sharing. It says it's powered by Devin AI, Pricing | Devin. Do you have any experience with Devin AI? It doesn't appear to have a free plan so I wonder who is paying the costs when we use this tool?

        By the way, I asked it to help me understand how the stream feature works and then asked it this question:

        I want to add a reply button in the stream comments, allow users to reply directly to other comments and have all the comments attached to a record displayed in a nested/ collapsable format. Would it be better to edit the existing codebase or create a separate extension?


        Answer

        Understanding Your Request


        You want to add a reply functionality to the stream comments in EspoCRM, allowing users to:
        1. Reply directly to specific comments
        2. Display comments in a nested/collapsable format
        3. Attach these comments to records

        Looking at the codebase, I can see that EspoCRM already has some reply-like functionality in the stream panel, but it doesn't support nested comments in the way you're describing. Current Stream Implementation


        The stream feature in EspoCRM is built around "Note" entities that represent different types of activities. The stream panel is implemented in client/src/views/stream/panel.js, which handles displaying and creating stream entries.

        I notice that there's already a quoteReply method in the stream panel that allows quoting content: panel.js:1056-1080

        This method adds quoted text to a new post but doesn't create a direct reply relationship between posts. Implementation Options

        Option 1: Modify Existing Codebase


        Pros:
        • Direct integration with the core system
        • Consistent user experience
        • No need to maintain separate code

        Cons:
        • Changes might be overwritten during updates
        • More complex to implement without breaking existing functionality
        • Requires deeper understanding of the core codebase
        Option 2: Create an Extension


        Pros:
        • Isolated from core code changes
        • Easier to maintain across EspoCRM updates
        • Can be distributed to others
        • Follows EspoCRM's recommended approach for customizations

        Cons:
        • May require more hooks and integration points
        • Potential performance overhead
        • May need to duplicate some functionality
        Recommendation


        I recommend creating an extension for this feature. Here's why:
        1. EspoCRM is designed with extensibility in mind, and the customization wiki page indicates that extensions are the preferred way to add significant new functionality.
        2. The stream feature is a core component that touches many parts of the system. Modifying it directly could lead to issues during updates.
        3. The changes you want to make would require modifications to:
          • Database schema (to track reply relationships)
          • Backend controllers and services
          • Frontend views and templates
          • UI components

        Comment

        Working...