You rely on ...Pricing
DjaoDjin technology but manage everything yourself Free
DjaoDjin professional team to bootstrap a SaaS product Starter
DjaoDjin professional team for your Small to Medium size business Indie
Custom setup and service level agreements Enterprise

How does it work?

DjaoDjin acts as a subscriber session manager between clients and your product. DjaoDjin implements all registration, payment and user profile pages.

Technically intercepts HTTP requests from the client to your product. DjaoDjin will authenticate users, process payments and run the 80% of boiler plate code required to run a business on the Internet. DjaoDjin will only forward validated requests, augmented with session information, to your product.

Read the detailed technical documentation »

How do I create a web product online?

Watch a 3min video »

After logging in, on the DjaoDjin app page, we click Create New Product, and enter the name of our product as it will appear in the URL bar.

A test site is created for you. You will have the opportunity to switch it to a production site later on. We will see later how to run a test site for deploying new code alongside your stable production site. For now, we will just browse to the site that was created for us initially.

Here we have the opportunity to forward request to our web application based on various rules (ex: Is the user authenticated?, Did the user subscribed to a plan?).

For now we are just going to edit the title on the default homepage and create a couple plans, wysiwyg (what-you-see-is-what-you-get) style. We will see later how do I customize the default theme. Now since we are happy with the edits, we just log off.

Our site is ready. Let's pretend we are a new visitor coming to our homepage. We click on pricing and since we like the Basic plan, we will subscribe to it. As a subscriber we have the opportunity to pay multiple periods in advance at a discount. Since we are in testing mode, we can use Stripe Test Credit Cards to pay for everything. No money is transferred. Et Voila!

Connecting your Stripe account only needs to be done once. In order to do that, browse to the Funds page, click Update next to bank information, then click Connect with Stripe, follow the Stripe wizard. Once you are done, you are ready to accept payments on your site. All funds will be deposited directly into your Stripe account.

Logging into your site (ex:, then on the dashboard, click on the Rules link in the sidebar menu.

Configure the URL patterns and access rules for the subscription firewall.

Rules are checked in order from the top to bottom. DjaoDjin will present login and pricing pages as necessary. Your application only has to deal with requests which are matched against the rules setup here.

Example use cases:

Enter the URL your application is available at (ex:

Generate and download your DjaoDjin secret key use to encrypt the content of the requests forwarded to your app.

Integrate the DjaoDjin secret key and decryption code at the front of the request processing pipeline in your application. documentation for popular frameworks

Setting up your own domain is often one of the most complex challenges for non-technical business people. It requires multiple independent third party services to be configured to work together.

  1. Update the settings at your DNS provider to send requests to the DjaoDjin firewall (ex:
  2. Upload the SSL certificate and private key for your domain

Read our detailed post on the subject of Secure whitelabel domains ».

You can easily update the layout and colors of the registration, pricing and payment pages by uploading your own templates and assets.

For technical details on the convention your templates must respect in order to integrate nicely into the DjaoDjin reverse proxy, read the creating theme documentation ».

Either on the phone or by e-mail, the first thing you will want to do when a subscriber requests support from you, is to pull up their profile. The subscribers page, accessible from the sidebar menu is your entry point there.

Search by username, email or given name, then click on the customer profile link to browse to their subscriptions and billing history. You can easily update information and refund transactions when necessary with a simple click.

Discounts are an integral part of running any business. You can set two kind of discounts on DjaoDjin.

  1. Coupon codes
  2. Advance period discounts

You can create any kind of Coupon codes, then and them out to your best customers. They will be able to get a percentage discounted at checkout time. Another use of registration code is during testing of your product. Some of DjaoDjin customers like you have reported very good results by giving 100% discount to a select group of alpha tester, 50% discount to a later bigger group of beta testers, and so on until the product was ready for general use. You can read about this lesson and others on the DjaoDjin blog »

Another set of discounts are for payment of advance periods. The time value of cash is critical to your business so you will want to reward the monthly subscribers that pay six months, a year or two years in advance.

In order to do that, browse to the edit plan page and set an Advance discount percentage greater than zero. All customers subscribing to the plan will then see an additional page at checkout where they will be given the opportunity to buy advance periods at a discount.

When you deliver Software -as-a-Service, service accounting rules apply. Revenue is recognized over the life time of the contract. Three rows on the balance sheet are thus important to keep track of

Income At the end of each period, the income generated by the service during the period must be recognized. For example, on a $828 for a one-year contract we will recognize $69 every month from the start date.

Backlog The accounting rules dictate to recognize the value over the lifetime of the contract but it does not make any requirements as to when cash is transferred between the subscriber and the provider. Backlog is the value of the contract that has been paid by the subscriber in advance of the service being delivered.

Receivable When cash is transferred from the subscriber to the provider at the end of the contract, we record its value at the time of signature as a Receivable that will be collected later.

Of course, you will want to also keep an eye on the lifetime value of a subscriber, churn rate and the popularity of each plan. These metrics are automatically generated in real-time from the activity happening on your DjaoDjin-hosted site.

Total Sales This number reflects the total amount ($) ordered by customers in the period, regardless if the associated charges were successful or not.

New Sales This number reflects the amount ($) ordered by customers in the period that did not order anything in the previous period. It includes new customers that registered and ordered subscriptions in the period as well as past customers that had cancelled previously and are signing on again. By definition, New Sales is always lower than Total Sales.

Churned Sales This number reflects the amount ($) the business could have expected to see as renewals but that did not happen because of subscription running out and not being renewed or active cancellation.

Payments This number reflects the amount ($) that was sucessfuly charged to customers in the period.

Refunds This number reflects the amount ($) that was returned to customers in the period, usually by the business support staff after interacting with a customer.

Note about Total Sales and Payments. In a perfect world were all charges on a customer credit card are successful, Total Sales and Payments would be equal. In practice, there are many reasons why a charge can fail (underfunded credit card, expired credit card at time of renewal, etc.). When an order has been successfuly entered in the system the associated subscriptions are active and the SaaS product is being served to customers. Their account though goes into collection for past due. Payments are the actual amount of successful charges in the period. It will be lower than Total Sales when customers subscribe to a product but the associated charge fails. Payments can also be higher than Total Sales when business is really slow but there is a sudden spike of past due collected.

A business that serves professionals or enterprise customers always has to deal with a distinct payer and subscriber. The person authorizing payments to your service is often not the person using your service day-in and day-out.

DjaoDjin supports this scenario by providing a GroupBuy option nicely integrated into the discount code payment flow.

A group buyer first registers normally to the site. She will update her profile to enable GroupBuy before moving on to the payment screen.

Because GroupBuy is enabled, the group buyer has the opportunity to add the name and email address of as many users as she desires. Each individual user will receive an email with a link that enable her to go through the payment screen has if they used a 100% discount registration code.

A group member only has to click on the link received in the email, register (or login if they were already registered), click through the no payment required page and start using their subscription.

Watch it in video on a streetside site »