At the end of this tutorial you will have deployed an ephemeral file sharing application (like in under 10 minutes, powered by microservices and functions, fully managed on Kubernetes.


Applications are a story of data; how information is received, manipulated, stored and retrieved. Traditional application development expresses this journey of data in code that is riddled with unnecessary complexity, difficult read and harder to manage at scale.

Meet Storyscript, the cloud programming language that seamlessly moves data. Fully asynchronous, service-oriented programming; describing how data flows between microservices and functions. Developers can now focus on goal-oriented application design that gives business-logic an intuitive and highly-readable language.

Let's begin your first Storyscript and launch it on the Storyscript Cloud runtime.


First, describe your application in plain text.

A endpoint to upload a file and save it to cloud storage.
The unique address of the upload can be used for later retrieval.

Now, we break apart our application, listing our features and goals.

# Uploading
1. An http endpoint to post files
2. Generate a random file name
3. Save the file to cloud storage
4. Return the url to where we can retrieve the file

# Downloading
1. An http endpoint to get files
2. Download the requested file from cloud storage
3. If the file is missing, return a 404 gracefully
4. Delete the file

🎉 Fantastic! Now that we have our goals listed out, let's discover the services we need to accomplish our goals.

Discover and Build

The Storyscript Hub is the developer marketplace. It's a living community to share, discover and contribute microservices and functions; empowering developers, open source community and software vendors to build smarter software.

From you can start to type in the topics of what services are you requiring. For example http, storage, and random. All the services you find in the Hub come complete with documentation on their usage an arguments to help understand how to interact with the service.

All these services are contributed by open source developers. They are written in any language, wrapped in Docker and fully managed when ran on the Storyscript Cloud. Learn how to design and build your own services on our blog post: Building smarter microservices.


Below is your entire application written in Storyscript. Inspiration behind the Storyscript language comes from many popular programming languages in order to keep it familiar. We hope that the goals and logic is clearly described and follows true to our goal-oriented design.

# Meet Storyscript
http server as client
    # Upload Endpoint
    when client listen path: "/" method: "post" as request
        id = awesome id  # example "colorful-einstein-4561"
        request write content: "https://{app.hostname}/?id={id}"
        request finish  # finish http con, going async now!
        storage put id: id content: request.content  # upload to cloud storage
    # Download Endpoint
    when client listen path: "/" method: "get" as request
        file = storage get id:
        if file != null
            request write content: file
            request set_status code: 404
            request write content: "Not found"

Save this file as app.story.

Learn more about Storyscript syntax here.


Use the Storyscript CLI we deploy your Stories in seconds. First, install the CLI then follow the directions below. One line to deploy to a robust, scalable and managed microservice cloud platform on top of Kubernetes (no dev-ops required).

story deploy

🎉Congratulations! You now have your application deployed.


Now that our application is deployed, let's test it!

$ echo 'Hello, world!' > test.txt
$ curl -F "content=@test.txt" $(story apps url)
# copy-paste me below

$ curl
Hello, world!


- Build smarter microservices (how to build a microservice for Storyscript).
- Read our documentation.