subscrio (@subscrio) header
subscrio (@subscrio) profile picture

Subscrio is an open-source entitlement engine for .NET & TypeScript. Embed it in your app to resolve feature access, values, limits, & customer override

Troutman, NC
Joined February 2017
Photo by subscrio (@subscrio)Photo by subscrio (@subscrio)Photo by subscrio (@subscrio)Photo by subscrio (@subscrio)Photo by subscrio (@subscrio)Photo by subscrio (@subscrio)Photo by subscrio (@subscrio)Photo by subscrio (@subscrio)Photo by subscrio (@subscrio)Photo by subscrio (@subscrio)
A subtitle plan allows 600 minutes. The customer has used 17. Reading the plan still returns 600; it cannot tell the UI what remains. Subscrio's entitlement sets the allowance, and its usage meter tracks consumption. The balance needs both.
2
A customer has credits in your floor-plan app. That doesn't tell you whether their plan allows room-image generation. Check feature access, then attempt the charge. A useful denial tells them whether access or credits stopped the request.
4
A marina's maintenance-app payment fails before staff create repair jobs. Do you stop new work or allow a grace period? Our sample stops new work until payment recovers. Stripe reports billing state; your application must choose and enforce the policy.
5
Knowing who a tournament organizer is doesn't tell you whether their plan includes public brackets. Authenticate the customer, then check feature access before publishing. TypeScript example: subscrio.hashnode.dev/enforc…
🤖 Made with AI
3
An engineer submits a model check. The request times out after the app records its usage. Retrying shouldn't spend another validation. Keep the same job key and quantity. In our C# sample, replaying job 250 leaves monthly usage at 250.
4
Two products can spend one credit balance while keeping separate access rules. This TypeScript guide builds a shared wallet and checks each product before it spends: subscrio.com/blog/shared-cre…
1
Your archive app adds 1,200 monthly credits. The scheduler retries the same grant. Should the customer now have 2,400? In our C# sample, processing that grant again issues nothing new. A retry must preserve the promise of one allowance per period.
2
A 17-minute subtitle job was recorded before renewal. Its retry arrives afterward. Giving that retry a new identity could spend the new allowance. Keep the original job key: in our Subscrio sample, the replay leaves the new period unused.
3
A floor-plan app charges 12 credits, then fails to produce the room image. Its credit-return handler runs twice. The customer should get 12 back, not 24. Give that correction its own stable key and keep it tied to the failed job.
2
In a sample marina app, a monthly renewal keeps the same customer agreement and moves its period forward. If each renewal creates another local subscription, which record should access checks trust? Check the agreement count as well as the new end date.
3
A tournament app must check paid access before recording a bracket publication. This TypeScript excerpt returns early on denial; only an allowed request reaches the test array. subscrio.hashnode.dev/enforc…
🤖 Made with AI
6
Monthly credits raise two questions: did we grant this cycle already, and what happens to unused balance? This C# example prices work, prevents duplicate grants, and carries credits forward: subscrio.com/blog/monthly-su…
1
1
4
Two engineers submit model checks when their team's app shows one validation left. Both screens can show the same balance. Enforce the limit when admitting each job. A usage read helps the screen; it doesn't reserve the remaining validation.
2
A customer's subtitle allowance reaches its renewal date, but the app still has last period's dates. Resetting to 600 would invent a renewal. Subscrio's billing-period meter rejects stale dates; the app must first obtain the confirmed new period.
8
A floor-plan app charges 12 credits for a room image. The request retries after a timeout. Keep its original job key so the retry isn't a new charge. In your own credit ledger, where would you store that identity before the first attempt?
10
A quota check is more than comparing a count with a limit. Retries can count twice, and the reset boundary matters. This C# guide shows a monthly allowance checked on the write path: subscrio.com/blog/monthly-us…
4
A marina buys a monthly maintenance app, but its team still can't create work orders. Payment succeeded; the new price has no feature mapping. When you add a billing option, test the customer action it should unlock.
1
2
50
A 403 isn't enough if the operation already ran. In our tournament-app sample, tests check both the HTTP response and the accepted-work array. Only Broadcast should appear. subscrio.hashnode.dev/enforc…
🤖 Made with AI
1
A subtitle job lasts 16 minutes, 21 seconds. Does it spend 16 minutes, 17, or a fraction? Decide before metering it. In our sample, the app rounds up to 17; Subscrio records that quantity. The library cannot choose the promise you made.
7
A Stripe renewal event is a billing fact. Your app still has to turn it into the right access. This guide maps Price IDs, handles renewal webhooks, and tests the flow locally with Stripe CLI: subscrio.com/blog/stripe-sub…
10