Deciding what features belong in your free tier versus your paid plans is the hardest product decision a solo SaaS founder makes.
Put too much into the free tier, and users will happily use your product for five years without ever entering a credit card. Your hosting bills rise, your customer support queue fills up, and your conversion rate languishes below 0.8%.
Put too little into the free tier, and prospective users abandon the product within 90 seconds because they can’t experience the core value proposition.
I launched a PDF document converter that garnered 20,000 active monthly users. It looked like an astonishing success—until I checked our Stripe dashboard and discovered our monthly revenue was $180. We had accidentally made the free tier so generous that nobody had a commercial reason to upgrade.
Here is the strategic framework and clean code architecture to gate features effectively in solo software products.
The 4 Classic Feature Gating Models
To build a high-converting pricing tier, you must choose the right gating dimension for your specific workflow:
1. Volume / Usage-Based Gating
The user gets access to all core features, but has a hard numeric limit:
- Free: Up to 50 active contacts, or 5 reports per month.
- Paid: Unlimited contacts and reports.
Best for: Products where value correlates directly with business scale (email marketing, CRM, document processing).
2. Functional / Capability Gating
Free users get basic tools; advanced power features require payment:
- Free: Manual CSV upload and browser view.
- Paid: Automated Webhooks, REST API access, and custom domain white-labeling.
Best for: Technical developer tools and workflow automation software.
3. Collaboration / Seat-Based Gating
Free tier is restricted to single-player mode; collaboration requires paid seats:
- Free: 1 user account.
- Paid: Team workspaces, role-based access control (RBAC), and shared audit logs.
Best for: Tools used within corporate departments (project management, design review).
4. Retention / Time-Based Gating
Free users can generate data, but historical records expire:
- Free: 7-day analytics history.
- Paid: 365-day rolling history and raw data exports.
Best for: Logging platforms, monitoring tools, and analytics dashboards.
The Golden Rule: Free Tiers Must Deliver “Incomplete Value”
A successful free tier must solve an immediate problem completely, while simultaneously revealing a deeper, ongoing need that requires payment.
- Bad Freemium: Free tier lets a user schedule unlimited social media posts forever. (Zero upgrade incentive).
- Good Freemium: Free tier lets a user schedule up to 10 posts a month. Once they see their engagement grow, their schedule fills up, and upgrading to the 100-post plan is an obvious commercial decision.
Clean Technical Architecture: Entitlements-Based Gating
Avoid peppering your application code with hardcoded plan checks like:
// AVOID THIS: Hardcoded plan checks lead to brittle spaghetti code
if (user.plan === 'pro' || user.plan === 'enterprise') {
showExportButton();
}
If you ever rename a tier, add a promotional plan, or grandfather early users, hardcoded plan strings break across your entire frontend and backend.
Instead, implement Entitlements / Capabilities:
// Clean Entitlements-Based Architecture
interface UserEntitlements {
maxProjects: number;
hasApiAccess: boolean;
hasCustomDomain: boolean;
retentionDays: number;
}
export function getUserEntitlements(user: User): UserEntitlements {
switch (user.subscriptionTier) {
case 'PRO':
return { maxProjects: 50, hasApiAccess: true, hasCustomDomain: true, retentionDays: 90 };
case 'STARTER':
return { maxProjects: 10, hasApiAccess: false, hasCustomDomain: false, retentionDays: 30 };
default: // FREE
return { maxProjects: 3, hasApiAccess: false, hasCustomDomain: false, retentionDays: 7 };
}
}
Now, your application logic checks capabilities directly:
if (entitlements.hasApiAccess) {
enableApiEndpoints();
}
This decouples your business billing logic from your core application features. You can modify plan limits, run A/B pricing tests, or grant temporary promotional features to VIP customers simply by editing a single configuration matrix.
Related Operational Guides
To optimize your SaaS product strategy and database architecture, read: