{ "uuid": [ { "value": "207113dd-f0f6-4e8a-ab98-6c6b4a53c032" } ], "langcode": [ { "value": "en" } ], "type": [ { "target_id": "daily_email", "target_type": "node_type", "target_uuid": "8bde1f2f-eef9-4f2d-ae9c-96921f8193d7" } ], "revision_timestamp": [ { "value": "2025-05-11T09:00:10+00:00" } ], "revision_uid": [ { "target_type": "user", "target_uuid": "b8966985-d4b2-42a7-a319-2e94ccfbb849" } ], "revision_log": [], "status": [ { "value": true } ], "uid": [ { "target_type": "user", "target_uuid": "b8966985-d4b2-42a7-a319-2e94ccfbb849" } ], "title": [ { "value": "Vetting third-party open-source software" } ], "created": [ { "value": "2024-06-13T00:00:00+00:00" } ], "changed": [ { "value": "2025-05-11T09:00:10+00:00" } ], "promote": [ { "value": false } ], "sticky": [ { "value": false } ], "default_langcode": [ { "value": true } ], "revision_translation_affected": [ { "value": true } ], "path": [ { "alias": "\/daily\/2024\/06\/13\/vetting-third-party-open-source-software", "langcode": "en" } ], "body": [ { "value": "\n

Open-source software, such as Drupal modules and themes, PHP libraries and Tailwind CSS plugins, is great.<\/p>\n\n

Instead of writing everything from scratch, if someone else has written what you need, you can use it.<\/p>\n\n

In the Drupal ecosystem, there's a saying - \"There's a module for that!\".<\/p>\n\n

But, assuming you find a project that adds the functionality you need, you should review and vet it before adding it to your application.<\/p>\n\n

Adding too many modules and libraries can cause performance issues, add a maintenance overhead, introduce upstream bugs and add potential security vulnerabilities.<\/p>\n\n

As well as reading the code, here are some questions I ask and things I look for when deciding to add a project or not:<\/p>\n\n