This project explores a new way to build small- to medium-scale websites using a conceptual model and programming language that complement HTML and CSS.
Problem: Creating interesting sites is hard or expensive. Standard HTML and CSS let you define individual pages, but it’s hard to efficiently create a bunch of pages and organize them into a coherent site.
Origami is designed for you: someone who wants to make a site for yourself or a small organization, someone who’s fine editing HTML and CSS, someone who’s not a professional programmer — or is, but wants to build sites more quickly.
The core idea is to describe the site you want at a high level as concisely as possible. If you can sketch your site like this:
then you can turn that into a small Origami program that orchestrates the creation of your site:
# Stylesheets, etc.
# Create a home page listing all the products
index.html = index.ori(products.yaml)
# Create a page for each product
products = @map(products.yaml, products.ori)
A high-level site definition is enough to let you immediately view and iterate on your site without complex build tools. When you’re ready to publish, Origami can turn your site into a collection of plain files you can deploy wherever you want, often for free.
View some example sites
Read the Hello World introduction
Make a small site in the tutorial
Web Origami takes its name from the traditional paper folding art of origami, in which you can transform a flat square of paper into an artwork.
The steps may be simple but the end result can be complex and beautiful. In the same way, Origami lets you transform your content into something to share.
Parts of the project
The project includes several separate but interoperable tools and ideas:
- The Origami language lets you concisely define a website or other structured using formulas similar to those in a spreadsheet.
- The built-in functions let you perform a number of common website development tasks in the Origami language.
- The conceptual pattern at the foundation of it all lets you represent a wide variety of data types as trees that can be easily traversed and transformed. There’s no code at this level; you can use the ideas in any project.
If you’re interested in trying Origami in a friendly setting, you can participate in a guided usability test and share your feedback. Or join a pair programming session to use these new techniques and tools to collaboratively implement a site. Contact Jan Miksovsky.