What's Missing in Standard Express + MongoDB + Stripe Architecture
Stripe webhooks tell you about payment events, but they don't track whether a paying customer is actually using your product. You need separate infrastructure to monitor usage and enforce subscription limits.
Standard Express + MongoDB + Stripe Flow vs Optimized Skene Flow
User subscribes via Stripe
Subscription status stored in MongoDB
Features accessible but no usage limits enforced
Track usage in MongoDB 'subscriptions' and 'usage' tables
Detect when free tier user hits limit (e.g., 5 team members invited)
Block feature access and trigger upgrade prompt email
Track conversion from free to paid
Visual comparison of the flows:
Loading diagram...
How Skene Fixes This
This Skene Prompt installs usage tracking that correlates MongoDB feature usage with Stripe subscription tiers. When free users hit limits (like 100 API calls), it automatically blocks features and sends upgrade prompts.
Implementation Comparison
Using Skene Infrastructure
Install via Prompt
@task: Initialize Skene.
@action: Analyze my local code, validating subscription via `npx skene login`, and generate `skene.config.ts` to implement the Freemium Gating pattern for Express + MongoDB + Stripe.Copy Skene Prompt for Cursor
Generated skene.config.ts
// skene.config.ts - The Automated Way
import { defineLoop } from '@skene/sdk';
export default defineLoop({
type: 'freemium',
opinion: 'Enforce usage limits for free tier users and trigger upgrade prompts',
steps: [
{
trigger: {
type: 'api',
endpoint: '/api/features/*',
method: 'POST'
},
condition: {
type: 'usage',
limit: {
free: 100,
paid: Infinity
},
period: '30d'
},
action: {
type: 'block',
message: 'You've reached your free tier limit. Upgrade to continue.',
upgradePrompt: {
type: 'email',
provider: 'resend',
template: 'upgrade_prompt'
}
}
}
],
recovery: {
retries: 0 // No retries for blocking actions
}
});