Build-vs-buy decision for UI. The trade-offs:
Buy (AppExchange) when:
- The component solves a standard, common problem (file uploader, calendar, signature pad, charting library).
- The vendor is established and has a track record.
- Time-to-market matters more than customisation.
- Maintenance of the bespoke component would be ongoing.
- Cost is acceptable — many components are free or cheap.
Build when:
- The use case is specific to your business — generic components don't fit.
- Tight integration with custom data model required.
- Performance matters and you can build faster than the off-the-shelf option.
- Security/compliance requires code your team controls.
- Cost over time of licensing exceeds dev cost.
- You need it to be deeply customisable in ways the vendor doesn't support.
Hidden costs of buying:
- Lock-in — once integrated, replacing is expensive. Choose vendors with clean APIs and clear deprecation policies.
- Upgrade pain — vendor's release cycle may not match yours; major version changes can break.
- Customisation limits — vendors often expose less customisation than you eventually need.
- Performance — managed package code adds load; multiple installed components compound.
- Security review status — un-reviewed packages carry risk.
Hidden costs of building:
- Maintenance — bugs, browser compatibility, accessibility, ongoing development.
- Feature creep — what starts as "small custom component" grows.
- Knowledge concentration — risk if the developer leaves.
Hybrid approach (often best):
Use AppExchange for the heavy lifting (charting, rich-text editor) and wrap with custom components for branding / business logic. Get the vendor's robustness with your specific UX.
Decision framework:
- Search the AppExchange first. If a 5-star reviewed component exists, default to it.
- Trial it in a sandbox. Confirm it works for your use case before committing.
- Estimate maintenance cost of building over 3 years.
- Consider exit cost — if you build, can you switch later? If you buy, can you migrate to building?
For visual primitives (datatable, picker, chart) — usually buy. For business-specific UX — usually build.
