This is a tutorial on how to develop an application through story telling; building applications in a fraction of the time with zero-devops.
⚠️ Beta access required. Click here to request access to our private-beta.

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

Introduction

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. We have solved this problem.

Meet Storyscript, a language for 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. Some people call this low-code, some say glue-code, we call it Storyscript.


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

Goals

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 Story 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 https://hub.storyscript.io 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 Story Cloud. Learn how to design and build your own services on our blog post: Building smarter microservices.

P.S. We are developing tools to bring the Story Hub service discovery, actions and arguments directly to the writing process which makes writing stories even more intuitive. Contributions are very welcome and appreciated!

Develop

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}\n'
        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: request.query_params.id
        if file
            request write content: file
        else
            request set_status code: 404
            request write content: 'Not found'

Save this file as app.story.

Learn more about Storyscript syntax here.

Deploy

Use the Story 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.

The Story describes the journey of data and orchestrates Kubernetes automatically.

Test

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

$ echo 'Hello, world!' > test.txt
$ curl -F "content=@test.txt" $(story apps url)
https://foobar.storyscriptapp.com?id=awesome-edison-1781
# copy-paste me below

$ curl https://foobar.storyscriptapp.com/?id=awesome-edison-1781
Hello, world!

Next

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

We are eager to chat with you. Feel free to drop your comments and ideas into Intercom or Slack.