A first-class content editor

Every web application eventually needs a way to manage content, and building a good content editor from scratch is one of those tasks that looks simple until you're knee-deep in it. Graymatter ships with a fully configured rich text editing system so you can skip that phase entirely and focus on what makes your application unique.
The editor is built on TipTap, a professional-grade framework based on ProseMirror. Out of the box, it supports bold, italic, underline, strikethrough, inline code, six heading levels, bullet and numbered lists, blockquotes, and code blocks. Text alignment, link insertion, and keyboard shortcuts are all wired up and working. You're staring with a finished tool.
Image handling is fully integrated. Users can upload images directly into their content, resize them by dragging corner handles, align them within the text flow, and link them. Uploads are validated, stored, and served through Laravel's filesystem. An automated cleanup task runs on a schedule to remove orphaned images that are no longer referenced anywhere, so your storage stays tidy without manual intervention.
The AJAX save system is built in and ready to use. Content saves happen in the background without page reloads, and a persistent indicator keeps users informed of their save state. It handles edge cases around network failures, features unsaved change detection and keyboard shortcut integration.
Content is sanitized automatically on save. The system strips event handlers, dangerous URLs, and potentially harmful markup while preserving all legitimate formatting. Your application's content pipeline is secure by default, not as an afterthought.
All of this extends naturally to any new content type you add. Graymatter's model system lets you attach the same editing capabilities to any resource. If your application needs articles, documentation pages, product descriptions, or case studies, the rich text infrastructure is already in place. Add your model, point it at the editor component, and you have a fully functional content management workflow without writing a line of editor code.
Projects - the default content type - demonstrate the full pattern: creation, editing, duplication, search, filtering, and creator attribution. Use them as-is, rename them to fit your domain, or study them as a reference implementation for building your own content models. The heavy lifting is done. The customization is yours.