What is Compose?


You can think of Compose as a new kind of spreadsheet, but where each cell packs a lot more punch. (They also aren't necessarily in a grid.)

Each cell is powered by the Haskell programming language. And this includes packages published on Hackage. Simply refer to definitions by their fully-scoped names and Compose will make sure that they're imported properly for your cells to just work.

Every cell you create in Compose is similarly re-usable anywhere and by anyone. You can imagine Compose as global namespace, where every cell is its own package.

We want Compose to feel like a mix between Twitter and a computational notebook like Observable. You will "tweet" out little snipets of code, see the output, and then continue to build your program by "replying" or "retweeting". We're hopeful that this composable approach will make it possible to "tweet" out these whole programs from our phones in the not-too-distant future!

Reflex, the pure Functional Reactive Programming framework, is first-class citizen in Compose for building user interfaces. We will also be adding some magical*,* distributed reactive primitives which will allow you to lift and fold local events to remote and persistent behaviors. In other words we're extending FRP in space (multiplayer) and time (persistence).

This means that you'll be able to build an entire social app (think: Twitter, Facebook, Instagram, Messenger, Whatsapp, Medium, Slack, Discord, Signal, etc) inside Compose! Ever had an idea for an app for your friends or community? Compose can help you make it real.