Getting Started

This page provides links to information on Reflex documentation and related resources.

Reflex-FRP is a Haskell-based ecosystem for building user interfaces and web apps. Learn what makes Reflex unique on our home page.

Try Reflex-FRP

The Reflex ecosystem was created by developers, for developers, to provide a better way to build apps. No matter what you’re working on, it can benefit from Reflex. Here are a few ways to incorporate Reflex-FRP into your project:

Create a New Reflex App

Get started with Obelisk to build a full-stack web and mobile application powered by Reflex. Obelisk will set you up with access to Reflex libraries, developer tools, and everything you need to begin work on your client and server.

Obelisk has built-in support for deployments, server-side rendering, routing, and smooth developer workflow. It’s the best way to both develop and deploy your Reflex project for web or mobile, and getting started is easy.

Build a Frontend in Reflex

Get started with Reflex Platform, the most flexible way to build a Reflex frontend for your application.

Build user interfaces for applications on desktop, mobile, terminal, or the web with a curated set of packages and tools that have been tested across all platforms.

With support for multiple platforms, management of cross-platform dependencies, and interoperability with existing apps, Reflex Platform is the best choice for writing a new front end or finishing off a back end.

Get started quickly with Reflex Platform here.

Convert Parts of an Existing App to Reflex

Start using Reflex like you would any other Haskell library to convert portions of an existing application.

Download the Reflex library from Hackage and begin building interactive components in pure functional style with Cabal or Stack. This allows you to incrementally introduce FRP concepts into your codebase, and create Reflex widgets that integrate with existing Haskell code.

You can also download and use the Reflex VTY and Reflex DOM packages independently. Enjoy complete flexibility coupled with the full power of FRP. Integrate Reflex into your applications however you see fit.

Take FRP for a Test Drive

Use Reflex Platform to run Try Reflex if you're looking to get a casual and quick start, but not commit to an entire project.

This is an easy way to become familiar with FRP concepts without worrying about servers or an application. Fast, simple, get started here with Reflex Platform.

Learn Reflex-FRP

A functional understanding of Haskell is all that’s needed to begin learning Reflex-FRP. If you’d like more information on coding in Haskell, scroll down to ‘Haskell for Beginners’.

Reflex-FRP Basics

If FRP is a new paradigm for you, give yourself the time to learn its declarative style. Below are some great resources on the basics of Reflex. Use these to kickstart your learning, or just familiarise yourself with Reflex terminology before beginning our tutorial.

Reflex Extended Education

Check out this educational introduction to Reflex. The project consists of two talks and a 13-part guide on the basics of Reflex and the use cases where it makes the most significant impact.

If you’re more interested in writing a GUI in Haskell, read this beginner-friendly step by step tutorial for Reflex DOM. It explains in detail how to write GUI programs that run in a web browser or as a desktop application, in a functional way.

If you’d prefer a more advanced take on using Reflex DOM to build front-end web applications, check out this fantastic one. It has a higher-level feel, intending to get you up to speed on building apps quickly.

Haskell for Beginners

If you’re not yet familiar with Haskell, this series of online lessons from the University of Pennsylvania is approachable, is informative, and walks you through the basics of the language. With reading recommendations and ‘homework’ problems, this is an academic approach to learning Haskell.

Similarly, this 12-part series is a gentle introduction to Haskell aimed at those with an imperative background. No previous experience with functional programming or advanced mathematics is required. Sort through the well-named chapters if you’d like to brush up on a specific element of Haskell, or read all the way through for a comprehensive education.

The Tutorial

If you feel comfortable with your Haskell abilities and have done all the ‘reading up’ on FRP you care to, get started on our Reflex tutorial! The tutorial walks you through building a simple functional reactive calculator that can be used in a web browser, beginning with the download instructions for Nix and Obelisk.

Even if you don’t plan to build a calculator for your own project, this tutorial is helpful as it teaches the fundamentals of building a Reflex application, and the key concepts at play. A familiarity with this process will make developing other applications much easier. If you get stuck, try referencing our resources page, or #reflex-frp on IRC.