Before you continue...

CARLOS is an AI-enabled project, and all CARLOS software to date has been entirely produced using a combination of LLM-based coding products from Anthropic, OpenAI, and open-weight alternatives. Whilst CARLOS represents an approach to apply these products toward new standards of openness and release of corporate ownership of internet-based software and data, we realise that there are folks for whom use of these products is unacceptable. With that said, if folks will continue to use AI to produce software, our mission is to show that AI unlocks ways to produce better software for everyone.

One of the principles behind the project is full disclosure of AI use, and AI-written language, starting here.

CARLOS Platform

Deploy apps and static sites on hosted Carloku, or run CARLOS Platform in your own infrastructure.

CARLOS Platform is a love-letter to Heroku. Heroku was the best platform as a service and was never beaten for developer experience. CARLOS Platform aims to allow folks the ultimate dream: to get started quickly and easily with a hosted platform like Carloku, but to be able to bring the entire platform into their own infrastructure as needs must.

How it runs

Console · CLI · APIManage apps, releases and configuration
Deployment bucket · S3Releases, configuration and placement
Each regional host reads the deployment configuration

Region A

App requests ↓
Regional edgeTLS certificates and request routing
Tenant instanceApp + SQLite
Tenant instanceApp + SQLite
↓ Litestream streams database changes
Regional data bucket · S3Tenant database backups

Region B

App requests ↓
Regional edgeTLS certificates and request routing
Tenant instanceApp + SQLite
Tenant instanceApp + SQLite
↓ Litestream streams database changes
Regional data bucket · S3Tenant database backups

App requests go to regional edges. Deployment metadata and tenant backups live in separate buckets.

Platform features

Oodles and oodles of features extracted from real-world use-cases.

Deployments

  • Deploy full-stack apps and static sites.
  • Use signed releases and named deployment channels.
  • Create previews for code branches.
  • Add promotion pipelines with bake windows and approvals.
  • Roll back releases and swap builds without downtime on configured hosts.

Hosting and regions

  • Place each tenant's apps in a chosen region.
  • Hibernate idle apps and wake them on request (typically <500ms).
  • Run apps on customer-owned fleets or on-premises compute.
  • Add optional sidecars for background processes.

Data and storage

  • Continuous SQLite backups with Litestream to regional S3 storage.
  • Download and query current or historical database snapshots.
  • Use object storage per app or configuration environment.
  • Manage storage credentials and usage from the platform.

Email sending

  • Send email from verified domains through SMTP backed by Amazon SES.
  • Receive delivery, bounce and complaint events with signed callbacks.
  • Track delivery counts and daily sending caps.

Domains and location

  • Attach custom domains with automatic HTTPS.
  • Use optional IP geolocation: country, region and approximate coordinates.
  • Look up IP addresses through the CLI or API.
  • Steer domain traffic by network latency when enabled.

Security and scanning

  • Scan app object storage with optional ClamAV antivirus.
  • Run scans on demand and keep recorded results.
  • Optionally block reads of objects identified as infected.
  • Use scoped automation credentials and owner or member permissions.

Configuration and automation

  • Manage apps from the console, CLI or API.
  • Give your agent skills for operating the platform.
  • Manage sealed secrets, environment variables and feature flags.
  • Schedule jobs and run one-off commands.

Monitoring and operations

  • Read live application and platform logs.
  • Group errors and availability events by cause.
  • Add optional analytics without cookies.
  • Review activity history and roll out platform updates in stages.