⚡ SaaS-as-Code

Deploy SaaS for free,
10× cheaper to run.

Cloudbloc is the next step after IaaS, IaC, and SaaS — SaaS-as-Code (SaC).

Deploy a complete SaaS with one command — all inside your cloud.

🚀 Ship in minutes with a single Terraform bloc — production-ready.
With near-zero infra work.

Status: MVP / Alpha

Free & Open Source Skip lock-in. Clean Terraform + Kubernetes patterns, battle-tested for production.
10× cost reduction Stop renting commodity SaaS. Run the same capabilities for a fraction of the price.
Full control & Compliance Keep data, logs, and secrets inside your accounts. Deterministic rollbacks with GitOps.

Why Cloudbloc

⚡ Deploy SaaS in minutes, no infra hassle

With Cloudbloc, deploy an entire SaaS in minutes — a single Terraform "bloc" (module). Near-zero infra work required.

🔧 How it works

One Terraform module (bloc) = One SaaS replacement. Each bloc is a pre-built Terraform module that provisions the required cloud + Kubernetes resources. Set a few variables and the stack goes live — production-ready, without YAML sprawl or manual setup.

Cloudbloc is a long-horizon bet: shifting billions away from bloated SaaS contracts and back into in-house capability. Teams regain control of data, cost, and velocity with enterprise-grade reliability and security.

Stop paying for features you don’t use. Run core SaaS in your own cloud for ~10% of the cost — with minimal infra overhead.

⚡ Launch in Minutes

Ship a full SaaS capability with one Terraform bloc. No YAML sprawl, no wasted weekends.

💰 Own the Economics

Move recurring SaaS spend into durable platform investment. Scale usage without price shocks.

️☁️ Cloud-native, not lock-in

Mix blocs like AppBloc, ObsBloc, and SearchBloc to fit your stack. Skip the SaaS lock-in, keep the savings.

Blocs

Pick the SaaS you need and launch it with a bloc — a few lines of Terraform, that’s it.

AppBloc

Heroku-core

Heroku, minus the bloat. Just ingress, TLS, redirects, and firewall — the core you actually need.

cloudbloc.io →

module "appbloc" {
      source   = "github.com/cloudbloc/cloudbloc//blocs/appbloc?ref=appbloc-0.4.2"
      app_name = "cloudbloc-webapp-${var.environment}"
      image    = var.app_image
      domains  = var.domains
    }

ObsBloc

Datadog-core

Prometheus + Grafana with ingress and minimal alerting out of the box. The core of Datadog, without the SaaS bill.

obsbloc.cloudbloc.io →

module "obsbloc" {
      source        = "github.com/cloudbloc/cloudbloc//blocs/obsbloc?ref=obsbloc-0.4.1"
      namespace     = var.namespace
      domains       = var.domains
      edge_ip_name  = var.edge_ip_name
    }

⚠️ MVP — features and stability still evolving

Evolution of Infrastructure

  1. 2006 IaaS

    Infrastructure on demand (IaaS) — AWS, GCP, Azure

  2. 2012 IaC

    Declarative infra as code (IaC) — Terraform, CloudFormation

  3. 2010s SaaS

    Fully managed apps (SaaS) — Datadog, Dropbox, Elasticsearch

  4. 2020s+ SaC

    SaaS-as-Code — Cloudbloc: AppBloc, ObsBloc, SearchBloc

Get started

Explore the repo, drop in a bloc, commit, and ship. Pin a version with ?ref=<bloc>-vX.Y.Z. Releases are managed via release-please (manifest mode).

  1. Auth: gcloud auth login
  2. Providers: set your project and region.
  3. Pin: reference the bloc tag in your module source.
  4. Ship: terraform init && terraform apply.
Terraform

    data "google_client_config" "default" {}

    data "google_container_cluster" "gke" {
        project  = var.project_id
        location = var.region
        name     = var.cluster_name
    }

    provider "google" {
      project = var.project_id
      region  = var.region
    }

    provider "kubernetes" {
        host                   = "https://${data.google_container_cluster.gke.endpoint}"
        cluster_ca_certificate = base64decode(data.google_container_cluster.gke.master_auth[0].cluster_ca_certificate)
        token                  = data.google_client_config.default.access_token
    }

    module "appbloc" {
        source   = "github.com/cloudbloc/cloudbloc//blocs/appbloc?ref=appbloc-0.4.2"
        app_name = "cloudbloc-webapp-${var.environment}"
        image    = var.app_image
        domains  = var.domains
    }

Our vision

SaaS is bloated and costly. Cloudbloc gives you lean building blocks90% cheaper, deploy in one command, customize without limits.

💸 Cost Clarity

Run transparent infra you can forecast. Pay for compute, not markup.

⚡ One-bloc Deploy

Drop in a Terraform bloc, pin a version, and ship to prod in minutes — no YAML grind.

🧩 Open & Extensible

Open-source cores, clean APIs, and a thriving community of modules & integrations.

Roadmap (next)

  • Multi-cloud: AWS parity after GCP hardening.
  • Full suite: mature all blocs (AppBloc, ObsBloc, SearchBloc, AuthBloc) in parallel.
  • GitOps-first workflow: Everything is code. Plan, review, and roll back using your existing CI/CD and ArgoCD/Flux pipelines.