Documentation for the Inlay Content Management System

Inlay is a hosted content management system for static HTML pages. It creates a very simple editing interface directly in your browser, and does not require much (if any) configuration on your server to integrate. It is designed to be dropped into an existing Web site, turning that site from static HTML pages into a fully managed editable site.

To do this trick, it uses a tiny proxy application (which lives on your server) to translate requests made to your server into properly-formed requests to our server. This happens transparently, and your visitors won’t be able to tell that it’s happening. The final pages that get served from your site are composed of the static HTML from your server, mixed with the dynamic content from our server, and re-presented as static HTML to the browser.

Starting with Inlay

To begin, you must register your site on the Inlay system. Visit to sign up for the service and/or register your first site.

It is important to enter the precise URL of your server, including any subdirectories (if you want Inlay to only be responsible for part of your site). You may name the site anything you want, but that name is only used within the Inlay system to identify the site. It does not get added to your site content in any way.

Once you have added your site to your account, you can begin the process of setting up the server. This is explained in detail on the setup page.

Page Types

When you work with Inlay, you deal primarily with two types of pages: templates, and the virtual pages based on those templates.

To create a template, you start with a regular HTML5 page, and add a little bit of markup to it to indicate what areas are editable. Simply add an HTML5 data-attribute like this one to each editable element: data-inlay="body:markdown". This attribute is ignored by all browsers (by design) and does not affect the way that the page looks in a browser, should you visit it without running through Inlay. You don’t need a programming language or a special server running to design or edit your pages. Use your usual HTML workflow as always.

Any page that contains one or more of these marked elements will be considered a template by Inlay.

Virtual pages are created by the Inlay system by taking one of the templates from your site and presenting an editing interface where you can enter new content into the areas of the template that you marked as editable. If you were to look on your server for one of these pages, it would not be there alongside the template pages — it would appear to be missing — but if you visit that page’s URL in a browser, Inlay would show you the completed page. The page you are reading is an Inlay virtual page; all of this content is managed by the system. You can see the template HTML by adding ?raw=true to the URL for this page, like this.

Any content that you place within the marked elements on your template pages will be used as the placeholder text for each virtual page based on it. When you open a page for editing within Inlay, you will see that template text until you replace it. Once you do replace it, you can update that page as often as needed, and you can independently change the way your template page looks, and merge the new layout with the existing content.

When you import a new template, a new virtual page is created for that template at the template’s actual URL. When you visit the actual URL of a page that has been marked as a template, the system will redirect that page view to the Inlay server to look up its virtual content. If you choose to, you may delete this auto-generated page from within the Inlay editing interface, in which case the system will report a “page missing” 404 error when someone tries to visit it. You may do this if you created your template page for the sole purpose of creating content-filled virtual pages out of it, and the content of the template is purely placeholder Lorem Ipsum text. Note that if you subsequently re-import that template (to update to a new design) this virtual page will re-appear.

Finally, it's worth noting that you can mix editable and completely static pages within an Inlay site. There is no requirement for Inlay to process all of the pages within your site. You may also include PHP form handlers, or dynamic pages processed by a different system. If you don’t include any Inlay data-attributes within an html file, or if you don't save it as [file-name].html, Inlay will ignore it entirely.