What's Trek?
Trek is a modern content management & back-office system for Ruby on Rails, built by Etamin Studio. It is designed to get you started fast with useful conventions, then let you customize the back-office to your project's needs.
Trek ships as a Rails engine (a gem plus an NPM package) that integrates into your own Rails application. Unlike hosted CMSs, your content lives in your database, your models stay plain Active Record, and everything remains customizable with regular Rails code.
What you get
- A complete admin panel — layout, navigation, search, pagination, light & dark themes, all built with ViewComponent, Stimulus and Turbo.
- Pages — hierarchical, translatable pages with version history, SEO metadata and stable, redirect-aware URL paths.
- Fragments — reusable chunks of content (a footer text, a hero tagline…) editable from the admin and usable anywhere in your views.
- A rich text editor — based on Tiptap, with image uploads (Uppy), link insertion and content stored as structured ProseMirror JSON.
- Authentication & authorization — Sorcery-based sign in, password resets, invitations, and ActionPolicy policies with
admin,editor,user,readerandguestroles. - Internationalization — content translations with Mobility, locale management with i18n-tasks, and optional automatic translation through DeepL.
- File uploads — Shrine-backed attachments with S3 or local storage, image processing via libvips, and blurhash placeholders.
- Generators — an installer that sets up everything above, and a scaffold generator that creates a full admin panel for any model in one command.
Philosophy
Trek follows the Rails way:
- Convention over configuration. The installer makes opinionated choices (PostgreSQL, Slim, esbuild, PostCSS, RSpec, Standard…) so you don't have to. Every choice can be revisited afterwards — the generated code lives in your application.
- Code generation over runtime magic. Models like
User,PageorFragmentare generated into your app with their concerns included, rather than hidden inside the engine. You can read them, edit them, and remove what you don't need. - Progressive customization. Start with the defaults, then override views, components, policies or styles as your project grows.
Requirements
| Dependency | Version |
|---|---|
| Ruby | 3.1+ |
| Rails | 7.0+ |
| PostgreSQL | 12+ |
| Node | 20+ |
| Yarn | 3.x |
| libvips | — |
Ready to try it? Head over to the quick start.