The power of a type system, the expressiveness of functional programming, and the reliability of the highly concurrent, fault tolerant Erlang runtime, with a familiar and modern syntax.

import gleam/io pub fn main() { io.println("hello, friend!") }

Kindly supported by

Reliable and scalable

Running on the battle-tested Erlang virtual machine that powers planet-scale systems such as WhatsApp and Ericsson, Gleam is ready for workloads of any size.

Thanks to its multi-core actor based concurrency system that can run millions of concurrent green threads, fast immutable data structures, and a concurrent garbage collector that never stops the world, your service can scale and stay lightning fast with ease.

pub fn main() -> Nil { // Run loads of green threads, no problem list.range(0, 200_000) |> list.each(spawn_greeter) } fn spawn_greeter(i: Int) { process.spawn(fn() { let n = int.to_string(i) io.println("Hello from " <> n) }) }

Ready when you are

Gleam comes with compiler, build tool, formatter, editor integrations, and package manager all built in, so creating a Gleam project is just running gleam new

As part of the wider BEAM ecosystem, Gleam programs can use thousands of published packages, whether they are written in Gleam, Erlang, or Elixir.

➜ (main) gleam add gleam_json  Resolving versions Downloading packages  Downloaded 2 packages in 0.01s  Added gleam_json v0.5.0 ➜ (main) gleam test  Compiling thoas  Compiling gleam_json  Compiling app  Compiled in 1.67s  Running app_test.main . 1 tests, 0 failures

Here to help

No null values, no exceptions, clear error messages, and a practical type system. Whether you're writing new code or maintaining old code, Gleam is designed to make your job as fun and stress-free as possible.

error: Unknown record field ┌─ ./src/app.gleam:8:16 │ 8 │ user.alias │  ^^^^^^ Did you mean `name`? The value being accessed has this type: User It has these fields: .name 

Multilingual

Gleam makes it easy to use code written in other BEAM languages such as Erlang and Elixir, so there's a rich ecosystem of thousands of open source libraries for Gleam users to make use of.

Gleam can additionally compile to JavaScript, enabling you to use your code in the browser, or anywhere else JavaScript can run. It also generates TypeScript definitions, so you can interact with your Gleam code confidently, even from the outside.

@external(erlang, "Elixir.HPAX", "new") pub fn new(size: Int) -> Table pub fn register_event_handler() { let el = document.query_selector("a") element.add_event_listener(el, fn() { io.println("Clicked!") }) }

Friendly 💜

As a community, we want to be friendly too. People from around the world, of all backgrounds, genders, and experience levels are welcome and respected equally. See our community code of conduct for more.

Black lives matter. Trans rights are human rights. No nazi bullsh*t.

a soft wavey boundary between two sections of the website

Lovely people

If you enjoy Gleam consider becoming a sponsor (or tell your boss to)

  • Bartek Górny
  • Christopher Jung
  • Tom Schuster
  • James MacAulay
  • Edon Gashi
  • Adam Wyłuda
  • Valerio Viperino
  • yoshie
  • Dan
  • Michael Duffy
  • Hubert Małkowski
  • Benjamin Moss
  • Ben Martin
  • Cris Holm
  • Stephen Belanger
  • Corentin J.
  • Hammad Javed
  • Benjamin Kane
  • Jon Charter
  • Guillaume Heu
  • Isaac Harris-Holt
  • Matt Mullenweg
  • nunulk
  • Steinar Eliassen
  • Dan Strong
  • metame
  • Lexx
  • Jean-Luc Geering
  • Leon Qadirie
  • Nicklas Sindlev Andersen
  • syhner
  • Redmar Kerkhoff
  • Chris Donnelly
  • Sigma
  • Alexander Koutmos
  • Bruce Williams
  • tommaisey
  • Eileen Noonan
  • ollie
  • Shane Poppleton
  • Noah Betzen
  • Jørgen Andersen
  • Jen Stehlik
  • Jean Niklas L'orange
  • Hannes Schnaitter
  • Landon
  • Alex Manning
  • Matt Van Horn
  • Thomas Ernst
  • Endo Shogo
  • Russell Clarey
  • Ripta Pasay
  • Adam Johnston
  • Arthur Weagel
  • Andy Young
  • Mark Rudolph
  • Iain H
  • Strandinator
  • Jesse Cooke
  • Qdentity
  • Robert Malko
  • Mario Vellandi
  • Natanael Sirqueira
  • Danielle Maywood
  • Henry Warren
  • Jimpjorps™
  • Geir Arne Hjelle
  • Matthias Nüßler
  • Yamen Sader
  • Dan Dresselhaus
  • André Mazoni
  • Adi Iyengar
  • Éber Freitas Dias
  • Yasuo Higano
  • MzRyuKa
  • Viv Verner
  • Comamoca
  • Anthony Khong
  • David Pendray
  • Jonas E. P
  • Mike Roach
  • Oliver Tosky
  • Adam Shannon
  • Nikolai Steen Kjosnes
  • Cameron Presley
  • Zsombor Gasparin
  • Rodrigo Álvarez
  • Nick Chapman
  • Peter Rice
  • zenconomist
  • Chris King
  • Mark Markaryan
  • Quesma
  • Ben Marx
  • Kryštof Řezáč
  • Fede Esteban
  • Aleksei Gurianov
  • Fabrizio Damicelli
  • Alexandre Del Vecchio
  • Florian Kraft
  • Thomas Coopman
  • dennistruemper
  • inoas
  • Pedro Correa
  • Michael McClintock
  • Mark Holmes
  • Cole Lawrence
  • glippert
  • Henrik Tudborg
  • evanasse
  • Ethan Olpin
  • Hans Raaf
  • Sam Aaron
  • Christopher Dolan
  • KamilaP
  • Erik Terpstra
  • Paul Guse
  • Guillaume Hivert
  • Comet
  • Saša Jurić
  • Daniel S Jeremiah
  • Tom Hughes
  • Wilson Silva
  • Patrick Wheeler
  • Metin Emiroğlu
  • Ed Rosewright
  • Sammy Isseyegh
  • Jean-Marc QUERE
  • Vassiliy Kuzenkov
  • Hazel Bachrach
  • Ninaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  • upsidedowncake
  • Michael Mazurczak
  • Scott Wey
  • Pete Jodo
  • Mikael Karlsson
  • Richard Viney
  • bucsi
  • Matt Savoia
  • Volker Rabe
  • Tristan de Cacqueray
  • Andrea Bueide
  • Brad Mehder
  • Adam Daniels
  • Evan Johnson
  • Chew Choon Keat
  • Donnie Flood
  • ZWubs
  • Azure Flash
  • bus710
  • Rotabull
  • Jake Cleary
  • Aaron Gunderson
  • David Bernheisel
  • sambit
  • Evaldo Bratti
  • David Cornu
  • jooaf
  • Fernando Farias
  • TA
  • Anthony Maxwell
  • Bjarte Aarmo Lund
  • Matthew Whitworth
  • Jean-Adrien Ducastaing
  • Rico Leuthold
  • Joshua Steele
  • Max McDonnell
  • Chris Rybicki
  • Hannes Nevalainen
  • Giovanni Kock Bonetti
  • Sean Roberts
  • Brian Dawn
  • Renato Massaro
  • Brian Glusman
  • Manuel Rubio
  • Lukas Bjarre
  • Jojor
  • Kevin Schweikert
  • Charlie Duong
  • Austin Beau Bodzas
  • Grant Everett
  • Jan Skriver Sørensen
  • re.natillas
  • Kero van Gelder
  • Ian González
  • James Birtles
  • Shawn Drape
  • Adam Brodzinski
  • Christopher De Vries
  • Bruno Michel
  • Race Williams
  • Natalie Rose
  • Jachin Rupe
  • Joseph Lozano
  • Henning Dahlheim
  • Francis Hamel
  • Ameen Radwan
  • Guilherme de Maio
  • Matthew Jackson
  • Alexander Stensrud
  • Miao
  • John Strunk
  • Jerred Shepherd
  • optizio
  • CJ Salem
  • Stefan
  • ErikML
  • Thomas Crescenzi
  • Julian Hirn
  • Sebastian Porto
  • Gabriel Vincent
  • Brett Cannon
  • Leah Ulmschneider
  • G-J van Rooyen
  • Tim Brown
  • Jake Wood
  • Sgregory42
  • Carlos Saltos
  • Martin Poelstra
  • Ernesto Malave
  • ad-ops
  • Dylan Carlson
  • Coder
  • MoeDev
  • Christopher David Shirk
  • Thomas
  • Clifford Anderson
  • Rasmus
  • lidashuang
  • Kritsada Sunthornwutthikrai
  • Robert Attard
  • Robert Ellen
  • John Björk
  • Isaac
  • Felix
  • Emma
  • Danny Arnold
  • Johan Strand
  • simone
  • Ocean
  • Seve Salazar
  • Renovator
  • Eric Koslow
  • Philpax
  • Rupus Reinefjord
  • Oliver Medhurst
  • Christopher Keele
  • Constantin (Cleo) Winkler
  • Jan Pieper
  • Christopher Dieringer
  • Antharuu
  • Ed Hinrichsen
  • Raúl Chouza
  • Chris Ohk
  • Sam Zanca
  • Joseph Myers
  • Niket Shah
  • Jérôme Schaeffer
  • Marius Kalvø
  • Michael Jones
  • Barry Moore II
  • ggobbe
  • Rintaro Okamura
  • Filip Figiel
  • Alex Houseago
  • Bjoern Paschen
  • Carlo Munguia
  • Timo Sulg
  • Ivar Vong
  • Adrian Mouat
  • Weizheng Liu
  • Chad Selph
  • Reilly Tucker Siemens
  • Theo Harris
  • Olaf Sebelin
  • Jonas Hedman Engström
  • Scott Zhu Reeves
  • Scott Trinh
  • Gavin Panella
  • Joey Kilpatrick
  • jiangplus
  • bgw
  • Sławomir Ehlert
  • NicoVIII
  • Michal Timko
  • Lennon Day-Reynolds
  • Diemo Gebhardt
  • Arya Irani
  • Sakari Bergen
  • Dylan Anthony
  • Caleb
  • Sean Cribbs
  • Isaac McQueen
  • Anthony Scotti
  • Dan Gieschen Knutson
  • Leandro Ostera
  • Luna
  • METATEXX GmbH
  • Cam Ray
  • Joey Trapp
  • Ruslan Ustitc
  • erlend-axelsson
  • Nomio
  • Stefan Hagen
  • Chris Lloyd
  • Danny Martini
  • Brett Kolodny
  • Charlie Govea
  • Jon Lambert
  • Ahmad Alhashemi
  • Leonardo Donelli
  • Alembic
  • Luke Amdor
  • Stephane Rangaya
  • Fleey
  • Lee Jarvis
  • Nathaniel Knight
  • Jacob Lamb
  • eli
  • Graham Vasquez
  • Igor Montagner
  • Shritesh Bhattarai
  • Samu
  • Ajit Krishna
  • Martin Janiczek
  • Daniil Nevdah
  • Julian Schurhammer
  • Abel Jimenez
  • Andrew Varner
  • Ian M. Jones
  • Justin Lubin
  • Tudor Luca
  • Dave Lucia
  • Tomasz Kowal
  • Falk Pauser
  • Hayleigh Thompson
  • OldhamMade
  • Ben Myles
  • Krzysztof Gasienica-Bednarz
  • seanjensengrey
  • n8n - Workflow Automation
  • Pattadon Sa-ngasri
  • Martin Rechsteiner
  • Walton Hoops
  • Savva
  • Willyboar
  • Giacomo Cavalieri
  • frankwang
  • Tristan Sloughter
  • Kuma Taro
  • Damir Vandic
  • Mark Dodwell
  • Kemp Brinson
  • Chris Vincent
  • Matt Heise

You're still here?

Well, that's all this page has to say. Maybe you should go read the language tour!

Let's go!

Wanna keep in touch?

Subscribe to the Gleam newsletter

We send emails at most a few times a year, and we'll never share your email with anyone else.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.