Skip to content

Welcome to Phosis.

Phosis is designed and developed by Mattermind. You can find out more about its history and roadmap within Phosis itself, but if you need any assistance you can reach out to Mattermind support at support@mattermindworks.com. This email address distributes into our help desk, and we’ll generally respond within 2-3 business days.

Phosis is under extremely active development — but in sprints, not a constant development process. We’ll plan a release and sprint towards it, then let things sit for a while during which we use the system and evaluate user feedback.

We love to hear from Phosis’s users! Many features that we had on our roadmap have had their prioritization shifted based on hearing from users like you, and we always want to know what bugs you may uncover. Please familiarize yourself with Mattermind’s unsolicited ideas policy (linked in your Phosis dashboard) before submitting any ideas. Ultimately, while we call Phosis an “opinionated CMS” and we have design goals & operational approaches we’re incorporating, we want our users to love the system and really be able to flex its power. We look forward to hearing from you!

This documentation is also kept updated as we finalize features.

Features planned for v1.0 that we reference will be flagged with v1.0 tag.

If you’re a frontend user, you should probably start with the User Guide. Developers can check out the Tutorial: A Simple Site if they wish to get the very basics, or then dive in more deeply with the Developer’s Guide.

Quick Site Setup

Let’s Get Going

  1. In your domain’s DNS setting, point your domain(s) at the IP address of the Phosis Render complex: 75.2.109.5
  2. Once the domain has propagated, go into your Phosis site and click Site Settings from the top left dropdown.
  3. In the Domains section, click + Add Domain on the bottom right and add your domain.
  4. Phosis will confirm that the domain resolves and is mapped correctly. Note: even if this fails, for example if you do this step first, Phosis will let you add the domain.
  5. Click Save Domain on your new domain.
  6. Repeat for any additional domains.
    1. If you’re adding multiple domains, choose which one should be canonical.
    2. All other domains will redirect to this canonical domain, assuming you have mapped them all to Phosis’s IP address.
  7. Your site will need an SSL certificate installed in the Phosis hosting complex to enable HTTPS, which is highly recommended. At this time (August 2022), this is a process that requires a manual step by Mattermind support, so please reach out to us with your site domain and we will configure the option for you.
  8. At this point, you’re ready to start building your site!

Documentation & Phosis Changelog

  • 8/13/22 Documentation for r540 This documentation update releases some previously-undocumented features when creating object templates. Default mappings & aliases were added in early 2021, but never made it into the object documentation:
    • If you know your datasource’s structure in advance, you can specify default mappings for objects by including them within curly braces, like data-phosis-object-attributes="src{Image},alt{Title}"
    • Not everyone knows what things like href mean. If you’d like to make things less cryptic for end users using templates you create, you can specify friendly aliases for the attributes you’re binding. For example, data-phosis-object-attributes="href[Link]"

8/2/22 • Core v0.60/UI v0.40: Caching Alpha Release

This notable major update to Phosis Core, Render, and UI brings our very first alpha version of site caching to the system! 🥳

We’ve seen this caching speed up the page load times up to 10x or more when not using Random sorting in content blocks, so we’ve enabled caching for all sites in Phosis. You can always disable it if you wish in your Site Settings.

This is our first alpha release, so there are many more enhancements and efficiencies to this feature planned. That said, here’s how it currently works:

  • You can now enable or disable caching on your site in your Site Settings, as well as flush the cache.
  • When enabled, your site’s generated pages are cached in an ultra-high speed caching complex hosted on Amazon Web Service’s ElastiCache.
  • When a visitor hits a page on your site, Phosis checks to see if we have a cache of your page’s HTML.
    • If so, your visitor gets served the HTML from the cache.
    • If not:
      • Phosis Render generates the page with its page rendering engine as it previously has and serves it to the visitor. In other words, things just flow the way they had prior to caching being enabled.
      • On the backend, this generated HTML is then cached for the next visitor.
  • Only pages served with a GET request are cached, so you should never see form submissions cached. Also, because caching is only for generated pages, it should never effect form submissions via Javascript (which are both POST as well as not generated pages, unless you’re doing something manually to retrieve HTML in your Javascript.)
  • Any updates to your site currently flush your complete site cache, so you can edit pages, custom data, and more without concern that your users will have a stale version of your site. Phosis will happily auto-regenerate your pages and cache them on-demand as described above.
  • You can still use the Random sort option when databinding as before without every user receiving the same “random” result.
    • Phosis detects if any of your pages’ content blocks use a sorting setting of Random.
    • If so, Phosis carves out that part of the cached HTML and regenerates it on the fly, keeping it random for every visitor and every request.
    • Please note, though, that as of this time Random sorting does require database hits that will slow down your page. A very near future release also applies the same lightning-fast caching logic to these random sorting situations — stay tuned!
  • At some point in the future, we’ll be adding:v1.0
    • Auto-cache generation so that Phosis doesn’t wait for visitors to hit your site
    • Caching of blocks with Random sorting enabled to make things even faster
    • And, not clearing your site’s cache on every save action but rather targeting the pages/content that need to be cleared and clearing/rebuilding those.

