Creating a SaaS Web Application: Part 2 - Selecting a Hosting Partner
Written on
Chapter 1: Introduction to SaaS Applications
In this ongoing series, you'll explore the process of developing and launching a SaaS (Software as a Service) web application, including subscription management.
A SaaS web app is an online software solution accessible via a web browser, operating on a subscription model. The primary benefit of this approach is the elimination of installation and maintenance, making it user-friendly. Although the process of creating a SaaS application may appear daunting, it is manageable with the right resources and understanding. This series will cover essential steps, development frameworks, and tools necessary for a successful launch. Whether you're a novice or an experienced developer, this guide offers valuable insights into creating a SaaS web application.
For a deeper dive into the foundational technology and frameworks, refer to Part 1: Choosing Technology and Frameworks.
Chapter 2: Understanding Hosting Providers
To deploy your application and make it publicly accessible, selecting a hosting provider is crucial. Hosting providers offer various options, including VPS (Virtual Private Server), shared hosting, or fully managed hosting solutions.
Hosting types can differ significantly; you might choose serverless hosting, which simplifies the deployment process by removing the need for server management, operating system updates, and extensive configuration. With serverless options, deployment can be as straightforward as pushing your application from GitHub, while the hosting provider manages the technical aspects.
For instance, AWS Lambda exemplifies serverless hosting, as does Heroku, which recently discontinued its free tier.
Alternatively, you could opt for a managed PaaS solution that mimics the automated deployment benefits of serverless hosting. In this series, I've decided to maintain my server while utilizing a reliable PaaS software solution. This decision stems from the affordability of VPS options, often available for as low as $5 per month, allowing for the deployment of numerous applications without concerns about database size limits or additional costs for custom domains and backups.
Chapter 3: Choosing a Hosting Partner
When selecting a hosting partner, many providers offer similar pricing and features. Notable players in this space include Linode and Digital Ocean. However, I have opted for Hetzner, a rising European hosting provider known for its competitive pricing and robust specs compared to other cloud servers.
Hetzner's entry-level cloud server is priced at just $3.79/month, providing 2vCPUs, 2GB of RAM, 20GB of disk space, and an impressive 20TB of traffic. This generous traffic allowance is especially advantageous if you plan to host multiple applications.
Chapter 4: Selecting a PaaS Solution
Since I will manage my cloud server, I require a PaaS software to streamline the deployment process and manage my application's lifecycle. While I could manually set up database software like MySQL or Postgres and configure an Nginx proxy, a PaaS solution can automate these tasks, replicating the benefits of serverless hosting.
CapRover is one such option; however, I've chosen Dokku due to its straightforward setup and compatibility with most Linux distributions, making it easy to install on a cloud server. Dokku facilitates managing application deployment from GitHub, handling the database (Postgres in this instance), and managing SSL certificates. It also allows scaling by deploying additional instances as needed.
According to their website, once Dokku is installed on a host, you can deploy Heroku-compatible applications via Git, using Heroku buildpacks and running them in isolated containers, effectively creating your own single-host version of Heroku.
Chapter 5: Conclusion
In this second installment, we've selected our hosting partner and PaaS solution to support the development and management of our application lifecycle. Stay tuned for Part 3, where I will guide you through setting up your development environment with Dokku and preparing your application container and database.
For more engaging articles, feel free to explore additional resources. Don’t forget to sign up for my free newsletter to stay informed about new posts!