Serverless Functions, Made Simple.

OpenFaaS® makes it simple to deploy both functions and existing code to Kubernetes

Run anywhere


Avoid lock-in through the use of Docker. Run on any public or private cloud.

Any code

Any code

Build both microservices & functions in any language. Legacy code and binaries.

Any scale

Any scale

Auto-scale for demand or to zero when idle.

Order OpenFaaS SWAG today!

Order your very own OpenFaaS SWAG with worldwide shipping.
Buy a t-shirt, hoodie, or a set of mugs for the office today.


Run your code anywhere with the same unified experience.

Bring your laptop, your own on-prem hardware or create a cluster in the cloud. Let Kubernetes do the heavy lifting enabling you to build a scalable, fault-tolerant event-driven serverless platform for your applications.

You can try out OpenFaaS in 60 seconds or write and deploy your first Python function in around 10-15 minutes. From there you can take the OpenFaaS workshop, a series of tried-and-tested self-paced labs which teach you everything you need to know about functions — and more.

Function Store

Functions Store

An ecosystem for sharing, reusing and collaborating on functions

Reduce Boilerplating

Templating system

Reduce boilerplate code, share code in the templates store

Functions and Microservices

Functions or Microservices

Deploy existing microservices using Express.js, Sinatra, ASP.NET Core or simplify with functions.

Simple, powerful functions from anywhere.

Whether you want to use Go, Java, Python, C#, Ruby - Express.js, Django, ASP.NET Core, even binaries like ffmpeg, ImageMagick, or anything else. We have you covered with the template store.

$ faas-cli new --lang java11 java-fn
package com.openfaas.function;

import com.openfaas.model.IHandler;
import com.openfaas.model.IResponse;
import com.openfaas.model.IRequest;
import com.openfaas.model.Response;

public class Handler implements com.openfaas.model.IHandler {

    public IResponse Handle(IRequest req) {
        Response res = new Response();
	    res.setBody("Hello, world!");

	    return res;
$ faas-cli template store pull golang-http
$ faas-cli new --lang golang-http golang-http-fn
package function

import (


// Handle a function invocation
func Handle(req handler.Request) (handler.Response, error) {
	var err error

	message := fmt.Sprintf("Hello world, input was: %s", string(req.Body))

	return handler.Response{
		Body:       []byte(message),
		StatusCode: http.StatusOK,
	}, err
$ faas-cli new --lang python3 python3-fn
def handle(req):
    """handle a request to the function
        req (str): request body

    return req
$ faas-cli new --lang node12 javascript-fn
"use strict"

module.exports = async (event, context) => {
  const result =             {
    status: "Received input: " + JSON.stringify(event.body)

  return context
$ faas-cli template store pull bash-streaming
$ faas-cli new --lang bash-streaming bash-fn
for i in $(seq 1 100)
    sleep 0.001
    echo "Hello" $i
$ faas-cli new --lang dockerfile ruby
FROM ruby:2.7-alpine3.11

WORKDIR /home/app
COPY    .   .

RUN bundle install

CMD ["ruby", "main.rb"]

#TeamServerless - Our community and contributors of 250+

OpenFaaS Sponsors



Start your Serverless journey

Start building functions from anywhere on Docker or Kubernetes in 60 seconds.


Introducing OpenFaaS Cloud

A managed, multi-user distribution of OpenFaaS with a personalised dashboard, powered by Git.


Alex Ellis is the creator and founder of OpenFaaS Ltd and a CNCF Ambassador

Partner with OpenFaaS Ltd for consulting, professional services, and training on: Serverless, Kubernetes and Cloud Native.