The fastest way to get a SaaS business off the ground

Do you want to specifically launch a Software-as-a-Service business? That’s great news, because we’ve developed a proprietary framework that makes developing the backend layer of SaaS software easier and faster than ever. What exactly does this mean? That your product can start monetization in less than five weeks.

We're the best and we can explain why

/01

Monetization

Quick and easy integration with a payment gateway of your choice (Stripe, Paddle, Google Play Store, App Store, and more)

/02

Service tiers

Easy setup of subscription tiers or packages for the user to choose from, with customizable pricing, feature availability, and service access

/03

Recurring payments

Automatic recurring payments integration, with payment plans of your choice (monthly, quarterly, annual, other).

/04

Discounts & rewards

With payment plans

Easy-to-implement incentives, e.g. two free months on top of an annual subscription or a set price discount for paying quarterly instead of monthly.

/05

GDPR compliance

The way our software processes data is designed with GDPR in mind and fully compliant with European data protection laws.

Our framework also contains useful features that you wouldn’t normally include in an MVP for financial reasons but can give you an edge over the competition. They reduce support costs and increase your flexibility in setting up account permissions for users:
/bonus

Internal Currency

A custom-branded internal currency configured according to your preferences, like coins or points users can use to purchase add-ons or spend on using the service. You can choose their value, purpose, whether and when they expire, and how much users get in what circumstances.

/bonus

Hidden Limits & Fraud Detection

Discreet fraud detection of unrealistic levels of service usage, likely caused by automated scripts, or multiple people using one account.

/bonus

Performance Dashboards

Two years of free access to performance dashboards

Intuitive visualization of the performance of your system based on Grafana and Prometheus. (Learn more about Grafana, Prometheus, and our dashboards below).

Our unique approach
and tech stack

We've discussed the features with which we can equip your software, and now it's time to explain the technical side: the tools, techniques, and features that combine into our one-of-a-kind offering. You don't need to know it unless you're interested in a deep dive into technology, but your CTO or tech advisor will probably appreciate getting to know the details.

TOOLS

RT Cookiecutter Template

Our proprietary project launch template, based on the Cookiecutter technology, allows us to set up your project much faster than if we were to do it manually. You’ll literally save months of development, which directly translates to huge cost savings as well as an earlier release date.

RT Cookiecutter Template is the result of hundreds of hours of top developers’ work, and it’s what you get to leverage from day one when working with us.

Instead of spending months setting up the development environment and dealing with DevOps-related issues, we create the configuration you need from battle-tested, ready-to-use modules. This allows us to deliver valuable features much faster than the competition.

Docker

Docker lets us run the many components of your product as self-contained, self-sufficient elements that only interact with each other in the narrowest possible way. Isolating them like this minimizes conflicts and improves security: in case of a breach, the bad actors could only reach a small part of your software, and wouldn’t be able to impact any other elements. Using Docker additionally normalizes the software and makes it easy to launch it in any operating system.

Docker is also helpful for ensuring a smooth user experience despite any possible infrastructure problems. If it detects a failure in a container, or that a component is about to take up too much of a server’s memory, it forces an immediate restart of the affected container, minimizing impact on the rest of the system. This makes it much less likely for the entire product to stop working.

Latest Python version from 3.11 line

We always use the most recent stable version of Python to make sure we can take advantage of the broadest possible range of features, improvements, as well as security and performance enhancements. Staying up to date with Python also means that we’re always doing the most we can to futureproof your code and make it either compatible or easy to reconcile with new libraries and frameworks.

Gunicorn

Gunicorn, or Green Unicorn, is our choice for running WSGI (Web Server Gateway Interface) instances in production environments for its high performance, reliability, flexibility, and support. It is quick to configure yet highly customizable and benefits from an active community, which guarantees swift support and extensive documentation. Thundering herd?

Nginx

Nginx is a high-performance web server and reverse proxy or, to put it in simpler terms, a tool that serves as a traffic officer, directing incoming web traffic to the right place. One of its key benefits is its ability to automatically renew SSL certificates using Let's Encrypt, a free and open Certificate Authority, guaranteeing secure communication between clients and servers. Using Nginx ensures that your data keeps flowing smoothly and is appropriately encrypted at all times. Nginx is also one of the few web servers that can resist DoS connection attacks.

Celery

Celery is a versatile tool for task scheduling and orchestration. It enables the assignment of diverse workloads across different servers, allowing developers to configure resource allocation based on task priorities and server capabilities.

