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)
In our archive-app example, turning a scanned page into text costs 2 credits. Restoring a photo costs 8. One wallet, two prices. Where would you keep these rules if each feature implemented its own balance deduction?
1
A 20-seat plan plus three 10-seat packs should resolve to 50 seats. If the base plan changes, the packs should still add up. This C# guide models quantity-based capacity add-ons: subscrio.com/blog/subscripti…
3
After renewal, a subtitle job retry returns its old receipt: 17 minutes used. The current period is still at zero. Both can be correct. Use the retry result to confirm the job; read current usage separately before showing the customer's balance.
1
A game artist buys credits for a texture tool, then needs to animate a character. Should they have to transfer credits between products? Our TypeScript example gives both tools one customer wallet. Each tool still checks its own access.
3
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.
3
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.
5
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