MashMaker is a web-based tool that makes it easy for normal users to create mashups from live data on the internet. Users can query, combine, and explore data, using an interface inspired by spreadsheets and web browsers. Like a spreadsheet, MashMaker mixes program and data and allows ad-hoc unstructured editing of programs. Like a web browser, MashMaker allows users to find the information they are interested in by browsing, rather than writing code, and allows users to bookmark interesting things they find, forming new widgets — reusable mashup fragments. MashMaker is also a modern functional programming language with non-side effecting expressions, higher order functions, and lazy evaluation. We argue that a functional language provides an excellent model to allow users to easily create mashups from web data. In order to cope with this unusual domain, MashMaker contains a number of deviations from normal functional programming languages. Data is live, programs are mixed with data, map and fold operations are described using direct manipulation of data, data is structured like a file-system, and it is possible to write a program largely by browsing around, without having to type or decide in advance what one wants to do