Consider a scenario where a website facilitates report generation, a process demanding substantial time and computational resources. Here's how Celery streamlines this operation:
• When a user initiates report generation, the webserver triggers Celery to handle the task asynchronously.
• At the same time, the webserver promptly informs the user that the report generation is underway.
• Celery executes the report generation in the background, relieving the webserver, which is designed for quick interactive workloads, from the burden of having to manage a long-running process.

The key advantage lies in the webserver's ability to delegate tasks to Celery, ensuring responsiveness to user requests without delay and facilitating automatic task retries in case of failures.

Celery also provides support for task priority levels, ensuring that critical tasks are processed promptly, while less time-sensitive tasks can be queued up for later processing. For example, sending out registration confirmation emails might have a higher priority than daily report generation tasks.

Cruft

This tool lets us save time during any future updates. If it wasn’t for Cruft, importing new features from the RT Cookiecutter Template would be prohibitively expensive. Fortunately, we implement it in all our projects, so you can expect a high level of automation in the long term.

If you decide to work with us and your project is based on the RT Cookiecutter Template, you will also indefinitely keep taking advantage of our template updates. Whenever we enrich it with a new feature, it will become available for you as well at no additional cost. Our clients have already received numerous updates and are always equipped with our latest available tools, no matter when we first developed their software.

Docker Compose

Docker Compose takes the usefulness of Docker even further by allowing us to combine containers into groups. This means that despite being isolated, components can be launched, connected and managed together, which hugely simplifies deployment.

Docker Compose also keeps an eye on the order of service launch, making sure it follows adequate logic. For example, it won’t let an application launch before the database it draws records from is ready.

Latest Django release

Django is a robust, industry-leading Python framework that lets us deliver scalable and secure applications much faster.

One of Django's most distinctive features is its vast and robust plugin ecosystem. This empowers us to extend and enhance applications with sophisticated functionalities. Importantly, these key plugins have been built with Django's architecture in mind, resulting in high compatibility among them. This synergy often eliminates the kinds of conflict issues that can occur with the more disjointed plugin ecosystem in frameworks like Flask.

Our choice of Django also guarantees reliable long-term maintenance and support. The Django community's commitment to regular updates and enhancements makes it a reliable platform that evolves with the changing tech landscape.

Another significant advantage of Django lies in its completeness. It's a high-level framework loaded with built-in features for rapid development. Where other frameworks like Flask need the addition of numerous plugins to offer similar functionality, Django comes equipped with essential development tools right out of the box. These tools include administrative interfaces, authentication mechanisms, built-in protection against cross-site request forgery (CSRF), and an Object-Relational Mapping (ORM) layer to proficiently interact with your data.

Django also simplifies database interactions by abstracting SQL queries and offers seamless integration for caching data. Other important features include clear and flexible URL routing for organizing project structure, middleware support for custom request/response processing, a powerful toolkit for building RESTful APIs, and integration with Celery for task queue management.

All in all, our use of Django enables swift development cycles, robust core functionalities, continuous updates, and excellent results. Django lets us deliver advanced web applications that excel in productivity and security.

Uvicorn

Uvicorn is an ASGI (Asynchronous Server Gateway Interface) server implementation, designed for running Python web applications. It supports various ASGI frameworks, including those that utilize WebSockets for real-time communication, with the capacity to handle WebSocket connections alongside traditional HTTP requests.

We use Uvicorn for running ASGI instances in production environments for its high performance, ease of deployment, and scalability. Uvicorn is a great solution for making modern web applications more interactive and enabling lightning-fast two-way communication with the server so that the app responds to user input immediately. Uvicorn handles asynchronous requests at an impressive speed even under heavy loads, supports concurrent connections, and, just like Gunicorn, boasts an active community of developers.

PostgreSQL

PostgreSQL is a cost-effective, scalable, high-performance relational database. An industry standard in modern development, it supports a wide range of data types and features, allowing you to model your data in a way that best suits your needs, whether you're building a social network, an e-commerce platform, or a SaaS analytics tool. PostgreSQL is also equipped with robust security features, including encryption, authentication mechanisms, and access controls.

Celery Beat

Celery Beat takes Celery’s task management capabilities to another level by making it possible to schedule recurring tasks. This means that regular reports, periodic emails, or maintenance scripts can simply handle themselves.

METHODOLOGY

Using LTS releases

We use Long-Term Support releases of crucial tools like Django and Ubuntu to ensure that your project will need to perform updates every three years instead of annually. This translates into significant cost savings, as each update requires a significant investment.

Cloud configuration options

The main benefit of cloud services is their scalability, as they allow companies to rapidly adjust resources based on demand, reducing upfront infrastructure costs and enabling growth without significant capital investment. We provide different cloud configuration options and ensure easy deployment to cloud environments

