A curated list of awesome bookmarks, modules, tutorials, videos and other cool resources from the ProcessWire ecosystem. Maintained by Jonathan Lahijani.
- Awesome ProcessWire
- ProcessWire Website
- ProcessWire GitHub (dev branch)
- ProcessWire Forum
- Docs
- API Reference
- API Cheatsheet
- Blog
- ProcessWire Developer Directory: not maintained well / needs work
- ProcessWire Weekly
- GitHub
- Free and open-source (an unbelievable value!)
- Uses classic LAMP stack (it still rocks)
- Developed consistently since 2003 (and only getting better)
- Updated nearly every single Friday (see the dev branch)
- Fun (and perhaps addictive; seriously I've been using it for over 10 years straight)
- Simple (fields, templates and pages can pretty much do everything)
- Fast (built for speed)
- Secure (a 10 year old, neglected ProcessWire site won't get hacked)
- Developer-oriented (but easy for non-technical users to manage content)
- Unopinionated (do things your way)
- Completely markup agnostic on the frontend (for the OCD people out there)
- Well architected OOP and API (it's a work of art)
- Powerful hook system (modify core functionality with ease)
- Strong data relationships (relate pages with each other)
- Everything is a custom field (no 'metadata' like WordPress)
- Multi-lingual capability (a native feature and why so many non-Americans use it 😊)
- Friendly community (from all parts of the planet)
- Small but high-quality (less is more; for example, one great caching module instead of 347)
- The lead developer is a super human "10x" developer, excellent writer with Cal Ripken-like dedication (rare to find)
Additional articles:
- Why ProcessWire? (processwire.com)
- Why ProcessWire is the best CMS for your website
- ProcessWire - The WordPress alternative for developers
- Should I use ProcessWire for the Development of my CMS and Framework?
- Why We Build With Processwire
- $pages
- $page
- $config
- $files
- $sanitizer
- Selectors
- Hooks
- Markup Regions
- setting() Function
- datetime() Function
- WireHttp class
- inputfields.js
Here's a quick guide on how to stay up-to-date with ProcessWire, both in terms of code and community activity:
- Use the dev branch. Follow the commitment history.
- View the weekly update posted by Ryan in the forum "News and Announcements" section of the forum, generally on Fridays between 12:00pm to 3:00pm PST. Depending on what's happening in a particular week, the weekly update may include a dedicated blog post.
- View all latest activity in the forum.
- Visit ProcessWire Weekly on Saturday/Sunday for the latest post (or register for the newsletter to get it emailed to you 5-6 days after it is initially posted).
Pro modules are first party modules developed by Ryan Cramer, the lead developer of ProcessWire and help support continued development of the project. Unlike community modules, Pro modules are downloaded from forum threads after purchasing a license (they cannot be updated from GitHub or the ProcessWire Upgrade module). The links labeled "Forum Thread / Download" are the direct links to the forum threads which are viewable if you are (a) a forum member and (b) have an active module subscription:
- ProFields: Forum Thread / Download
- PageEditChildren (technically not a "field"; may become part of core)
- Forum Topic
- Forum Topic 2
- Forum Topic 3 (released)
- Custom
- Forum Topic and Blog Post
- Combo
- Repeater Matrix
- Forum Topic and Blog Post
- Forum Topic 2 and Blog Post 2
- Table
- Date Range
- Verified URL
- Textareas
- Multiplier
- AutoLinks
- Functional Fields
- Fieldset Group
- Text Blocks
- PageEditChildren (technically not a "field"; may become part of core)
- ProDevTools: Forum Thread / Download
- ProfilerPro
- UserActivity
- ProcessWire API Explorer
- WireSitemapXML
- Forum Topic and Blog Post
- WireRequestBlocker
- Forum Topic
- Forum Topic 2
- Forum Topic 3 (pre-announcement)
- FormAutosaver
- PageAutoSave
- ProCache: Forum Thread / Download
- FormBuilder: Forum Thread / Download
- ListerPro: Forum Thread / Download
- ProMailer: Forum Thread / Download
- LoginRegisterPro: Forum Thread / Download
- PagesVersionsPro: Forum Thread / Download
- ProDrafts: Forum Thread / Download
- Likes
These are a sampling of separate free, first-party modules (developed by Ryan Cramer, creator of ProcessWire).
- ProcessWire Upgrade
- Database Backups
- Hanna Code
- WireWordTools
- TextformatterVideoEmbed
- PageEditLockFields
Community modules are modules developed by third-party developers and part of the overall ProcessWire ecosystem.
- Primary Modules
- Tracy Debugger: It is strongly recommended you install and understand how to use this module.
- ProcessRedirects
- Secondary Modules
- API/JSON
- Fields
- Multi-lingual
- Ecommerce
- Admin Tools
- Admin Template Columns
- ProcessRenderFile: Create simple admin screens without having to create a dedicated process module
- SelectizeAll
- CustomInputfieldDependencies
- Database Migrations
When installing ProcessWire, you are only given the option to use the Blank Site Profile, which demonstrates a ProcessWire site in its purest, most minimal form. While this suits the needs for experienced ProcessWire developers looking for a clean starting point, it may be too minimal for those just starting out.
Consider using the Regular Site Profile to get a better idea of how to build a typical website.
If you are creating something more app-like with a strong emphasis on the admin interface, consider studying the Invoices Site Profile which demonstrates the use of Page Classes.
Like any long-running software, certain features have been deprecated and replaced with improved solutions over time. These include:
- $cache replaces MarkupCache
- $database replaces $db
- TinyMCE replaces CKEditor (blog post)
- PagesVersionsPro will replace (or merge with) ProDrafts (forum post)
- FieldsetGroup is now considered legacy (forum post)
The following modules are recommended alternatives for similar modules that are no longer maintained:
- RockShell or wire-cli replaces WireShell
- RockAdminTweaks replaces AdminOnSteriods
- ProcessRedirects replaces Jumplinks
- Ryan Cramer: Founder and lead ProcessWire developer; BDFL.
- Teppo Koivula: Author of ProcessWire Weekly newsletter and module developer.
- Robin Sallis: Author of dozens of useful ProcessWire modules.
- Adrian Jones: Author of several ProcessWire modules, including the strongly recommended TracyDebugger.
- Bernhard Baumrock: Author of several key ProcessWire modules, including RockMigrations, RockFrontend and RockShell.
Keep it simple! Use a CSS framework combined with Alpine.js and HTMX and you'll have 99% of what you need on the frontend. Embrace the concept of HTML Over The Wire, the modern monolith and consider ditching Node-based solutions for radical simplicity.
- UIkit: CSS framework with JavaScript components
- Bootstrap: CSS framework with JavaScript components
- Tailwind CSS: CSS utility framework (no JavaScript components); Flowbite is strongly recommended for the JavaScript components
- jQuery: JavaScript library (or just use vanilla JavaScript)
- Alpine.js: Lightweight JavaScript framework
- HTMX: HTML Over The Wire library
- Hyperscript: JavaScript library that embraces locality of behavior-style development (from the developer of HTMX)
- ProcessWire Asset Catalog
- WordPress vs. ProcessWire: 36 comparison videos