How to Get Started Learning Ur/Web

One suggestion: start with the main demo linked below, jumping to the official tutorial as you feel more curious about details of the language. Much of the reference manual is oriented toward readers with training in formal semantics, so most readers will never want to read it cover-to-cover; but the sections on command-line arguments and so forth are worth skimming for everyone.

Official Documentation

  • Official tutorial
  • Reference manual
  • FAQ
  • Online Demos

  • Main demo, tutorial style with source code
  • Additional demos
  • TodoMVC implementation
  • Demos of an experimental checker for information flow and access control
  • Comparison with OPA
  • Unofficial Resources

  • Gian Perrone's Ur/Web Tutorial
  • Aistis Raulinaitis's Ur/Web Tutorial (video)
  • Simon Van Casteren's blog post on a music-school application
  • Communication

  • GitHub project, including source code
  • IRC channel: #ur on Freenode
  • Mailing list
  • Issue tracker (for bug reports and feature requests)
  • Deprecated Communication Resources

    The project recently adopted the standard GitHub process. There are a few obsolete resources left over that will be decommissioned soon:

  • Wiki
  • Mantis issue tracker
  • Public, read-only Mercurial repository
  • Research Papers

  • A Program Optimization for Automatic Database Result Caching, POPL'17
  • An Optimizing Compiler for a Purely Functional Web-Application Language, ICFP'15
  • Ur/Web: A Simple Model for Programming the Web, POPL'15
  • Static Checking of Dynamically-Varying Security Policies in Database-Backed Applications, OSDI'10
  • Ur: Statically-Typed Metaprogramming with Type-Level Record Computation, PLDI'10
  • Slides from Talks

  • "Ur/Web, a Domain-Specific Functional Programming Language for Modern Web Applications," MIT, December 2010: OpenOffice, PDF
  • "Static Checking of Dynamically-Varying Security Policies in Database-Backed Applications," OSDI'10, October 2010: OpenOffice, PDF
  • "Ur/Web: A Statically-Typed Language for Building Web Applications from Components," Emerging Languages Camp 2010, July 2010: OpenOffice, PDF
  • "Ur: Statically-Typed Metaprogramming with Type-Level Record Computation," PLDI'10, June 2010: OpenOffice, PDF
  • "Safe Database Abstractions with Type-Level Record Computation," RADICAL'10, May 2010: OpenOffice, PDF
  • "A Sane Approach to Modern Web Application Development," Boston Lisp, February 2010: OpenOffice, PDF