Skip to content

Journals

The blog. Articles with categories and tags, written in the admin and shown on the storefront.

How this page was verified

Read on 2026-09-15 from the backend journals module, the storefront /journals and the admin /admin/journals.

The model

Tables: journals, journal_categories, journal_tags, journal_products (a journal can link to products), plus image/thumbnail/author-photo models.

Backend

journals module. CMS resolvers: journal (list/get/delete), journal-categories (CRUD), journal-tags (CRUD). Create/update of a journal is REST (journals controller, POST / PUT :id) because it carries images. Storefront resolvers (front*): frontJournals, frontJournal, frontHighlightedJournals, frontFeaturedJournals, frontJournalCategories, frontJournalRecommendations.

Storefront

/journals listing and /journals/[slug] article. Highlighted and featured journals also appear on the home page.

Admin

/admin/journals with add, edit, preview, plus /admin/journal-categories and /admin/journal-tags. The journal form (src/modules/journals/journal-form.tsx) is the only place TinyMCE is used (NEXT_PUBLIC_TINY_EDITOR_API_KEY).

Gotchas

  • Journal create/update is REST, like products and vouchers — not a GraphQL mutation.
  • TinyMCE needs its key. NEXT_PUBLIC_TINY_EDITOR_API_KEY is in the admin .env but missing from env.example — set it or the editor degrades.