The 60 Percent Salesforce App

Most of the Salesforce apps we want to talk about are not failed projects.

They are the 60 percent Salesforce apps: the object model is mostly right, the happy path works, and then something breaks at scale.

The object model is mostly right. The happy path works. The builder can demo it without flinching. Then someone asks about guest-user access, or a managed package, or what happens when two hundred records hit the trigger, and the room gets quiet.

That quiet is not a character flaw. It is the gap between “it runs in my sandbox” and “it is finished.”

Citizen developers are not the problem

Citizen developers did not break Salesforce.

They did what the platform asked them to do. They clicked. Then they prompted. Then they shipped a working screen in a week that used to take a quarter.

That is the point of the last ten years of “clicks not code,” and the last eighteen months of AI-assisted Apex. Salesforce spent the year making it easier to begin. Agentforce Vibes, Claude Code, Cursor, free Code Analyzer, Foundations credits — the generator is no longer scarce.

Starting faster is the win.  Dreamforce 2026 made that sentence official. AIforce puts Salesforce inside Claude and Slack. Slack Code puts a vibe-coding channel next to the CRM thread. A Salesforce plug-in for Claude Code adds dozens of skills. The generator is no longer scarce. The last 40% — sharing, CRUD/FLS, tests that assert, docs, Security Review — was not in the keynote. That is still the work.

The loss is treating a working demo as a finished system.

What 60 percent Salesforce app actually looks like

A 60% Salesforce app has a shape. You can feel it if you have shipped one, or inherited one.

– The LWC looks done in a scratch org and then dies in a subscriber org because sharing was never written.
– SOQL sits in a loop that only hurts at volume.
– CRUD works because the builder is a system administrator in the org where they built it.
– Tests hit 75% coverage and assert that a record exists.
– Two triggers sit on the same object, written three weeks apart, by two different chats.
– The README says “run this.”
– Nobody can tell you why this object and not that one.

None of that makes the builder careless. It makes the last mile a different job.

AI is very good at the first job. It is consistently bad at the second.

The last 40% is engineering

The remaining work is not “another prompt.”

It is bulkification. Field-level security. Error handling a user will actually see. Tests that fail when the behavior is wrong. Source control. A deploy plan. The documentation the model never writes. The AppExchange Security Review packet, if you want a listing.

That list is dull on purpose. Dull is where orgs get hurt.

Industry numbers keep rhyming with this. Sonar has reported that 96% of developers do not fully trust AI-generated code as functionally correct, that only 48% always check it, and that a large majority cite negative technical-debt impacts. Salesforce Ben called 2026 the year of technical debt, thanks to vibe coding, after their admin survey put managing tech debt as the hardest part of the job for a majority of admins. Those are published industry figures, not CloudFirst Labs client results.

The pattern is not “AI is bad.” The pattern is “AI prints a first draft faster than the org can absorb it.”

Honor the frame. Finish the seams.

There is a reason we named the work Finish and not Rescue.

People systematically overvalue the thing they assembled themselves. A consultant opening with “this trigger will not scale” sounds like an insult to the Saturday that produced it. So we do not start with an insult. We start with the fact that 60% is a compliment.

60% means the idea survived contact with the platform.

You keep the idea. You keep the frame. An expert finishes the parts that get people hurt.

That handoff is the whole product.

What “finished” means on Salesforce

For an internal app, finished means:

– Apex and LWC that enforce CRUD and FLS instead of assuming the running user is you
– Tests above the 75% deploy gate, with assertions that prove behavior
– No hard-coded secrets
– One coherent automation path per object, not a Flow, an LWC, and a trigger all doing the same thing
– Source control and a pipeline you can run again
– Documentation a new admin can inherit

For an AppExchange listing, finished also means namespace, packaging, install and upgrade in a clean scratch org, license enforcement that actually runs in code, and a Security Review packet that does not waste a four-to-nine-week queue.

Those are different sports. An internal app that works for your company is not a managed package with a bigger invoice.

A number beats a lecture

The conversation that works with a CFO is not “your code is messy.”

The conversation that works is a score.

That is why a Finish Audit exists. It is $4,500, it takes five to seven business days, and it produces a 0–100 Finish Score across six dimensions, plus a keep / refactor / rebuild verdict and a fixed-price quote for the rest. The fee credits toward a Finish Sprint or Finish for AppExchange if you book within 30 days.

We published the rest of the ladder on purpose. Finish Sprint is the completion engagement for internal apps. Finish for AppExchange is the packaging and review-readiness engagement. Finish Watch is the retainer so the score does not slide back down — $2,500 a month for a custom app, $5,000 a month for the ISV tier.

Prices live on Cloudfirstlabs.com. We put them there because almost nobody in this market will.

If this sounds like your Saturday project

You dreamed it. You framed it out. That part is working.

The last 40% is where orgs accumulate the kind of debt that used to take a systems integrator nine months to create, and now takes a license, a model, and a determined operator.

More ideas should get to 60%. That is good.

It is only bad if 60% is where funding, patience, or courage runs out.

If you built something you are proud of and a little afraid to ship, start with the score.


Email john@cloudfirstlabs.com with “Finish Score” in the subject, or book a 20-minute Finish Audit call from the Finish page.
Built with AI. Finished by engineers.

About CloudFirst Finish

CloudFirst Finish takes a 20–90% built Salesforce app — Apex, LWC, Flow — and makes it documented, tested, and deployable. Finish Audit is $4,500 and five to seven days: a 0–100 Finish Score and a keep / refactor / rebuild verdict. Sprint, AppExchange packaging, and Watch sit behind that score. Prices and the ladder live on cloudfirstlabs.com/finish.

About CloudFirst Labs

CloudFirst Labs is a Tampa Salesforce consulting and AppExchange partner. The same bench that finishes AI-started apps is the bench that connects the Salesforce CRM, PSA, and billing systems MSPs run every day — ConnectWise, Autotask, ServiceNow, NetSuite, Certinia — so closed deals flow into delivery and invoices match what was sold. Co-founded by a former VP of Technology at a $200M MSP. We have lived the integration problems we still solve. Finish is the last 40% of an app. The MSP practice is the revenue engine those apps sit inside. Different jobs. Same production standard.

Need the MSP lane instead? Book an MSP Revenue Assessment.

Connect with John Dionne on LinkedIn and follow CloudFirst Labs for Finish and MSP systems writing, or browse more on the CloudFirst Labs blog.