2,970 karma · joined July 25, 2012
Heared some good stories about them in a podcast I recently listened. Not cheap, but the UI/UX should be very good.
We have quite a few online services in production of which I'm sure have a lot of code that isn't executed/touched by our users.
As an example I'm thinking about code in if statements that are never reached because the statement always returns False. These tools discussed aren't capable of detecting such stale code.
Any suggestions?
Check the values (eg BM2.5) around new years eve due to fireworks...
The model is as follows: A user pays per site (he can add multiple) and we decided to have all features available to all plans except for pageviews (we supply a search service like Algolia, but better ;-), and a notification service (small persuasive popups) for e-commerce).
We tie a so called 'module' to a site. A module has a product, start date, end date and subscription (FK). When a user signs up he can start a trial for a specific product which in effect creates a module with a start date, end date (now() + trial_length) and an empty subscription (ie. no subscription means trial).
In our middleware we check if a user wants to view a specific page from a product and we allow/deny access based on having a valid trial (now < end_date). We have jobs running that check which trials have ended and we suspend serving the javascript (which you need to have the service on your site).
After the trial we redirect to a plan picker (but you can still see reports for instance) and let them choose a plan. All plan meta data comes from Stripe as single source of truth (it sits actually in our db because dj-stripe has cached that using sync and webhooks).
Choosing a plan does the whole CC flow and when we get an OK from Stripe we attach a subscription (payment tied to a plan) to the module and delete the end_date. We set the limit in pageviews and check on the usage every minute using a job. The current usage is also communicated to the customer.
The same check we did with the trial is in place to see if a customer has an active subscription (now < end_date) and if the current_usage < usage_limit.
Upgrading and downgrading is easy: tie a new plan to the subscription and Stripe handles the rest (prorate, new invoice).
Canceling is easy as well: cancel call to Stripe, get the returned end_date and set this on the module.
You also have to think about reactivating the subscription (before the cancelled subscription has ended).
A fews things to consider:
- VAT: we're based in the Netherlands, so we have 4 (2x2) cases: Individual/Company and EU/Non-EU. Based on that we have to charge or charge no VAT, you have to add that yourself in your call to Stripe.
- Expired CC, declined payments: Stripe calls a webhook and you have to handle that in a way that it will (a) change the subscription/module (b) tell the customer
Our model also allows for:
- old/defunct pricing plans by setting the subscription to an old plan
- different/special usage limits for clients using special plans
- payment without CC (e.g. bank transfer) by using out_of_band option on Stripe
- generate an unique UTM (or something like that) identifier (UUID)
- add identifiers to the links
- let mailchimp customers connect their Google Analytics with mailchimp
- pull in data from GA to mailchimp to generate click reports
On August 21st, Amazon decided that after 9 years, without warning, NovelRank violated their Terms of Use. On August 31st they followed up all appeals by closing the final domain: Amazon.com, effectively killing NovelRank.
Please export any data you want to keep as soon as possible.
If any publisher or other entity is interested in purchasing the valuable NovelRank domain please email me a reasonable offer: mlurig@novelrank.com.
I was NovelRank's biggest fan. I made it for authors like me; who barely sold any books, but it still felt good to know that someone found your writing valuable. It grew to be valuable to so many others. I'm sorry this has happened and I have to now focus on my new wife (married for the 1st time Aug 3rd) and what my future can be now that my income is gone.
Regretfully, Mario Lurig Founder, Developer, Advocate: NovelRank.com
Lelystad is very symmetric!
[0]: https://github.com/gboeing/osmnx-examples/blob/master/notebo...
[0] https://www.nautadutilh.com/en/our-expertise/special-topics2...