Choosing the right cloud provider is crucial for startups as it directly influences costs and can significantly impact the financial sustainability of the business. We actively uphold a neutral stance towards cloud providers, avoiding favoritism and focusing on recommending the best solution for your specific needs. Our approach prioritizes cost-effectiveness, which we verify with detailed usage forecasts, and ensures alignment with your requirements and objectives.

We have experience with AWS, Azure, GCP, DigitalOcean, Vultr, OVH, Cherryservers, Equinix, Linode, Hetzner, and Contabo, but we can work with almost any provider.

Continuous Integration and Deployment Automation

Continuous Integration (CI) and Deployment Automation help streamline the software development lifecycle, improve code quality, and accelerate time-to-market. They involve automating the process of integrating code changes into a shared repository branch and deploying applications to environments. We use a multitude of state-of-the-art tools to ensure secure, repeatable, fully automated deployments, including automatic release notes generation.

GitHub Actions

A workflow automation tool that lets us define a tree of actions for building, testing, and deploying applications directly within their GitHub repositories

Ruff

A tool used for linting and automatically fixing Python code according to predefined coding standards and best practices. It helps maintain code quality and consistency, reducing the likelihood of bugs and improving overall maintainability.

Nox

A Python automation tool used for defining and running workflows that involve executing tasks such as testing, linting, and building Python projects. It helps streamline local development workflows and ensures consistency across different development environments.

ShellCheck

A linting tool for analyzing and automatically fixing shell scripts to identify issues, errors, and potential security vulnerabilities. By enforcing best practices and ensuring correctness in shell scripts, ShellCheck helps maintain reliable and secure automation workflows.

User-friendly deployment practices

Our approach ensures seamless software updates without service interruptions or disruptions in server connections. We use a combination of tools to mitigate the risk of deployment-related issues.

CORS headers preconfigured

Cross-Origin Resource Sharing (CORS) headers are set up in advance to allow web applications to securely make requests across different domains, ensuring compatibility with modern browser policies and security.

BREACH attack mitigation

Measures are implemented to mitigate BREACH attacks, which exploit compression vulnerabilities in HTTPS responses to extract sensitive information.

0-RTT TLS 1.3 Early Data Support

Support for TLS 1.3 Early Data allows for faster handshakes (the initial communication between a client and a server) and reduces latency by enabling clients to send encrypted data in the initial handshake.

TLS 1.2 & 1.3 with Auto-Renewal

TLS encryption is implemented using Let's Encrypt certificates, ensuring secure communication over the internet, with automatic renewal to prevent certificate expiration.

CSP integrated

Content Security Policy (CSP) is integrated to mitigate the risk of cross-site scripting (XSS) attacks by defining a set of rules for browser behavior, specifying which resources are allowed to be loaded and executed on a web page.

Brotli compression support

Brotli compression enhances the speed of transmitting HTML texts, reducing bandwidth usage, and improving page load times.

HTTP/2 Support

HTTP/2 protocol is supported to provide faster and more efficient communication between clients and servers, with features like multiplexing, header compression, and server push.

Forward Secrecy Ciphers

Forward Secrecy ciphers are employed to ensure that even if a private key is compromised in the future, past communications remain secure, enhancing overall security.

Overall SSL Labs Security Class: A+ 100/100/90/90

The SSL Labs security assessment scores the server configuration, ensuring it meets high security standards (A+ rating) while maintaining compatibility with some older clients.

We also offer optional fingerprinting of users on the backend and frontend sides, a service aimed at detecting unfair usage of subscription accounts. Our Clients often use it to initiate conversations with people who engage in such practices and present them with the opportunity to switch to a higher tier. This makes fingerprinting a great tool for turning malpractice into potential upsells..

Robust software reliability support

We implement a comprehensive set of tools and best practices to minimize the likelihood of service interruptions and enhance the security of your software. Our approach ensures cost-efficient and secure automatic database backups and provides clear visibility into logs, enabling swift detection and resolution of any issues impacting your services.

B2 cloud storage backups

We back up all your files to B2, a completely separate storage service, which means that even in the worst-case scenario of a bad actor breaking into your cloud account, a backup will always be safe and sound on B2. The cloud server doesn’t have permission to delete files, providing an additional layer of security, and the files are highly compressed, decreasing the cost of storage.

Formal disaster recovery procedure

