As developers, we’re taught to add features. More functionality equals more value, right? But what happens when the tool meant to help your sales team actually becomes their primary obstacle?
Traditional CRMs have a dirty secret: they’re designed with supply-side thinking. They’re built around what vendors believe sales teams need, not what causes sales teams to struggle. The result? Tools that create more work than they eliminate.
The Struggling Moment
Bob Moesta’s demand-side sales framework starts with a simple question: what is the struggling moment that causes someone to seek change?
For sales teams using traditional CRMs, the struggling moments are everywhere:
“We’re spending more time updating Salesforce than talking to customers.”
“Another licence renewal? We just hired two people and now we need to justify £400 per month to management.”
“What do I even put in this field? Why does it matter?”
“Our junior sales rep can’t access the CRM because we’re out of licences.”
These aren’t edge cases. They’re the daily reality of sales teams drowning in software that was supposed to help them sell.
The Forces Working Against Traditional CRMs
Moesta’s framework identifies four forces at play when someone considers making a change:
1. Push of the Situation (What’s Not Working)
Traditional CRMs transform sales work into data entry work. They demand fifty fields per contact. They require mandatory custom properties. They create workflows that need workflows to manage workflows.
The push isn’t “we need better reporting”. The push is “I joined this job to build relationships and close deals, and instead I’m filling in dropdown menus”.
2. Pull of the New Solution (What Could Be Better)
Sales teams don’t dream about advanced analytics dashboards. They dream about spending their Tuesday morning having conversations instead of updating opportunity stages.
The pull is simple: “What if the CRM just got out of my way?”
3. Anxiety of the New Solution (What Could Go Wrong)
Even when sales teams recognise the problem, anxiety holds them back:
- “What if we lose our data?”
- “What if it doesn’t integrate with our other tools?”
- “What if it’s too simple and we miss important information?”
- “What if management demands reports we can’t generate?”
4. Habits of the Present (The Comfort of the Known)
Perhaps most powerful: “We’ve always used Salesforce. Everyone knows how it works. Switching would be chaos.”
How simple-crm.org Addresses Each Force
Simple-crm.org’s design directly responds to these forces. Let’s examine the technical and product decisions that make this work.
Eliminating the Data Entry Burden
The entire data model consists of three entities:
- Contacts (name, company, email, phone)
- Notes (timestamped interactions)
- Opportunities (deal tracking)
That’s it. No mandatory fields. No custom properties to configure. No dropdown menus requiring governance committees.
From a technical perspective, this is stored entirely in IndexedDB:
// Simplified schema
contacts: {
id: string,
name: string,
company: string,
email: string,
phone: string
}
notes: {
id: string,
contactId: string,
timestamp: Date,
content: string
}
opportunities: {
id: string,
contactId: string,
stage: string,
value: number
}
No ORM complexity. No schema migrations. No database administrator. Just the essential information needed to track a sales relationship.
Removing Cost Anxiety Completely
The pricing model is radical: free. Not freemium. Not “free tier”. Just free.
No per-user fees means:
- Hire someone on Monday, they’re in the CRM on Tuesday
- No licence management overhead
- No renewal negotiations
- No tiered pricing that punishes growth
For developers, this eliminates an entire class of business logic. No payment processing. No subscription management. No usage tracking. No paywall code scattered throughout the application.
Privacy by Architecture
Traditional CRMs store your data on vendor servers. This creates legal concerns, compliance requirements, and trust issues.
Simple-crm.org takes a different approach: your data never leaves your browser.
// All data operations happen locally
const db = await openDB('simple-crm', 1, {
upgrade(db) {
db.createObjectStore('contacts');
db.createObjectStore('notes');
db.createObjectStore('opportunities');
}
});
// No API calls to external servers
// No data synchronisation with vendor infrastructure
// Complete data sovereignty
The technical implementation is straightforward, but the implications are profound. There’s no server to breach. No third party with access to your customer data. No compliance questionnaires.
Want to sync between devices? You handle the encryption and syncing yourself. The tool doesn’t make assumptions about your security requirements.
Removing Implementation Friction
Traditional CRM implementations take months:
- Requirements gathering
- Configuration
- Data migration
- Customisation
- Training
- Rollout
Simple-crm.org’s implementation timeline: open the browser, start using it.
No installation. No configuration. No setup wizard. No onboarding process. Just a URL.
From a technical perspective:
// The entire "setup" process
localStorage.clear(); // Optional: start fresh
window.location.href = '/crm/';
// That's it. You're using the CRM.
This eliminates the implementation anxiety entirely. There’s no sunk cost. If it doesn’t work for your team after a week, you’ve lost nothing.
The Demand-Side Perspective on Features
Here’s where developers often struggle: isn’t this too simple? Where’s the advanced functionality?
Moesta’s framework teaches us that features don’t create demand. Struggling moments create demand.
Traditional CRM features exist because vendors are thinking supply-side: “What can we build that sounds impressive in a feature comparison matrix?”
Demand-side thinking asks: “What is preventing this sales representative from having more meaningful customer conversations today?”
The answers are never:
- “We need better email campaign analytics”
- “We need AI-powered lead scoring”
- “We need deeper Salesforce integration”
The answers are usually:
- “I need to quickly see who I spoke to last week”
- “I need to remember what we discussed”
- “I need to track which deals are close to closing”
Simple-crm.org provides exactly those capabilities. Nothing more. This isn’t a limitation; it’s a design decision informed by understanding the actual job to be done.
What This Means for Developers
If you’re building tools for people, the technical sophistication of your solution matters far less than whether it solves their struggling moments.
Consider these architectural decisions in simple-crm.org:
Browser-based storage instead of server infrastructure
- Solves: Privacy concerns, hosting costs, scaling challenges
- Trades off: Cross-device sync (users solve this themselves if needed)
Minimal data schema instead of flexible custom fields
- Solves: Configuration complexity, training overhead, analysis paralysis
- Trades off: Customisation options (most teams don’t need them)
No user authentication instead of robust identity management
- Solves: Password resets, account recovery, session management
- Trades off: Multi-user collaboration (acceptable for many small teams)
Each decision eliminates a struggling moment whilst accepting constraints that the target users don’t actually care about.
The Weekly Conversation Principle
Moesta emphasises that healthy sales processes are built on conversations, not complexity. The goal is weekly conversations about where deals are and what happens next.
Traditional CRMs make this conversation harder:
- “Before we discuss deals, let me pull up the dashboard…”
- “Wait, why is this opportunity showing in two different stages?”
- “Can someone remind me what we put in the custom field ‘Lead Temperature’?”
Simple-crm.org makes this conversation trivial:
- Open the tool
- See your opportunities
- Discuss next actions
- Update status
- Close the tool
- Get back to selling
The technical implementation enables the human process rather than dictating it.
When Simple is Actually Better Engineering
There’s a tendency in software development to equate sophistication with quality. More features, more code, more architecture.
But sometimes the better engineering decision is radical simplification.
Simple-crm.org’s entire codebase likely fits in a few thousand lines. There’s no backend. No database server. No authentication service. No payment processor. No analytics pipeline.
Yet it solves the core struggling moments that cause sales teams to seek a CRM:
- Where are my customer details?
- What did we last discuss?
- Which opportunities need attention?
Everything else is noise that creates new struggling moments.
The Real Competition
Here’s another insight from demand-side sales: you often compete with non-consumption.
Simple-crm.org doesn’t compete with Salesforce or HubSpot. It competes with:
- Spreadsheets
- Sticky notes
- Email threads
- Memory
- Chaos
Sales teams using these approaches aren’t thinking “I need a sophisticated CRM platform with enterprise features”. They’re thinking “I need to stop losing track of conversations”.
That’s the struggling moment. That’s the job to be done.
A browser-based tool that stores contacts, notes, and opportunities solves that job perfectly. Adding invoice generation, marketing automation, and artificial intelligence doesn’t solve it better; it just adds complexity.
Lessons for Developers
Building tools through a demand-side lens changes everything:
Start with struggling moments, not feature lists
Interview people who recently adopted similar tools. What specific event triggered their search? What wasn’t working? What did they hope would change?
Identify the forces holding people back
What makes someone continue suffering with their current solution? Often it’s not because better options don’t exist, but because the anxiety and habits are stronger than the push and pull.
Solve for the job, not the category
Simple-crm.org isn’t trying to be a comprehensive CRM platform. It’s trying to help sales teams have more conversations and fewer data entry sessions. That’s a different job.
Embrace constraints
Every feature you don’t build is one less thing to maintain, one less thing to document, one less thing users need to understand. Constraints create focus.
Make switching trivial
The biggest anxiety in adopting new tools is the switching cost. Browser-based. No installation. No data migration. No sunk cost. This eliminates the anxiety of commitment.
The Technical Beauty of Simplification
From a technical perspective, simple-crm.org is elegant precisely because of what it doesn’t do:
- No user authentication? No password hashing, session management, or account recovery flows
- No server-side storage? No database optimisation, backup strategies, or scaling concerns
- No payment processing? No PCI compliance, subscription management, or billing logic
- No custom fields? No schema migration system or configuration management
Each omission isn’t a missing feature. It’s a deliberate trade-off that eliminates complexity whilst preserving the core value proposition.
The result is a tool that:
- Loads instantly (no server round trips)
- Scales infinitely (it’s just IndexedDB)
- Costs nothing to operate (no infrastructure)
- Respects privacy completely (data never leaves the browser)
- Requires zero maintenance (no servers to patch)
This is engineering in service of the struggling moment.
Conclusion: Building for Demand, Not Supply
The traditional approach to building tools is supply-side thinking:
- Research what competitors offer
- Build similar features (but better)
- Add unique capabilities to differentiate
- Market based on feature comparisons
- Sell based on specifications
The demand-side approach is fundamentally different:
- Understand the struggling moments
- Identify the forces at play
- Design for the job to be done
- Eliminate anxieties
- Help people make progress
Simple-crm.org exemplifies demand-side thinking in product design. It doesn’t try to be the most feature-rich CRM. It tries to be the CRM that gets out of your way so you can focus on relationships.
For developers, this is a valuable lesson: the best technical solution isn’t always the most sophisticated one. Sometimes it’s the one that deeply understands the struggling moment and eliminates it with radical simplicity.
Your sales team doesn’t want to manage a CRM. They want to have conversations, build relationships, and close deals. Everything else is just in the way.
Perhaps that’s the most important technical decision you can make: knowing what not to build.
Simple-crm.org is a free, open-source CRM that runs entirely in your browser. No servers. No tracking. No complexity. Just the essentials for sales teams who want to spend their time selling, not managing software.
Top comments (0)