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
  • Communication

  • Wiki
  • IRC channel: #ur on Freenode
  • Mailing list
  • Issue tracker (for bug reports and feature requests)
  • Public, read-only Mercurial repository
  • Research Papers

  • 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