By Amar Kota - Hire me
Revenut is being developed as a lightweight, open source alternative to Stripe's mobile app after my SaaS1 experienced fraudulent activity in the form of card testing. Many other Stripe customers have voiced their problems with card testing too23 and although Stripe confirmed card testing has ceased on my website, the problem persists where fraudulent transactions and customers are still included in Stripe's mobile app reporting. As a result, the numbers and charts displayed simply do not reflect actuals.
Unfortunately Stripe is unable to modify the revenue data or financial reports on the dashboard at this point so the Stripe mobile app, as convenient and fast as it is, does not accurately display metrics including Gross Volume
and New Customers
.
I looked into using another SaaS analytics service but they all charge a premium amount and still do not provide some of the metrics I find useful for my freemium business model. I then decided to build Revenut and open-source it so fellow SaaS owners can get accurate and transparent SaaS metrics conveniently at no cost.
Stripe | Revenut |
---|---|
- Exclude disputed and refunded transactions for accurate revenue reporting
- Login with existing Stripe username / password + MFA
- Calculates unrealized ("paper") revenue based on the number of customers trialing your product
- Calculates unrealized revenue for existing customers that are scheduled to pay their upcoming invoice
- Calculates realized revenue for customers who paid their invoice
FastAPI
Python
Expo
React Native + Typescript
Victory
NativeBase
MyBrandNewLogo
Namelix
MockuPhone
sequenceDiagram
autonumber
actor SaaS Owner
SaaS Owner->>Revenut App: iOS / Android / Web
activate Revenut App
rect rgb(248, 239, 237)
Note over Revenut App,Stripe Connect: One-Time Authentication
critical whitelist
activate Stripe Connect
Revenut App->>Stripe Connect: Login with Stripe
Stripe Connect-->>Revenut App: [authorization_code]
deactivate Stripe Connect
end
activate Revenut API
Revenut App->>Revenut API: [authorization_code]
activate Stripe API
Note over Revenut API, Stripe Connect: One-Time Authorization
Revenut API->>Stripe Connect: Request access token
Stripe Connect-->>Revenut API: [stripe_user_id]
end
par multiprocess async
Revenut API-)Stripe API: /charges
Revenut API-)Stripe API: /subscriptions
Revenut API-)Stripe API: /customers
Revenut API-)Stripe API: /account
end
Stripe API-->>Revenut API: Stripe API responses
deactivate Stripe API
Note over Revenut API: Calculate Metrics
Revenut API-->>Revenut App: Return SaaS metrics + [stripe_user_id]
deactivate Revenut API
Note over Revenut App: Save [stripe_user_id] to local storage
Revenut App--xSaaS Owner: Display SaaS metrics
deactivate Revenut App
Revenut uses Expo's built-in Authentication package that has been configured to use Stripe's browser-based authentication via OAuth. This allows Stripe users to login with their existing Stripe credentials securely so Revenut can retrieve data required to formulate its metrics.
SaaS owners can generate revenue from multiple sources including app stores, advertisements and more. Revenut should be updated to forecast revenue from these providers:
- Stripe
- PayPal
- Google AdSense
- Apple App Store
- Google Play Store
If you like Revenut, please star this repo or consider sponsoring. If you want to make Revenut better, feel free to submit a PR, log an issue or contact me directly.
The Revenut source code is made available under the Apache 2.0 license.