As you can imagine, such a large new piece of functionality has been thoroughly tested by our team and has been in limited beta test for a few weeks on several of Phosis’s highest-traffic websites. Still, active software development can introduce issues, so if you see anything strange please don’t hesitate to let us know.

Thanks for using Phosis!


  • 8/1/22 UI r518 We’re back with another update to Phosis, this time around the Blocks Editor and continued improvements to Custom Data:

    • Blocks Editor
      • We revamped the block header UI to be cleaner and less distracting. All the functionality still remains, but it’s no longer expressed with large icons.
      • The block and container headers now stick to the top of the screen as you scroll, so you can easily see what exactly you’re editing when working on content or data mapping. This is especially helpful for blocks that have multiple containers.
      • You can now more easily click and drag blocks to reorder them. You can do this by using either the drag handle as it was before, but now you can also click and drag from any open space in the header.
      • In addition to more ways to click & drag the header, the placeholder where you drop them is now larger and easier to see.
      • Manually configuring data for object templates now uses auto-expanding text boxes, so you can see all the text you’ve entered even if it takes up multiple lines.
      • Various other tweak & improvements to streamline the UI.
    • Custom Data - We’re continuing to relentlessly refine custom data and its editors, as it’s going to be a key part of some upcoming functionality in the next month. This release also addresses:
      • You can now delete custom data columns 🎉 Please note that there is a pop-up that appears if Phosis believes a custom data column you’re trying to delete is in use somewhere on your site.
      • We’ve made some more subtle tweaks to the table user interface for custom data in an effort to further streamline the interface. Of note are some big changes to the calculation of column widths.
      • Fixes:
        • Some preview images stubbornly still not loading in the custom data table or the editor window
        • Preview images now properly update in the editor when you choose an image.
        • Previews on the table & editor now support PNG, GIF, and SVG files instead of only JPG.
  • 7/28/22 Core & UI r508 We’ve got another minor update to Phosis that should interest developers:

    • You now no longer have to put container HTML templates within a parent
      — the data-phosis-container can now be the first element in the HTML, just like objects. This should remove some of the
      soup that Phosis previously required you to create.
    • Likewise, your top-level containers can now also have siblings that are also top level.
    • Objects can now be inside of other data-phosis-objects in your object templates. This is handy for being able to hydrate nested DOM elements.
    • Unlike containers, which have their contents completely replaced during rendering, objects will happily serve up their containing HTML.
    • Fix to the “refresh template” button when entering data manually.
    • Fix for manually-configured databinding values that used Custom Data or a File resulting in the text “Custom Data: whatever” or “File: filename” after editing sometimes.

7/27/22 • Core & UI r421

We missed you! Phosis is back in active development. Recent updates to Phosis Render/Core & UI improve quality of life and added some new features pending documentation:

  • General changes:
    • Migrated to AWS and distributed Render nodes.
    • Tweaked Little Bot Peep behavior.
    • Added the ability to reload object templates when setting up data binding in containers, as well as a button to quickly go edit the object template itself. This allows you to make changes to an object template and update its binding settings without having to remove & re-add it to the container. Phosis UI will keep your existing mappings, if the data-phosis-object names match.
    • You can now filter Custom Data as a datasource based on a column value. More features around this coming soon.
    • You can now freeform your folder names in your site. While it remains faster to use /sitefiles as recommended, if a slug should fail to be found as a page or piece of content in Phosis, Phosis will attempt to see if it’s a folder you’ve set up.
    • Some modal window animations throughout Phosis have been sped up, so the things like the Custom Data editor should pop open slightly faster now
    • Minor tweak to versioning
  • When editing Custom Data:
    • You now have a Search box so you can quickly zero in on the row you wish to edit
    • You can click on a row to open the editor, and we’ve removed the Edit button to save space
    • Information density was increased by shrinking the size of preview images in rows, more aggressively trimming long text, and preventing word wrap
    • There are updates to some libraries that squash bugs around scrolling and the sticky column header
    • The Delete button is now simplified to a trash can, so you have more room to see your content before scrolling horizontally
  • Other bug fixes:
    • Resolved an issue that prevented proper HTTPS detection when behind a load balancer, as needed for distributed Render nodes.
    • Fixed one issue that could cause site duplication to fail.
    • Fixed several issues around spacing in custom data column names and filters.
    • Squashed a longstanding bug where the images in some Custom Data table view & editor wouldn’t appear. Please let us know if you come across this again.
    • Fixed a deep bug in Phosis Core that would edit the in-memory copy of the original template’s contents during hydration, causing unnecessary churn.
    • Should no longer lose the “default” flag on page templates when saving.
    • Resolved a longstanding bug around the “Save Changes” button that appears in the top menu when you scroll down being clickable even when not visible


