I run aiMakeVideo, a small AI video and image studio. Very early on I noticed the same thing everyone notices: the sign-up wall is where most visitors leave. People want to see what the tool makes bef

Markdown supported · ⌘↵ to post
For per-use cost, the layer I'd add sits between your device signature and the global cap: what kind of network the request comes from.
Part of it is free on Workers already. request.cf.asn and request.cf.asOrganization tell you when a "visitor" is a cloud provider, and those guests could get zero free generations instead of the normal allowance. That catches the lazy scripts at no cost.
It won't catch residential proxies or VPNs, which is how someone walks around per-IP limits. That needs an IP reputation lookup, called only on the generate path. We sell one (disclosure: I work at IPGeolocation.io). It's a paid feature and it means sending the IP to a third party, which you'd want in your privacy note, so it only makes sense once abuse costs you more than the plan: https://ipgeolocation.io/ip-security-api.html
On Praneet's question, I'm curious too: when the global cap hits mid-day, do new visitors get "come back tomorrow" or a nudge to sign up?
The global daily cap being the only layer that really bounds the worst case is the part I liked most. Detection can always be fooled but a hard ceiling can't. When the cap gets hit mid-day, what does a new visitor see, a plain 'come back tomorrow' or something that still gets them to try it?
Kartik N V J K
AI Developer | Making AI reliable, trustworthy & accessible to everyone | Active community contributor
Spending the allowance before the provider call, and setting the refunded flag in the same D1 batch as the refund itself, is how I'd build it too. I couldn't work out one case from the post. When a job stuck in processing gets closed out on the guest's next try, is that an unknown outcome with no refund, or do you check with the provider first?