Teal is a programming language for building stateful and portable serverless applications.
  • ✔ Great for data pipelines
  • ✔ Zero user-managed IAC
  • ✔ Flexible & extensible triggering
  • ✔ Fully serverless: Lambda and DynamoDB on AWS
  • ✔ 60s to deploy from scratch
import(transcode, py_src.video_tools, 4);
// other imports...

fn on_upload(bucket, key) {
  if check_format(bucket, key) {
    hls = async transcode_hls(bucket, key);
    mp4 = async transcode_mp4(bucket, key);
  else {
    error(“bad format”);
  update_database(await mp4, await hls);

Language inter-op

Use your favourite tools and libraries to do the heavy lifting while Teal handles the glue.

Right now, Teal can call Python functions directly. There are plans to support Javascript, and possibly other languages (C/C++, etc).


The Teal runtime abstracts "storage" and "compute", so any platform that can provide these, can run Teal.

The side-effect is that you can test your application locally, using local storage and compute, then deploy to the cloud. If it behaves differently, that is considered a Teal bug.

Currently only the AWS backend has been implemented.

Effortless Concurrency

Teal hides the complexity of concurrent processes in AWS behind familiar programming constructs (async/await), letting you describe systems with multiple "threads" that pass data and wait for each other.

When running in AWS, threads run in separate Lambda contexts and share data through DynamoDB, transparently handled by the Teal runtime.

Advanced Metrics

Standard output and logs across threads are automatically scoped by project and "session".

Teal Events enable function-level tracing and performance analysis.

When things break, Teal stack-traces show the entire context, not just the current thread (or Lambda function).

Get Started Instantly

$ pip install teal-lang

$ teal init

And then check out the documentation or the examples!
July 2020

Let’s talk about serverless.

Serverless has problems, but really it’s pretty great. Lots of smart people think it’s the future.

We love how it lets us stop worrying about servers, eliminate idle server time, and scale magically.

Problem is, we’ve traded that operational simplicity for development complexity.

Building anything non-trivial takes time, care, and stacks of infrastructure. Architecture diagrams for the most mundane data pipelines.

Web development used to be pretty simple. Everything could run locally, and everything was defined in code.

It was so simple.

What if we could have the same experience with serverless? We should be able to have simplicity in development and operations, while remaining serverless.

Teal aims to do just that.

Right now, it’s still early days. But already Teal is showing promise for serverless data pipelines.

The best way to get invovled is to build something awesome with Teal, and tell us about it. Hit the Star on GitHub. Tell us how it helped you, or how it failed to meet your expectations.

There’s so much more to come.

If you'd like to be hear how Teal progresses, sign up for news (and nothing else):

Questions? Requests? Just saying hi?