Imagine it's 2 am and you realize your service has experienced a total outage. Can you feel your palms getting sweaty? We know what it's like to try to bring a crucial part of software back to life with no way to get outside support. That's why we provide a scripted, repeatable procedure for restoring the system from a backup quickly and reliably.
This means that in case of any trouble, including total service outage, you’ll be able to use a step-by-step instruction to get your system up and running again in no time. Dealing with this type of situation won't ever be pleasant or relaxing, but our procedure brings the stress you'll experience down to the lowest possible amount.

Grafana

Grafana is an open-source platform for monitoring and observability. It lets us provide you with easy-to-understand dashboards that visualize metrics, logs, and other data sources. Grafana supports various data sources and offers features like alerting, dashboard sharing, and dynamic visualization. We collect data with Prometheus and also use Grafana Loki with Promtail to handle large volumes of log data efficiently and Mimir to ensure system data can be stored indefinitely at an incredibly low cost. All in all, you can expect to have access to visual dashboards tracking nearly every imaginable aspect of your system’s performance. More on some specific examples below.

nginx-level Dashboard

This dashboard section provides statistics specific to nginx, a popular web server and reverse proxy. It includes metrics such as request rate, response time, error rate, and connection status, allowing administrators to monitor nginx performance and troubleshoot issues.

Alert History Dashboard

The alert history dashboard displays a history of alerts triggered by the monitoring system. It provides insights into past incidents, including their severity, duration, and resolution, helping analyze trends and improve incident response processes.

zstd backup compression

We use zstd (Zstandard), a fast and efficient compression algorithm designed for both storage and transmission of data, superior in comparison with typically used gzip. It offers excellent compression ratios and high-speed processing, making it ideal for applications where performance is critical, such as disaster recovery.

Sentry error tracking

Sentry is an error-tracking platform that aggregates unhandled exceptions, making it possible for a system maintainer to find their way around a flood of application errors and correctly prioritize the fixes. Sentry collects context data about exceptions, crashes, and performance issues, enabling faster diagnosis and recovery.

Generic Host Dashboard

We provide a dashboard optimized for both virtual machines (VMs) and physical machines that provide insights into system-level metrics such as CPU usage, memory utilization, disk I/O, and network traffic. It helps administrators monitor the health and performance of their infrastructure.

Active Monitoring Dashboard (HTTP Ping)

The active monitoring dashboard performs HTTP ping checks against various endpoints to verify their availability and responsiveness. It provides real-time status updates and alerts administrators to any issues affecting the monitored services.

Alertmanager

Alertmanager is a component of the Prometheus ecosystem responsible for handling alerts generated by monitoring systems. It receives alerts from Prometheus and other sources, deduplicates, groups, and routes them to integrations like email, Slack, or PagerDuty for further action. Our developers can see alert notifications in real time and usually manage to react before the problems affect end users.

Configuration

Our configuration is optimized for fast development, efficient deployment, and dealing with issues as soon as they rear their ugly heads. Our approach includes:

.env files for configuration

.env files are used to store configuration variables such as database credentials, API keys, and environment-specific settings. They let us keep sensitive information out of version control and provide a standardized way to manage configuration across different environments (e.g., local development, staging, production). Our .env files are preconfigured for both local and production environments, which simplifies the process of configuring application settings by providing default values and placeholders that developers can customize as needed for each environment.

IPython

IPython is an enhanced interactive Python shell that offers features such as tab completion, syntax highlighting, and object introspection. Including IPython as the default shell for Django's management commands provides us with a more user-friendly and productive environment for interacting with Django models and executing Python code.

Django Debug Toolbar

Django Debug Toolbar is a powerful debugging tool that provides insights into various aspects of Django application performance, including database queries, cache usage, and template rendering times. We enable it for the local environment, which allows us to identify and troubleshoot performance bottlenecks during development.

Django Extensions

Django Extensions is a collection of useful utilities and commands for Django projects. One of its features is the ability to generate visual representations (graphs) of Django models and their relationships, helping visualize the database schema. Additionally, Django Extensions provides various management commands for tasks such as generating project boilerplate, exporting data, and optimizing database queries.

The combination of these tools and methods, which we’ve built up over many years of backend development experience, ensures not even a minute of our time gets wasted on unnecessary tasks or dealing with issues that have long been solved by technology.

OK, so how much does it cost?

The Smart Sales Assistant can also provide insights into customer behavior and preferences, allowing you to optimize your marketing and sales strategies.

small saas

Up to 1 additional technology

$5,000

standard saas

Up to 2 or 3 additional technologies

$10,000

custom saas

More than 4 additional technologies

Contact Us

Let’s just have a quick Zoom call
and talk about your idea so we can provide a better estimate.

SCHEDULE A MEETING