πŸ‘‹

Say hello to the future of cloud computing

Deploy with a function call. Call services as easily as local functions. Access storage as easily as in-memory data structures.

πŸ‘€ Learn about our approach
●●●
UCM
.> project.create-empty

  πŸŽ‰ I've created the project with the randomly-chosen name
  energetic-cheetah (use `project.rename <new-name>` to change it).

energetic-cheetah/main> pull @unison/cloud-start/releases/latest 

  Downloading... DONE βœ…

energetic-cheetah/main> run helloWorld.deployannotation arrowfull code example below 

  Uploading service... DONE βœ…
  
  Service deployed at:

    https://unison-services.cloud/h/nndat36oh3usll24flj6qlfpb8uk1plf20na9e1er67uo9idme60/
    https://myusername.unison-services.cloud/s/hello-world/

  View logs at: https://app.unison.cloud

energetic-cheetah/main> quit

$ curl https://myusername.unison-services.cloud/s/hello-world/Cloud
πŸ‘‹ Hello, Cloud!
.>

Features

We've packed Unison Cloud full of goodies.

Web service hosting

Deploy HTTP and WebSocket In Beta services in seconds with a single function call. No building containers, managing VMs, or other cloud infra management. Focus entirely on the logic of your services.

Learn more
●●●
~/scratch.u
helloWorld.logic : HttpRequest ->{Exception, Log} HttpResponse                                     
helloWorld.logic = Route.run do
  name = route GET Parser.text
  info "request for greeting" [("name", name)]
  ok.text ("πŸ‘‹ hello " ++ name ++ "\n")

helloWorld.deploy : '{IO, Exception} ()
helloWorld.deploy = Cloud.main do
  name = ServiceName.create "hello-world"
  serviceHash = deployHttp !Environment.default helloWorld.logic
  ServiceName.assign name serviceHash


Service-to-service calls

Make inter-service calls with a single line of code, without serialization or networking boilerplate. Get the benefits of a microservice architecture without the headache.

Learn more

Immutable deployments

All service deployments get a unique content-addressed hash. Named services have a stable URL and can point to any service version. Easily promote a deployment to production or rollback to an earlier version.

Learn more
●●●
app.unison.cloud
#8LwIdQx1 A @alice 3 days ago
#G8VcMPGs Active Deploy C @carol 5 days ago
#AqjDPCC2 B @bob 6 days ago
#sS34CCmo L @logan 8 days ago
#45cKdmzL F @finley 13 days ago
#0fks3dLD T @taylor 29 days ago

Typed storage

Getting data into and and out of storage is usually a tedious layer of boilerplate in your application. With Unison Cloud, any value may be saved in our transactional storage layer. Your access to storage is statically typed and checked by Unison's typechecker.

Learn more
●●●
~/scratch.u
counter : Database -> Table Text Nat -> HttpRequest -> HttpResponse
counter db userCounts = Route.run do
  (user, amount) = route.pair POST (s "increment" / text / nat)
  count = State.modifyGet db userCounts user 0 (x -> x + amount)
  ok.text (Nat.toText count ++ "\\n")

counter.deploy : '{IO, Exception} ()
counter.deploy = Cloud.main do
  db = Database.create "counter-service-db"
  env = Environment.create "counter-env"
  Database.assign db env
  h = deployHttp env (counter db (Table "counts"))
  ServiceName.assign (ServiceName.create "counter") h


Log collection and viewing

Logs produced by your services or batch jobs are consolidated and easily viewable in the Unison Cloud UI. You can also stream these logs to your local console.

Learn more
●●●
app.unison.cloud
14:12:09 GET /hello/Cloud
14:12:16 GET /hello/Alice
14:13:21 GET /hello/Bob
14:18:09 GET /hello/Cloud

Batch compute jobs

Run your ETLs, data aggregations, or other batch jobs on elastic cloud resources.

Learn more

Secrets and config management

Upload secrets and config to our securely encrypted vault; access them easily from your services.

Learn more

Easy local testing

For easy testing, just swap a single function call and your service is running locally instead of in the cloud.

Learn more

Pricing

Get started for free. Simple and predictable pricing as you scale.

Free

$0 Per month
For individuals
  • Unlimited private projects
  • Coming soon
    Unlimited multi-user public projects
  • Up to 5 deployed services
    Services deactivate every 3 weeks
  • 50MB expiring storage
    Expires every 3 months
  • 5k service requests/month

Starter

$9 Per month
For individuals
  • Unlimited private projects
  • Unlimited deployed services
  • 100MB storage to start
    $5/GB-month beyond this, no expiration
  • 1 million service requests/month
  • Your services on a custom domain
    ... instead of unison-services.cloud
  • Early access to all new features

Pro

$29 Per user per month
For teams
  • Everything in Starter, plus:
  • Unlimited multi-user private projects
  • 5GB storage to start
    $2.50/GB-month beyond that, no expiration
  • Unlimited service requests per month
  • Autoscaling within limits you set
    $10 per node-month

Need something custom? Contact us.

Β© 2023 Unison Computing , a public benefit corp Β· Terms of Service Β· Privacy Policy Β·