Build a WordPress site
in raw HTML.
<loupely-canvas>pro
Loupely Canvas is the free theme that renders your HTML full width and stays out of the way. Canvas Pro is the toolkit for building a whole site on it: a code editor with live preview, version history for everything WordPress forgets, a snippet library, page templates, named header and footer sets, conditional code injections, and custom post types with no PHP. Every feature is a working interactive demo, right here.
Requires the free Loupely Canvas theme · Annual license
// click pop out, then keep typing. the floating preview stays live.
// type in the editor. the preview updates live.
<canvas-pro>every feature, live
Eight features. Every one interactive.
Open any demo below. The editor opens first since it’s the core of everything else. Work through them in order or jump to whatever interests you.
<page-editor>the core of pro
The editor you actually want for raw HTML.
The Custom HTML block is a gray textarea with no line numbers, no color, and no way to see what your page looks like without opening a separate tab. You end up toggling back and forth, restoring the whole block if WordPress decides to rearrange it on save, and hunting for an unclosed tag by reading gray text in a box the height of a Post-it. The page editor is built for writing markup.
The block editor gives you a cramped 200px box for your entire page. Full screen expands the editor to fill the window, or hands it a monitor of its own. Esc returns.
WordPress makes you open Preview in a separate tab just to see your work. The live preview here opens in its own window, moves to a second monitor, and updates as you type.
The Custom HTML block shows your markup as one gray wall of text. Tags, attributes, strings, and values are colored as you write, so a long block stays readable at 3am.
WordPress can mangle or drop a block on save and you find out too late. The editor flags unclosed tags, duplicate IDs, and unescaped characters in the margin as you type, without blocking a save.
Ctrl+F can’t reach inside a textarea. Finding anything in a long block means copying it out to another editor. Search and replace runs right inside the box, with case, whole word, and regex.
A plain textarea gives you no line numbers and no way to see a tag’s match. Both are here, so you always know where you are and which tag you forgot to close.
Scrolling a long block to find one section gets old fast. An outline lists every heading and landmark; click to jump anywhere, hide it when you want the width back.
Forgetting a closing tag is the fastest way to break a block. Switch it on and typing an opening tag drops in its closing tag, cursor left between them.
Rotate to portrait
This demo needs a bit more vertical room. Turning your phone upright gives it space to breathe.
Canvas Pro
The page editor
Write plain HTML and it is the page, full width, nothing added, nothing stripped. Edit it below and watch the code and the live site move together. Then pop the preview into its own block.
Up next
The snippet library
Save a block once, drop it on any page, recolor it, restyle it. Edit the master and every copy follows.
The editor is the foundation. Here’s the rest of the kit.
Writing markup is only part of running a site on it. The features below handle the rest: reusing blocks across pages, recovering from bad edits, managing multiple layouts, running scripts safely, moving a whole configuration to a new install, and registering content types without touching PHP. Each one has an interactive demo below.
- Snippet library
- Version history
- Page templates
- Code injections
- Header and footer sets
- Import and export
- Custom post types
<snippet-library>
Write it once. Use it everywhere.
You rebuild the same hero, the same call-to-action band, the same footer nav on every project by pasting the same markup by hand. Then the client wants the button color changed and you’re hunting through 14 pages to fix it in 14 places. WordPress has no home for reusable raw HTML. Save it once as a named snippet, insert it by token anywhere a Canvas editor accepts input, and edit the master once when it needs to change.
- Organize snippets into categories and insert by name or token
- Works inside any page, header, footer, or per-page override box
- The token expands at render time, so editing the snippet updates every page that uses it
- Live preview per snippet so you see it before you paste it
Rotate to portrait
This demo needs a bit more vertical room. Turning your phone upright gives it space to breathe.
Canvas Pro
The snippet library
Save a block of markup once. Drop it onto any page, recolor it, restyle it. Edit the master and every copy follows. Build a page below.
Up next
Version history
Every change you make is a version. Compare any two side by side, in code or rendered, and roll back without losing a thing.
<version-history>
Version history for everything WordPress forgets.
WordPress saves revisions for posts and pages, but not for anything a Canvas site is actually built from: your global header, footer, head code, snippets, templates, sets, or injections. Canvas pages live in a single Custom HTML block, so they sit outside revision browsing too. Make one bad edit and the only fix is a full-site backup restore, which drags everything else back with it. Version history covers all of it. Every save is recorded. Compare 2 versions side by side, then restore one. Restores are non-destructive, so a restore can itself be undone.
- Every save recorded across pages, snippets, templates, sets, and injections
- Side-by-side compare with visual and code diff
- Non-destructive restores: the current state is saved to history first, so nothing is ever lost
- Name and pin versions worth keeping. Pinned versions are never auto-trimmed
Rotate to portrait
This demo needs a bit more vertical room. Turning your phone upright gives it space to breathe.
Canvas Pro
Version history
Every save is kept on the line. Browse the page as it was at any point, compare two saves side by side, and roll back to one without losing the rest. Auto-saves are tucked away until you want them.
Up next
Page templates
Start a page from a finished layout, then make it yours. Pick a template and the page assembles in front of you.
<page-templates>
Define the scaffold once. Apply it everywhere.
Copy and paste your way through 20 landing pages and the layout drifts, a CTA band falls out of sync on half of them, and a small structural change turns into an afternoon of hunting down every page you made. Define a scaffold once as a template. Create a new page from it with 1 button and the page opens in the Canvas editor, pre-filled and ready to edit. Or apply it across a batch of existing pages at once.
- Create a page from a template with 1 button, from the template itself or the list
- The new page opens in the Canvas editor, pre-filled and ready to edit
- Bulk apply a scaffold across many existing pages at once
It's your page now
A finished page, in plain HTML
The template is just markup now, the code on the left, the live page on the right. From here you can:
Rotate to portrait
This demo needs a bit more vertical room. Turning your phone upright gives it space to breathe.
Canvas Pro
Page templates
Start from a finished layout, not a blank page. Pick a template and watch it drop in fully built. Recolor it, swap it, then make it yours.
Up next
Code injections
Add CSS and JavaScript without touching theme files. Canvas Pro flags conflicts across your injections and logs JavaScript errors as they happen.
<injections>
Scripts and styles, without touching theme files.
Adding a third-party script, a pixel, a CSS override, or a seasonal banner usually means editing functions.php or header.php, where one bad bracket can take the entire site down and there’s no undo. Save named blocks of CSS, JavaScript, or HTML instead, each with its own toggle and its own load rules. Enable them everywhere, or only where a URL pattern or category matches. Schedule a start and end date so a banner turns itself off when the sale ends, no reminder required.
- CSS, JavaScript, head HTML, and body-end HTML, all in the same editor
- Load everywhere or only where a URL pattern or category matches
- Preview an injection on a real front-end page before saving
- Schedule a start and end so seasonal blocks turn themselves off
- Group related injections so they share one set of rules and enable/disable together
Rotate to portrait
This demo needs a bit more vertical room. Turning your phone upright gives it space to breathe.
Canvas Pro
Code injections
Add CSS and JavaScript without touching theme files. Toggle them on and the page changes in front of you. The conflict check catches when two bits of code want the same thing.
Up next
Header and footer sets
Build a header and footer once, save it as a set, and apply it across the site. Swap a set and every page that uses it updates at once.
<import-export>
Move your whole setup to a new site in one file.
Starting a new client site usually means rebuilding the same setup by hand: copy the header from somewhere, paste the footer, re-enter the snippets one by one, recreate the templates you’ve been refining for two years. WordPress won’t carry a configuration across installs. Export the whole thing as a single file and import it on the next install. Every item is a checkbox, so you pick exactly what to move and leave the rest alone. It doubles as a backup you can actually read.
- Exports header, footer, head and body code, snippets, templates, sets, injections, and CPT definitions
- Per-item checkbox on both export and import review, so nothing comes across you didn’t ask for
- Built for agencies moving a configuration between client installs
- Doubles as a configuration backup you can store anywhere
Rotate to portrait
This demo needs a bit more vertical room. Turning your phone upright gives it space to breathe.
Canvas Pro
Import and export
Pack your build into one file. Take everything, or pick exactly what travels, a single page, one snippet, even one injection out of many. Then carry it to a new site and choose what to bring in.
Up next
Custom post types
Register custom post types from the plugin, no PHP. Fields, archive and single templates in your own HTML, and they survive a theme switch.
<custom-post-types>
Custom post types. No PHP. No ACF. No plugin stack.
You know what a product card looks like in HTML. Writing one is 15 minutes. Connecting it to WordPress as a custom post type is a different afternoon: register_post_type in functions.php, which you’re not supposed to edit, or pile on CPT UI to register it and ACF to add fields, and then discover you still need PHP or the block editor to output anything on the front end. The whole chain breaks if you switch themes, because the registration lives in your old theme’s functions file. Canvas Pro registers the type, stores its definition in options (not the theme), handles the permalink flush on save, and outputs every entry via HTML templates you write yourself with {field:key} tokens. No PHP anywhere in that chain.
- Register types, fields, slugs, and archives entirely from the plugin UI
- Persists across theme switches. Pro handles the flush on save
- Field types: text, textarea, number, URL, date, select, checkboxes, image
- 3 HTML templates per type: archive card, single post, archive header. Fields output via {field:key} tokens
- Version history covers CPT definitions, so a bad template edit is never permanent
Rotate to portrait
This demo needs a bit more vertical room. Turning your phone upright gives it space to breathe.
Canvas Pro
Custom post types
Register a content type, give it fields, and write its archive, post card, and single in plain HTML with {field:key} tokens. No PHP, no ACF, no page builder. Every type can be designed completely differently, and the records live with Canvas Pro so they outlast any theme.
Canvas Pro
Every feature, yours.
The editor, snippets, version history, templates, injections, header and footer sets, import and export, and custom post types. One plugin. Every plan includes everything.
<pricing>
Priced plainly.
One plugin, everything included.
Every plan includes every feature. No gating by tier. The only difference is how many sites you can activate it on. Buy now at launch prices and keep that rate on renewal.
- Every Pro feature
- 1 site activation
- One year of updates and support
- Lapsed license degrades gracefully
- Every Pro feature
- Up to 5 site activations
- One year of updates and support
- Lapsed license degrades gracefully
- Every Pro feature
- Unlimited site activations
- One year of updates and support
- Lapsed license degrades gracefully
All plans renew annually at 30% off the full price, not the launch price. Renewal is optional. If your license lapses, existing Pro features keep working and updates and support pause until you renew.
<the-boundary>
The free theme is complete.
Pro never takes anything away.
Pro doesn’t gate anything that was in the free theme. Every feature in the Pro column is a new addition. If you never need Pro, the free theme still does everything it always did.
- Full width passthrough rendering
- Global header and footer
- Head and body code injection
- Per page header/footer override
- Find and replace inside HTML boxes
- One-click starter content
- GitHub-based auto-updates
Free forever. Download from GitHub.
- Full page editor with full screen and pop-out preview
- Version history with side-by-side compare and restore
- Snippet library
- Reusable page templates and bulk apply
- Multiple named header and footer sets
- Import and export full configuration
- Code injections, loaded everywhere or by rule
- Custom post types with HTML templates, no PHP
- Syntax coloring, error checking, outline, and more
Requires the free Loupely Canvas theme to be active.
<license>
No surprises.
Delivered outside WordPress.org
Pro is a paid plugin and lives outside the WordPress.org directory. It ships and updates through a managed licensing service. License keys and automatic updates are handled for you.
Lapsed licenses degrade gracefully
If your license lapses, existing Pro features keep working. Updates and support pause until you renew. Nothing gets hard-disabled. Your site won’t break because you forgot to renew.
Built on the free theme’s foundations
Pro reuses the theme’s own storage patterns and the find and replace tool. It detects the active theme and quietly does nothing if Canvas isn’t running. No conflicts with other themes or plugins.
</ready>
Ready to scale.
Launch pricing won’t last.
Prices go up in a few months. Buy now and keep this rate on renewal.
Requires free Loupely Canvas theme · Annual license · Lapsed licenses degrade gracefully