3/13/21 • Core v0.59/UI v0.37: New Editor, Filtering, and More

This update to Phosis includes some quality of life changes as well as new features:

  • PhosisUI now uses the powerful Imperavi Article editor for WYSIWYG content. This long-planned migration is important to future functionality of PhosisUI as well as resolving some existing bugs:
    • You can now replace Phosis images in your content by clicking the image icon in the pop-up menu.
    • Styles are now not inherited from the parent PhosisUI page, so you have a cleaner picture of what’s going on.
    • Word/Google Docs/etc. formatting is now completely stripped when you copy & paste content into the editor.
    • You no longer need to exit HTML mode for your changes to save.
    • And more.
    • NOTE: Alignment options are ONLY applicable to text blocks.
      • These rely upon CSS classes in your site’s CSS named align-left|center|right or text-left|center|right. If you don’t have these CSS classes, and you’re not using Bootstrap or similar, you should add them to your CSS. (If you’re adding these alignment classes to your site’s CSS, we recommend using the align- prefix.)
      • This is a temporary workaround until a future update that will allow you to customize CSS classes applied as a part of your site’s editor, which will also enable alignment options for non-text blocks.
      • In the meantime, web developers can manually align images by editing the markup for a specific block within the editor and applying inline style attributes.
  • Filtering by URL parameters is now live! This feature lets your page optionally filter content by a list of tags or a category in the URL rather than requiring it to be hardcoded in Options & Filters.
    • When enabled, the URL formats are:
      • Tags: <yoursite>/<slug>/tagged/[comma-delimted list of tags]
      • Category: <yoursite>/<slug>/category/[category] (only one category)
      • For example, demosite.com/articles/tagged/news-items,updates
    • The tags/categories’ slugs are what should be used in these URLs. So, if you’re creating a link to a tag/category page, remember to databind on this field and use prefix text format attributes to automatically generate your URLs.
      • For example, if your article index page has the slug /articles, you can specify a link to tag filtering by setting up the following format:
      • <a href="#" data-phosis-object="Tag Link" data-phosis-object-attributes="href,text" data-phosis-object-href-format="/articles/tagged/{}"></a>
  • You can now customize the display format of your site’s title in your Site Settings.
  • We’ve re-enabled a feature that existed in earlier versions of Phosis that lets you specify multiple Page Templates for a site. This allows you to have completely different layouts in your various site Pages and Article Styles used for articles, including custom layout-level content blocks.
    • Choose a Page Layout from the dropdown when creating or editing Pages or Article Styles.
    • You can set a Page Layout as default in Templates & Containers. (We’ve automatically set all of your existing, singular Page Layouts as defaults.)
  • You can now click on the dotted borders in your site tree to collapse sections. This is stored in a cookie, so retaining what you have collapsed/open on your site is local to your computer.
  • Fixed an issue where selecting a file wouldn’t reenable the scrollbar on the content editor.
  • We’re continuing to standardize the naming of “objects” and “object templates” instead of “blocks” in this documentation and Phosis itself. Your previous object templates should continue to work without modification, but we recommend using the new attribute names moving forward.

  • 2/17/21 - Phosis now has robots.txt and sitemaps. Phosis Render will auto-generate a sitemap.xml for your site based on what content has its checkboxes enabled when editing. You can configure priority & update frequency on a per-content basis, as well. In addition, PhosisUI now lets you control robots.txt for your site via Site Settings. There’s more information in the latest news section of your PhosisUI dashboard.
  • 2/8/21 NEW VERSIONING: Core v0.55 • UI v0.35 — It’s been a long time since we’ve checked in, and active development on Phosis has kicked back into a higher gear. This update adds some new items and fixes. You can see the complete changelog linked in the footer of PhosisUI, but the documentation updates include:
    • We realized we were running out of version numbers prior to 1.0! We’ve now split out the version numbers for Phosis Core (which powers Render and backend logic) from PhosisUI (the online tool you use to manage your site.) We believe these version numbers will more clearly show the Phosis platform’s approach to v1.0.
    • There are two new page-level block properties available: PageCanonical and PageImage. Read more about them in Developer Guide > Page Attributes.
    • You can also use PageTitle in Open Graph tags as well. Phosis Render will automatically detect whether it’s hydrating the <title> element or a <meta> tag and populate either the text node or the content attribute, respectively.
    • You can also specify a site-level default PageImage in Site Settings.
    • You can now include a line break in plain text fields in Custom Data. These will be replaced with <br> line breaks during render.
    • We’ve deployed a new version of Mattermind bot/spam detection algorithm, now called Little Bot Peep™, and you can fine-tune how it works on your site.
    • And, as always, there are more updates that you can see in the Latest News & Releases section of your PhosisUI Dashboard. Check it out!
  • 9/29/20 v0.85b — This quality of life update addresses some SEO- and technical-related features:
    • Sitemaps & robots.txt - While sitemap auto-generation and robots configuration is coming, we’ve added the ability to upload static files and serve them as if they were in the root of your site (even though they’re in the cloud.) To use this feature, just upload files specifically named sitemap.xml and robots.txt, respectively, to any location in your site’s Files & Media section. Place whatever content you’d like within them. These will then be proxied to /sitemap.xml and /robots.txt on your site.
    • 302 vs. 301 Redirects - Phosis Render now uses 301 (Permanent) redirects when redirecting to your canonical domain or HTTPS version. NOTE: if you should happen to make a mistake in your site configuration, you will have to clear your browser history as browsers aggressively cache 301 redirects.
    • 404 & 500 Codes - Phosis Render now returns 404 or 500 status codes, respectively, if those pages are the result of a request. (Don’t forget, you can always customize these pages in your site by creating a page with the slugs “404” or “500” as noted in the documentation.)
  • 5/30/20 v0.85 — This major update pushes Phosis closer to v1.0:
    • Tags, Categories, and Authors
      • Tags in Phosis work just like you’re used to in other platforms. Tag articles with one or more tags, and after you save, tags are autocompleted for future articles. Articles can have as many tags as you’d like, but only be within one Category. You’ll also find databinding and filtering options for tags & categories, and know that a lot more powerful functionality around these features is coming!
      • Use the new Authors configuration page to set up Authors for your site’s content.
        • This optional feature allows you to have author names, email addresses, biographies, and profile images that you can use in your templates. Everything except their name is optional, depending on how you’d like to use the information when databinding your templates.
        • Authors in Phosis are separate and distinct from actual user logins; think of them as a display component. You can also set up non-user Authors if you have a single webmaster controlling your site’s content.
        • When you optionally map an Author to a Phosis user in your site, the content editor automatically defaults to them as the author of content when creating a new article.
    • Datasource Mapping & Filters
      • When configuring template datasources, you can use the new Self Tags (tags for the Self piece of content), Tags, Categories, or Authors datasources for mapping to content blocks. In addition, Self, Pages, and Articles have various new databindable fields around tags, categories, and authors.
      • Also, the first filters are here: you can now filter Articles & Pages by tags or category. More filters coming soon!
    • Articles and Pages can be saved as a draft, previewed, and scheduled for advance posting. Scheduled article dates & times are displayed in your local timezone after you choose your timezone from the prompt.
    • We knew that some of our users (and our own sites!) had a need for databindable article fields beyond title, lede, summary, and etc. To handle this, you can now define Custom Fields when editing Article Styles. This process works exactly the same as Custom Data.
  • 5/4/20 v0.82 — Some major new features were added despite the small version bump:
    • You can now add content blocks directly to your page template for reuse across your entire site (if you have your Page Template set to use the new data-phosis-blocks-container attribute — note the breaking change with how you configure your main content container!)
    • Block configuration received a massive upgrade with formatting functions such as date/time and basic text formatting using the data-phosis-block-format/data-phosis-block-[attribute]-format attributes.
    • You can now have multiple dynamic menus (such as a main menu and a copy in your footer)
    • And more!
  • 4/30/20 v0.81 — This was primarily a bugfix and quality-of-life release, but a handful of new and useful features were added. Most notable, custom data can now be converted to useful and powerful new “Settings” objects.
  • 4/28/20 v0.8 — Phosis’ built-in form functionality is now in beta! Just like other features, these are built in plain HTML by frontend developers and tagged with special data-* attributes, along with some unique configuration options on the backend. Our initial documentation draft for Phosis Forms is now live.
  • 4/15/20 v0.76 — A major documentation update adds a complete User Guide for the frontend of Phosis, the Custom Data documentation, and details on other features.
  • 3/24/20 v0.7 — The long-awaited Custom Data feature is here, as are dynamically-generated site menus. Documentation on Custom Data will be coming in a future revision, but we’ve updated this document with information on dynamic menus.
  • 3/3/20 v0.6 — Information on DNS settings and managing domains for Phosis sites and custom 404/500 pages.
  • 2/12/20 v0.6 — Some minor details on the Block CSS classes / Parent CSS classes / Container CSS classes options in the Content Blocks Editor and how they relate to the DOM’s structure.
  • 12/29/19 v0.6 — Initial version of documentation.