Skip to content
pagecraft

Installation

Audience: Editor and Site Builder.

Requirements

  • ExpressionEngine 7.x (tested through 7.5)
  • PHP 8.1 or newer
  • Write access to your EE site's themes/user/ directory

Steps

  1. Clone or download this repository into <EE_ROOT>/system/user/addons/page_craft/. The repo root is the addon root — there's no nested system/ tree to extract.
  2. Copy the bundled theme tree into your EE installation:
cp -R system/user/addons/page_craft/themes/user/pagecraft/* themes/user/pagecraft/

That copy includes the ContentBox 5.x core, ContentBuilder, the front-end runtime, every stock asset directory (fonts, styles, scripts, modules, images, ionicons, frameworks, formfiles, placeholders, videos), and the stock block / template packs (Simple Start, Quick Start, Animated, plus PageCraft's custom packs). No separate ContentBox download is required.

  1. In the EE control panel, go to Add-Ons and click Install on PageCraft.
  2. Add a PageCraft Builder field to any channel. Render it in your front-end template with the field tag (see Template Tags).

File permissions

PageCraft writes to themes/user/pagecraft/pagecraft-sections/pagecraft-sections.js whenever sections change, so PHP needs write access there. On managed hosts (Cloudways, etc.) this often fails on first deploy because uploaded files end up owned by the SFTP user, not the PHP user.

If the canvas section picker is missing categories that show up under PageCraft → Sections in CP, that's almost always a write-permission issue. Two fixes:

  • Use your host's "Reset File / Folder Permissions" panel to chown the app tree back to the PHP user.
  • Then click Regenerate File on PageCraft → Sections in CP. The button reports the exact failure inline if anything else is wrong.

Recommended EE settings

PageCraft's editor runs in a canvas that stays open while an editor builds a page — often for many minutes at a time on a single publish screen. EE's CSRF/secure-form token is tied to the CP session, so a session that times out (or whose identity shifts) while the publish form sits open causes the next Save to fail with "This form has expired. Please refresh and try again."

PageCraft does not change your security settings for you — that's your site's call. But for the smoothest editing experience we recommend, under Settings → Security & Privacy → Session options:

  • Session type → "Cookies and session ID" (cp_session_type = cs). A cookie-only session (c) has no database session-ID fallback, so it's the most prone to expiring under a long-open publish form. "Cookies and session ID" keeps the session — and its form token — valid far longer.
  • "Require IP address for posting" → No (only if expired-form errors persist after the change above). If editors are behind a VPN, mobile network, or a proxy that rotates IPs, a mid-edit IP change is treated as a different client and the POST is rejected. CSRF tokens still protect the form when this is off.

These are EE-wide settings, not PageCraft settings, so they affect the whole control panel. If you can't loosen them site-wide, the alternative is to save more frequently while building.

Verifying the install

After CP says installed, visit Add-Ons → PageCraft. You should see six sidebar entries: Global Settings, Editor Permissions, Advanced Settings, Block Library, Sections, Categories, Documentation. The Sections list should already contain seven Grid Builder rows and one PageCraft "Dynamic Content" row — those seed automatically on install.