Content workspace

One content table. Every type your brand publishes. SEO that doesn't drift.

m18t's content workspace covers blog posts, news posts, web pages, help articles, social posts, and any custom content type your brand needs — in one rich-text editor, one status workflow, one SEO model. Switch brands and the whole table re-shards. No copy-pasting.

Content list view
The problem this solves

Five tools per brand, three meanings of "in progress," zero consistency.

Most product teams maintain a separate workflow per content type. Blog posts in WordPress. Social posts in Buffer. Help articles in Intercom or Notion. Web copy in a Figma file. Each has its own table, its own status meanings, its own SEO rules, its own publishing flow.

The result: the same brand publishes "My Brand | Home" on one page and "Home - My Brand" on another, because three people on three tools made three different micro-decisions. The SEO defaults drift. The status vocabulary diverges. The content calendar lives in yet another tool. Multi-brand operators multiply the chaos by every brand they run.

m18t collapses this into a single content table with type-extensible defaults per brand. One editor. One status set. One canonical SEO model. Per-brand consistency, no copy-paste discipline required.

How it works

Five steps from idea to live.

  1. 1

    Define your content types per brand

    Out of the box: blog-post, news-post, web-page, help-article, social-post, video-post. Need a case-study for one brand and a recipe for another? Register them in Studio config. Each type gets its own SEO defaults — URL prefix, schema.org type, meta-title template, fallback OG image, supported locales.

  2. 2

    Draft in the unified editor

    A rich-text editor with full table, list, code-block, blockquote, task-list, image, and link support. Same editor for every content type. Drag in assets from your brand's media library; they get attached as either cover or inline.

  3. 3

    Configure SEO once per (brand × type), override per piece if needed

    Your per-brand × per-type SEO defaults flow into every piece you create of that type. Per-piece overrides are available but rare — that's the point. Consistency is opinionated; deviation is deliberate.

  4. 4

    Publish across channels

    One piece publishes to: your CMS (Strapi today), Facebook, Instagram, your blog target, or any custom channel you've registered. Per-channel state is tracked on the content row. Sync log captures every push.

  5. 5

    Track status with vocabulary that fits

    The same ten-status set across the platform, but each shows under the right label for each content type. "Production" reads as "Published" for a blog post, "Indexed" for a sitemap entry, "Live" for a web page. Same status, native vocabulary.

What you get

The capabilities, listed honestly.

One rich-text editor for every content type

Tables, code blocks, task lists, blockquotes, images, links, hard breaks — all supported. No per-type editor mismatch.

User-defined custom content types per brand

Ship case-study, release-note, recipe, interview, or whatever your brand publishes. Each gets its own SEO defaults.

SEO indices that prevent drift

Path prefix, schema.org type, robots, meta-title template, OG fallback — set once per (brand, type), apply to every piece.

Locale groups for translation siblings

Two pieces in different locales linked as siblings. CMS push handles multi-locale correctly (Strapi v5 localization endpoint).

Brand-scoped from day one

Content is always tied to a brand. Brand switcher re-filters the whole content table.

Status rollups with per-type vocabulary

Same status, native label per artifact. Production reads as Published, Indexed, Live, Hired — depending on the artifact.

Linked artifacts

Attach docs, decisions, notes, annotations to any piece via the polymorphic artifact relations.

Channel-aware publish state

Per-channel publish status, engagement counters, sync log — all on the same row.

In context with the rest of m18t

Content doesn't live in isolation.

It's the surface where your product's spec gets translated into stories. m18t makes that translation structural.

Pair with Canvas →

Generate brand-aware cover imagery and social graphics for every content piece. The AI knows your brand colors and references the content piece directly.

Pair with Publish →

Ship one canonical piece to Facebook + Instagram + your CMS in one click. Per-channel state tracked.

Pair with Prompts →

Use your managed AI prompts inline in the editor. SEO prompts can't even hallucinate canonical URLs because the path is auto-injected.

Pair with Product Development →

Link content pieces to the features they describe. Marketing stops drifting from product because both live in the same workspace.

Pair with Multi-brand workspace →

If you run more than one brand, the brand switcher in the sidebar re-shards the entire content table — same UI, different world.

Beta-honest state

What's here today, what's rough, what's coming.

Solid today

  • — All six default content types working
  • — User-defined custom content types per brand
  • — SEO indices with default fields and per-piece overrides
  • — Locale groups + multi-locale CMS push
  • — Status rollups with per-type aliases
  • — Linked artifacts
  • — Channel-aware per-channel publish state

Rough today

  • — Type-specific UX edge cases (video-post attachment, social-post per-platform preview)
  • — Bulk operations across multiple pieces (basic, can be deeper)

Coming

  • — Inline preview per target channel before publishing
  • — Bulk schedule and bulk status changes
  • — Auto-publish loop (cron + status + due-date)
  • — More CMS adapter targets beyond Strapi
And the multi-brand bit

The brand switcher re-shards the content table.

If you run multiple brands, the content table re-shards on every brand switch. Each brand carries its own content types, its own SEO indices, its own status aliases (if you want them to differ), and its own integrations. An agency with thirty client brands runs the same UI as a solo founder with one brand — the data behind it just changes.

More on the multi-brand wedge → /solutions/multi-brand

Frequently Asked Questions

Try the content workspace.

Free during beta. Bring your AI key when you want generation. The founder fixes bugs the same week.