[{"data":1,"prerenderedAt":460},["ShallowReactive",2],{"insight-build-vs-buy":3,"insights-cards":350},{"id":4,"title":5,"body":6,"category":331,"date":332,"description":333,"extension":334,"meta":335,"navigation":336,"path":337,"readingTime":338,"relatedArticles":339,"relatedAssessment":343,"relatedServices":344,"seo":347,"stem":348,"__hash__":349},"insights\u002Finsights\u002Fbuild-vs-buy.md","The License Fee Is the Small Number: A Working Guide to Build or Buy",{"type":7,"value":8,"toc":313},"minimark",[9,13,18,21,24,27,31,34,130,133,140,146,149,153,156,162,168,174,180,186,191,194,197,200,203,207,210,213,217,220,223,242,245,249,252,256,259,262,265,269,272,275,279,282,306,310],[10,11,12],"p",{},"Buying software is the correct call most of the time, and you should be suspicious of any engineer who says otherwise. It stops being correct in one recognizable case: when the product you bought sits directly on top of the thing your company is good at, and the subscription price turns out to be the smallest line in what you actually spend. This guide is about spotting that case early and pricing both sides honestly.",[14,15,17],"h2",{"id":16},"start-from-buy-and-make-build-earn-its-place","Start from \"buy\" and make \"build\" earn its place",[10,19,20],{},"Nobody should write their own login system, payroll engine, general ledger, transactional email pipeline or video conferencing. These are problems that thousands of companies share, where the vendor has spent more engineering years than you will ever justify, and where being clever gets you nothing. Your version would be worse, later and more expensive to keep alive.",[10,22,23],{},"So the burden of proof belongs on the build side. A custom system has to answer a plain question: what do we get from owning this that we could not get by renting it? If the answer is \"it would feel nicer\" or \"our process is a bit unusual\", that is not enough. Most unusual processes are unusual by accident, and a good product will quietly replace them with something better.",[10,25,26],{},"The burden of proof flips when the software encodes a decision your customers are paying you for. That is the whole article in one sentence. The rest is how to tell, and what to do in the gray area.",[14,28,30],{"id":29},"sort-the-capability-before-you-compare-prices","Sort the capability before you compare prices",[10,32,33],{},"Teams usually go wrong by comparing a quote against a build estimate before they have classified what they are deciding about. Classify first. Almost every capability in a mid-sized company falls into one of five buckets.",[35,36,37,56],"table",{},[38,39,40],"thead",{},[41,42,43,47,50,53],"tr",{},[44,45,46],"th",{},"Bucket",[44,48,49],{},"Examples",[44,51,52],{},"Starting position",[44,54,55],{},"When to depart from it",[57,58,59,74,88,102,116],"tbody",{},[41,60,61,65,68,71],{},[62,63,64],"td",{},"Shared utilities",[62,66,67],{},"Identity, payroll, accounting, email, file storage, help desk",[62,69,70],{},"Buy",[62,72,73],{},"Practically never",[41,75,76,79,82,85],{},[62,77,78],{},"Standard practice in your industry",[62,80,81],{},"Scheduling, basic inventory, standard quoting, generic CRM pipeline",[62,83,84],{},"Buy and configure lightly",[62,86,87],{},"When the configuration project grows larger than a build would be",[41,89,90,93,96,99],{},[62,91,92],{},"Connections between systems",[62,94,95],{},"Order sync, customer master data, event routing",[62,97,98],{},"Write a thin layer you own",[62,100,101],{},"An integration platform is fine if you can read, version and test what it does",[41,103,104,107,110,113],{},[62,105,106],{},"Your edge",[62,108,109],{},"Pricing logic, dispatch rules, underwriting, the workflow clients praise you for",[62,111,112],{},"Build",[62,114,115],{},"Rent something first only to prove demand exists, with a dated exit",[41,117,118,121,124,127],{},[62,119,120],{},"Regulated system of record",[62,122,123],{},"Clinical records, financial ledgers, audit trails",[62,125,126],{},"Mixed",[62,128,129],{},"Rent the certified core, own the workflow that surrounds it",[10,131,132],{},"Two tests help you place a capability in the right row.",[10,134,135,139],{},[136,137,138],"strong",{},"The customer test."," Would any customer notice, or pay you differently, if you ran this exactly the way the rest of your industry runs it? If not, it is not your edge, no matter how attached the team is to it.",[10,141,142,145],{},[136,143,144],{},"The change test."," How often do the rules change, and who decides? Rules that change twice a year by committee fit a product. Rules that your best operator adjusts every week, because that judgment is what wins deals, do not fit a vendor's release calendar.",[10,147,148],{},"A typical mid-sized company has two or three capabilities that pass both tests. The common failure is not building too little. It is building in the first two rows, where nobody wins anything, while forcing the edge into a generic product.",[14,150,152],{"id":151},"five-costs-the-quote-will-not-show-you","Five costs the quote will not show you",[10,154,155],{},"The subscription is the visible price. These are the costs that decide whether buying was cheap.",[10,157,158,161],{},[136,159,160],{},"1. Configuration that is really programming."," Once a platform has hundreds of custom fields, validation rules, automations and screen layouts, you own a codebase. It just lacks everything that makes a codebase manageable: meaningful diffs, automated tests, peer review, a rollback you trust. The people who understand it are usually outside consultants. Changing it can be slower and riskier than changing ordinary code, because nobody can tell you what a change will break.",[10,163,164,167],{},[136,165,166],{},"2. Integration, which you were always going to pay for."," A purchased system still has to exchange data with everything else you run. The work does not disappear. It moves, and now you do it against someone else's data model, inside their API quotas, and on their upgrade schedule. When they deprecate an endpoint, your roadmap changes.",[10,169,170,173],{},[136,171,172],{},"3. Bending the business to the tool."," Every product carries an opinion about how the work should flow. Sometimes that opinion is better than yours, and adopting it is a gift. Sometimes it is only different, and the cost shows up as retraining, exception handling and side spreadsheets that people keep because the tool cannot represent how the job is really done. Those spreadsheets are the most reliable symptom you will find.",[10,175,176,179],{},[136,177,178],{},"4. Pricing that scales with your success."," Per-seat, per-record and per-transaction pricing are reasonable models, but run the numbers at twice your current volume and with every role that will eventually need access. Also check which features you depend on sit in a higher tier.",[10,181,182,185],{},[136,183,184],{},"5. The price of leaving."," Each year you store more history in a format someone else designed. Ask, before signing, for a sample of a full export. Does it include attachments, audit history, relationships between records and custom fields? Is it in a documented format? Leaving is a project, and the project gets bigger every quarter.",[187,188,190],"h3",{"id":189},"a-worked-example","A worked example",[10,192,193],{},"Picture a regional building-supply distributor with 120 employees. Its advantage is contract pricing: each large customer has negotiated terms that depend on volume tiers, job site and product family, and its sales reps can quote those terms in minutes.",[10,195,196],{},"The company buys a well-regarded order management product. The product supports price lists and discount rules, which covers most of what is needed. The remainder, the job-site logic and the tier interactions, is implemented by a consultant through scripting hooks and a dozen custom objects.",[10,198,199],{},"Two years in, the picture looks like this. Quotes for complex accounts are prepared in a spreadsheet and then typed into the system. A price change for one customer requires a consultant ticket. The vendor's upgrade broke two scripts. Nothing here is the vendor's fault. The product does what a product for the average distributor should do. The distributor paid twice: once for the license, and again by putting its real advantage in the least maintainable corner of the stack.",[10,201,202],{},"The better design was available from day one: keep the purchased system for orders, inventory and invoicing, and put the pricing engine in a small service the company owns, called through the product's API.",[14,204,206],{"id":205},"the-dangerous-middle-a-product-that-is-mostly-right","The dangerous middle: a product that is mostly right",[10,208,209],{},"Clear cases are easy. The expensive mistakes happen when a product covers most of the need and the gap is exactly the part that makes you money.",[10,211,212],{},"\"It does 80 percent\" is not a measurement. It counts features, and features are not equally valuable. Ask instead: of the hours my best people spend, and of the reasons customers choose us, how much lives in the part the product does not cover? If the uncovered part is trivia, buy and move on. If it is the core, the coverage figure is misleading you.",[14,214,216],{"id":215},"rent-the-core-own-the-edge","Rent the core, own the edge",[10,218,219],{},"The best answer is usually neither pure option. Let specialists run the hard, undifferentiated machinery: the payment processor, the identity provider, the warehouse, the messaging provider, the hosted language model. Then write the comparatively small piece that carries your rules, your workflow and your interface.",[10,221,222],{},"This keeps your custom code small enough to maintain and keeps the differentiating logic under your version control. It depends on one condition: the purchased component has to be something you can program against. Check this before the contract, not after.",[224,225,226,230,233,236,239],"ul",{},[227,228,229],"li",{},"Is there a documented API that covers writes as well as reads?",[227,231,232],{},"Are there webhooks or an event feed, so you are not polling?",[227,234,235],{},"What are the rate limits, and what happens when you hit them?",[227,237,238],{},"Is there a sandbox environment with realistic data?",[227,240,241],{},"Can you export everything in bulk, on your own schedule?",[10,243,244],{},"If the answers are weak, every extension you want later becomes a support request or a script that clicks through screens. Screen automation has its uses, but it is a poor foundation.",[187,246,248],{"id":247},"do-not-decide-from-the-demo","Do not decide from the demo",[10,250,251],{},"A demo of your workflow was assembled by a sales engineer over several days with a clean dataset. It proves the product can be made to do the thing once. Ask what you will live with instead: after go-live, who changes this workflow, with what tool, how long does a typical change take, and how is it tested before it reaches users? Ask to watch that change being made.",[14,253,255],{"id":254},"when-it-is-close-choose-what-is-cheaper-to-undo","When it is close, choose what is cheaper to undo",[10,257,258],{},"Sometimes the analysis really is balanced. Then reversibility is the tie-breaker.",[10,260,261],{},"The two options age differently. A purchase is easy to back out of in the first months and steadily harder afterward, as data and habits pile up inside it. A build costs a lot at the start and its exit cost stays roughly flat, as long as the boundaries between components were kept clean.",[10,263,264],{},"That suggests a sequence. If you are unsure the need is real, rent something first to learn, and put a decision date on the calendar, roughly a year out, when someone with authority reviews it. Once a year of real use has confirmed the demand and the rules have stopped shifting under you, that is the moment to build. Building while requirements are still shifting is how custom projects earn their reputation.",[14,266,268],{"id":267},"if-you-choose-to-build-be-honest-about-that-side-too","If you choose to build, be honest about that side too",[10,270,271],{},"Building has its own hidden costs: maintenance after launch, security patching, the staffing to keep it running, and the risk that knowledge concentrates in two people. Feature count is a poor predictor of the budget. The number of systems to connect, the state of the data you must migrate and any compliance regime in scope move the total far more.",[10,273,274],{},"If the build replaces a system that cannot be switched off, do not plan a single cutover. Replace it in slices behind a routing layer, the approach known as the strangler fig pattern, so the old system retires gradually and each slice delivers value.",[14,276,278],{"id":277},"a-one-page-decision-worksheet","A one-page decision worksheet",[10,280,281],{},"Fill this in for the capability under discussion. If you cannot answer a line, that is the next thing to find out.",[283,284,285,288,291,294,297,300,303],"ol",{},[227,286,287],{},"Which of the five buckets is it in, and did it pass the customer test and the change test?",[227,289,290],{},"What will configuration cost in consultant time, and who will maintain it in year three?",[227,292,293],{},"Which systems must it exchange data with, and through what interface?",[227,295,296],{},"Where will the product force a process change, and is the product's way better or just different?",[227,298,299],{},"What does the price become at twice today's volume?",[227,301,302],{},"What does a full export contain, and how long would a migration out take?",[227,304,305],{},"Which option is cheaper to reverse in 12 months? In 36?",[14,307,309],{"id":308},"are-you-weighing-a-platform-against-a-build-right-now","Are you weighing a platform against a build right now?",[10,311,312],{},"Bring both options to Trivo and we will price the parts that quotes leave out: configuration, integration, growth and exit. We recommend buying when buying is right, and we will say so plainly.",{"title":314,"searchDepth":315,"depth":315,"links":316},"",2,[317,318,319,323,324,327,328,329,330],{"id":16,"depth":315,"text":17},{"id":29,"depth":315,"text":30},{"id":151,"depth":315,"text":152,"children":320},[321],{"id":189,"depth":322,"text":190},3,{"id":205,"depth":315,"text":206},{"id":215,"depth":315,"text":216,"children":325},[326],{"id":247,"depth":322,"text":248},{"id":254,"depth":315,"text":255},{"id":267,"depth":315,"text":268},{"id":277,"depth":315,"text":278},{"id":308,"depth":315,"text":309},"Strategy","2026-10-12","Buying software is usually right, until the product sits on top of how you make money. How to sort capabilities, price the hidden costs and decide.","md",{},true,"\u002Finsights\u002Fbuild-vs-buy",9,[340,341,342],"custom-software-cost-framework","two-week-discovery-deliverables","custom-crm-vs-off-the-shelf","build-or-buy",[345,346],"custom-software","modernization",{"title":5,"description":333},"insights\u002Fbuild-vs-buy","tpy_h_gXYZE6aAMaFI0pK9iRt__Cw53Dx9ONcPasa1s",[351,353,360,365,370,375,383,388,393,398,404,411,416,422,428,434,440,445,450,455],{"path":337,"title":5,"description":333,"category":331,"readingTime":338,"relatedServices":352,"date":332},[345,346],{"path":354,"title":355,"description":356,"category":357,"readingTime":338,"relatedServices":358,"date":332},"\u002Finsights\u002Fcloudflare-observability","The Cloudflare Signals You Need Wired Up Before Something Breaks","Cloudflare records plenty by default. Whether a person hears about a problem in time depends on choices made in a quiet week, not mid-outage.","Cloudflare",[359,346],"cloudflare",{"path":361,"title":362,"description":363,"category":357,"readingTime":338,"relatedServices":364,"date":332},"\u002Finsights\u002Fcloudflare-performance-tuning","After the Static Assets: Where Cloudflare Performance Is Actually Won","Default caching handles images, CSS and JavaScript. The larger gains sit in HTML, API responses, cache keys and origin trips that nobody tuned.",[359,345],{"path":366,"title":367,"description":368,"category":357,"readingTime":338,"relatedServices":369,"date":332},"\u002Finsights\u002Fcloudflare-waf-and-ddos","Managed Rules Know the Internet. Custom Rules Have to Know Your Application.","Cloudflare's managed WAF and DDoS rules stop generic attacks. Logins, APIs, bots and false positives still need rules written from your own traffic.",[359,345],{"path":371,"title":372,"description":373,"category":357,"readingTime":338,"relatedServices":374,"date":332},"\u002Finsights\u002Fcloudflare-zero-trust-and-integrity","Who Got In Versus What Is Running: Two Integrity Problems One Control Cannot Solve","Zero Trust verifies who reaches a system. Client-side script monitoring verifies what runs in the browser. They fail differently and need separate owners.",[359,346],{"path":376,"title":377,"description":378,"category":379,"readingTime":380,"relatedServices":381,"date":332},"\u002Finsights\u002Fcrm-adoption-and-training","Your CRM Passed Every Test and Nobody Uses It: A Diagnostic for Stalled Adoption","Low CRM adoption is rarely a training gap. How to tell whether the cause is screen friction, missing payback or management habits, and what to fix first.","CRM",8,[382],"crm",{"path":384,"title":385,"description":386,"category":379,"readingTime":380,"relatedServices":387,"date":332},"\u002Finsights\u002Fcrm-implementation-timeline","The Honest Calendar of a CRM Implementation: Five Phases and Where the Weeks Go","Provisioning a CRM takes a day. Making it the place your team sells from takes months. A phase-by-phase calendar, with the parts quotes tend to leave out.",[382,345],{"path":389,"title":390,"description":391,"category":379,"readingTime":338,"relatedServices":392,"date":332},"\u002Finsights\u002Fcrm-migration-checklist","CRM Migration Checklist: The Records Arrive, the Selling Process Gets Left Behind","A CRM migration is a process migration with a data load attached. What a plain export loses, how to choose a cutover, and a checklist for each stage.",[382,346],{"path":394,"title":395,"description":396,"category":379,"readingTime":380,"relatedServices":397,"date":332},"\u002Finsights\u002Fcustom-crm-vs-off-the-shelf","Should You Build Your Own CRM? Run the Build-or-Buy Test on Your Sales Process","Most of a CRM is a commodity you should buy. The question is whether the way you sell fits the platform's model, and what it costs when it does not.",[382,345],{"path":399,"title":400,"description":401,"category":331,"readingTime":402,"relatedServices":403,"date":332},"\u002Finsights\u002Fcustom-software-cost-framework","Estimate Before the Estimate: Sizing a Custom Software Budget on Your Own","You can't know the price before a quote, but you can know what drives it. Six cost drivers, a self-check worksheet and how to read a proposal.",10,[345],{"path":405,"title":406,"description":407,"category":408,"readingTime":338,"relatedServices":409,"date":332},"\u002Finsights\u002Fetl-vs-elt","Transform before or after loading? A practical ETL versus ELT decision for mid-sized teams","ETL or ELT is a question of where transformation runs and who pays for it. A practical way for a mid-sized team to choose, with the costs most plans miss.","Data",[345,410],"ai-automation",{"path":412,"title":413,"description":414,"category":331,"readingTime":402,"relatedServices":415,"date":332},"\u002Finsights\u002Fevaluating-engineering-depth","Ask About the Outage: How to Vet a Software Vendor's Real Engineering Ability","Portfolios and logos look the same from every vendor. The interview questions, artifacts and deal-breakers that show who has really run software in production.",[345,346],{"path":417,"title":418,"description":419,"category":420,"readingTime":402,"relatedServices":421,"date":332},"\u002Finsights\u002Fhipaa-business-associate-agreement","A BAA Is a Contract, Not a Badge: What Your Software Vendor Is Really Signing Up For","What a HIPAA Business Associate Agreement commits a software vendor to, what it leaves unproven, and what to ask and build before PHI reaches the system.","Compliance",[345,410],{"path":423,"title":424,"description":425,"category":420,"readingTime":426,"relatedServices":427,"date":332},"\u002Finsights\u002Fhipaa-technical-safeguards-checklist","Reading 45 CFR 164.312 Like a Design Document: HIPAA Technical Safeguards for Engineers","The five HIPAA technical safeguard standards mapped to concrete engineering decisions: identity, logging, integrity, authentication and encryption.",11,[345,346,359],{"path":429,"title":430,"description":431,"category":432,"readingTime":338,"relatedServices":433,"date":332},"\u002Finsights\u002Flegacy-erp-anticorruption-layer","The ERP stays as it is: building on a decades-old system through an anti-corruption layer","How to build new software on an old ERP without modifying it, using an anti-corruption layer: what goes inside, how to handle writes, when to skip it.","Modernization",[346,345],{"path":435,"title":436,"description":437,"category":438,"readingTime":402,"relatedServices":439,"date":332},"\u002Finsights\u002Fllm-in-production-confidence-thresholds","An LLM that proposes and a system that decides: thresholds, review and audit for production AI","Running an LLM in production without giving it autonomy: measured confidence, thresholds set by business cost, human review that works, an audit trail.","AI",[410,345],{"path":441,"title":442,"description":443,"category":331,"readingTime":338,"relatedServices":444,"date":332},"\u002Finsights\u002Fnearshore-offshore-onshore-cost","Cheap Hours, Expensive Projects: Pricing US, Nearshore and Offshore Teams Honestly","The hourly rate tells you little about what a project will cost. How overlap, rework, turnover and compliance change the math for each delivery model.",[345],{"path":446,"title":447,"description":448,"category":438,"readingTime":338,"relatedServices":449,"date":332},"\u002Finsights\u002Frpa-vs-api-integration","Bots on the screen or calls to the API: where RPA earns its place and where it becomes debt","RPA and API integration solve the same problem at different layers. How to choose, what screen automation really costs, and how to run it safely if you must.",[410,345],{"path":451,"title":452,"description":453,"category":432,"readingTime":338,"relatedServices":454,"date":332},"\u002Finsights\u002Fstrangler-fig-modernization","Replace the legacy system in slices: a working guide to the strangler fig pattern","How to retire a legacy system piece by piece while the business keeps running: the facade, the first slice, parallel runs, and when the pattern fails.",[346,345],{"path":456,"title":457,"description":458,"category":331,"readingTime":402,"relatedServices":459,"date":332},"\u002Finsights\u002Ftwo-week-discovery-deliverables","Paying for a Plan, Not a Pitch: What Two Weeks of Discovery Owes You","A paid discovery should leave you with documents another team could build from. The five deliverables, the work behind them and the limits to expect.",[345,346],1792618973201]