MuninMunin
Logga inKom igång gratis
Home/Journal/Ditt innehåll borde gå ut utan en marknadsanställd.
Field note · 9 min read

Ditt innehåll borde gå ut utan en marknadsanställd.

Sex jobb står mellan en idé och en publicerad artikel. Fem av dem är procedur — ämnesrotation, research, skrivande in i ett typat schema, en omslagsbild, själva publiceringen. Ett är omdöme. Här är rundan som gör de fem, och kön som ger dig det sjätte.

A well-used cobalt blue wheelbarrow standing against a low drystone wall on a Norwegian coastal smallholding under heavy overcast cloud, grey-green sea beyond.
En skottkärra, och samma person som kör den.

Varje litet företag har en innehållskö som läses som en lista över saker det redan vet. Ändringsloggsinlägget som besvarar frågan tre kunder ställde förra veckan. Jämförelsesidan ett prospekt letade efter och inte hittade. Onboarding-guiden som i dag finns som en Loom-länk och fyra Slack-meddelanden. Kunskapen finns i byggnaden. De två timmarna gör det inte.

Kan du driva en företagsblogg utan en marknadsanställd?

Ja, om publiceringssystemet är något mjukvara kan köra från början till slut. En marknadsanställd är mest sex jobb: att välja ämne, att researcha det, att skriva det, att göra en omslagsbild, att publicera det, och att efteråt ta reda på om det gjorde något. Fem av dem är procedur. Ett är omdöme. En agent kan hålla de fem och arkivera det sjätte åt dig.

Skälet till att det här inte fungerade för tre år sedan är inte att modellerna inte kunde skriva. Det är att CMS:et i andra änden var ett webbformulär. En person måste sitta i en webbläsarsession och klicka in i ett rich text-fält för att få ett stycke från ett utkast in i en databas. All automation stannade vid det fönstret och la ut ett Slack-meddelande om att någon behövde klistra in något.

Det som förändrades är att innehållshantering fick en riktig verktygsyta. Munins CMS är en uppsättning MCP-verktyg — cms_create_entry, cms_update_entry, cms_publish_entry, cms_schedule_publish, cms_get_preview_link — som ligger på samma Postgres som CRM:et, inkorgen och kunskapsbasen. Det finns inget fönster i mitten. Detsamma gäller nu hos Contentful och Sanity, och jag återkommer till vad var och en av de tre faktiskt är till för.

Vad måste faktiskt hända innan en artikel går ut?

Sex steg, och bara ett av dem är skrivande. En schemalagd runda väljer ett ämne mot en rotation, kontrollerar det befintliga biblioteket så att den inte upprepar en vinkel, verifierar varje yttre påstående med webbsökning, skriver in i samlingens typade blockschema, genererar en omslagsbild och arkiverar alltihop som ett utkast. Inget publiceras. Du läser en kö.

Rotationen är den del folk underskattar. Lämnad åt sig själv driver varje skribent — mänsklig eller inte — mot det den själv tycker är mest intressant, vilket för ett grundarlett företag betyder essäer om arkitektur och ingen sida en köpare någonsin skulle söka efter. En nedskriven rotationsregel fixar det bättre än goda avsikter gör, eftersom den kontrolleras mot de fem senaste posterna vid varje enskild körning i stället för att kommas ihåg.

  • 01Läs biblioteket först. cms_list_entries på samlingen, med fields begränsat till titlar, kategorier och datum. Rundan räknar vad de fem senaste posterna var innan den får välja en sjätte.
  • 02Verifiera allt externt. Konkurrentpriser, licenser, datum, citat — vart och ett kontrollerat mot leverantörens egen sida och märkt som vägledande. En overifierad siffra som smickrar dig är den en teknisk läsare fångar.
  • 03Skriv in i block, inte i ett textfält. Brödtexten är en ordnad array av typade block, så själva schemat utesluter en tusenordsvägg av prosa.
  • 04Gör omslaget. media_generate_image_cms_asset returnerar ett assetId lagrat som en CMS-resurs, som cms_update_entry fäster vid cover_image.
  • 05Arkivera det som ett utkast. cms_create_entry med status: "draft". Leverans-API:et serverar bara publicerade poster, så ett utkast är osynligt för den publika sajten medvetet, inte av konvention.
  • 06Stanna. Publicering är ett separat verktyg och ett separat beslut. Kön är där ditt omdöme kommer in.
jsoncen artikel, arkiverad som utkast
{
  "name": "cms_create_entry",
  "arguments": {
    "collection": "journal-blocks",
    "slug": "open-source-intercom-alternatives",
    "status": "draft",
    "data": {
      "title": "Intercom-alternativ med öppen källkod 2026",
      "dek": "…",
      "category": "Essay",
      "author": "Kjell Rune Monsø",
      "body": [
        { "type": "lead",     "props": { "text": "…" } },
        { "type": "prose",    "props": { "markdown": "## Finns det ett alternativ…" } },
        { "type": "takeaways", "props": { "items": ["…"] } }
      ]
    }
  }
}

Varför spelar innehållsmodellen större roll än prompten?

För att en prompt är ett råd och ett schema är en vägg. Säg till en modell att variera sin struktur och den gör det, ett tag, och sedan producerar den elva stycken i rad. Ge den ett body-fält som bara accepterar en ordnad array av över ett dussin namngivna blocktyper — lead, prose, pull_quote, callout, editorial_list, definitions, code_block, stats, takeaways, divider, footnotes och resten — och elva stycken i rad blir ett valideringsfel i stället för en dålig dag.

Samma knep bär husstilen. Varje blocktyps beskrivning i schemat är tillämpningsdokumentation: callout-typen säger under ungefär nittio ord, en idé, och att ett stycke som medger något inte får sluta på medgivandet. definitions-typen säger använd editorial_list i stället när nyckeln är ett enskilt ord snarare än en fras. Den vägledningen följer med fältet, så den når varje författare vid varje körning — vilket är en mycket bättre plats för en stilguide än en wikisida ingen öppnar. Jag skrev om avvägningarna i att modellera ett CMS så i din innehållsmodell är en prompt.

Det är värt att vara exakt om vad det här ger och inte ger dig. Ett schema kan tillämpa form, obligatoriska fält och frånvaron av en vägg av text. Det kan inte göra ett argument bra. Granskningskön gör fortfarande verkligt arbete.

Utkast är standard, och att publicera är ett annat verb

cms_create_entry är utkast som standard, och det publika leverans-API:et returnerar bara publicerade poster. Att få en artikel live kräver cms_publish_entry eller cms_schedule_publish — separata anrop med separat avsikt.

Varje skrivning bär ifVersion för optimistisk samtidighetskontroll, cms_list_versions och cms_restore_version täcker historiken, och cms_get_preview_link skapar en signerad URL så att du kan läsa utkastet renderat av den riktiga frontenden innan något av det händer.

Vem gör omslagsbilden?

Samma runda, genom samma gränssnitt. media_generate_image_cms_asset — ett verktyg på den separata MCP-servern Munin Media Tools — tar en prompt, alternativtext och ett filnamn, genererar bilden, lagrar den som en CMS-resurs och lämnar tillbaka ett assetId och en URL. Munin härleder upp till fyra webp-bredder — 320, 640, 1024 och 1536, begränsat av källbredden — så att frontenden får en responsiv uppsättning utan ett byggsteg. cms_update_entry fäster resursen vid cover_image.

Det intressanta är inte genereringen, som alla har. Det är att prompten lagras på resursen, vilket betyder att nästa körning kan läsa hur de fyra föregående såg ut och medvetet göra något annat — annan miljö, annan skala, annan kameravinkel, händer eller inga händer i bild. Utan det minnet kommer en bildmodell att producera samma fotografi av ett föremål på ett träbord vid ett fönster tills hela översikten ser ut som en eftermiddags fotografering. Husstilen är en nedskriven regel; variationen tillämpas genom att göra tidigare beslut läsbara.

En prompt är ett råd. Ett schema är en vägg. Bara den ena av dem arbetar fortfarande vid elfte stycket.

Hur tar du reda på om artikeln gjorde något?

Eftersom CMS:et och CRM:et är ett schema frågar du i en fråga i stället för att stämma av två exporter. Varje CMS-leveranssvar skickar med ett _tracking-block nycklat på det stabila post-id:t, så att registrera en visning kräver ingen separat nyckel och ingen andra leverantör. Visningar landar som analyshändelser mot samma kundpost som affären sitter på.

Det är hela skälet att hålla innehåll på kundplattformen snarare än bredvid den. Frågan ett litet team faktiskt har är inte hur många sessioner bloggen fick — det är vilka två artiklar de som skrev på läste först. analytics_get_contact_journey och analytics_list_top_subjects besvarar det mot en tabell, vilket jag gick igenom i vilket blogginlägg stängde affären.

Slingan sluts även åt andra hållet. En publicerad post kan speglas in i kunskapsbasen så att supportagenten kan citera den, med samma publicera-och-distribuera-runda som också släpper ett meddelande i en konversationskanal. Det är spegelbilden av kunskapsbasen som fyller sig själv från lösta ärenden — svar blir artiklar, och artiklar blir svar.

Hur skiljer sig det här från Contentful eller Sanity?

Alla tre kan nu köras av en agent, och det är en genuint ny utveckling värd att krediteras ordentligt snarare än att viftas bort. Contentful kör en driftad fjärr-MCP-server på mcp.contentful.com/mcp, allmänt tillgänglig, plus en lokal server med öppen källkod, med en dashboard där rumsadministratörer väljer vilka verktyg en AI-klient får se. Sanity kör en fjärrserver på mcp.sanity.io med OAuth, schemamedveten dokumentuppdatering och GROQ-frågor; det äldre lokala paketet @sanity/mcp-server är utfasat till förmån för den.

Så frågan är inte längre om mjukvara kan skriva in i ditt CMS. Det är vad posten i övrigt är fäst vid, och vad mätaren räknar.

  • ContentfulFöretagsinnehållsplattformen, och den bredaste redaktionella verktygslådan i den här jämförelsen — Studios visuella arbetsyta, Personalization, Launch, Tasks, en stor appmarknad. Free kostar 0 $ med 10 användare, 100K API-anrop i månaden, 50 GB CDN-bandbredd och ett Starter Space begränsat till 25 innehållstyper och 10 000 poster. Lite kostar 300 $/månad med 20 användare och 1M API-anrop. Enterprise offereras, och det är nivån där AI Actions och EU-datalagring dyker upp.
  • SanityUtvecklarens val för strukturerat innehåll, med ett Studio du kompilerar själv och GROQ, ett kraftfullt frågespråk för strukturerat innehåll. Free täcker 20 platser; Growth kostar 15 $ per plats och månad upp till 50 platser och lägger till privata dataset, kommentarer, schemalagda utkast och AI Assist; Enterprise offereras.
  • Munin CMSEn modul av sex på en enda Postgres, så att en post, en kontakt, en konversation och ett kunskapsdokument delar en databas och en gräns för row-level security. Typade block med författarregler per typ, signerade förhandsvisningslänkar, versionshantering med ifVersion, genererade omslagsresurser och visningsspårning per post som landar på kundposten. MIT, självdriftbart med docker compose up, EU-driftat i Munin Cloud. Free kostar 0 €/månad med 5 000 MCP-anrop, 250 kontakter och 100 MB; Premium kostar platta 99 €/månad per org med mätt överförbrukning, och lanseras snart.

Vad Munins CMS inte levererar

Det finns ingen visuell dra-och-släpp-sidbyggare, ingen personaliserings- eller A/B-testmotor, och ingen appmarknad från tredje part. Contentful har lagt år på det, och ett innehållsteam på tolv som sätter ihop landningssidor utan att röra kod bör köpa Contentful.

Munin är för det andra innehållsproblemet: ingen sätter ihop landningssidor för att ingen sätter ihop något alls. Det du behöver är ett kompetent utkast på måndag morgon med ett omslag på, arkiverat mot kundposten som senare berättar vilken artikel köparen läste.

Vem bör välja det här?

Välj Munins CMS när blockeringen är att inget blir skrivet överhuvudtaget, och när artikeln till slut ska läsas av någon som redan är en rad i ditt CRM.

Utkastet vet saker. Supporttrådarna, affärssteget, kunskapsbasen och det publicerade biblioteket är ett schema med en contacts-tabell bakom alla sex modulerna. En runda som skriver en jämförelsesida kan söka i kunskapsbasen efter vad som faktiskt är sant om produkten i stället för att hitta på en funktion som låter rimlig.

Den kör där du redan arbetar. Claude, Claude Code, Cursor, ChatGPT, OpenAI Agents SDK, eller en körare du skrev själv — en MCP-ändpunkt, samma verktyg, samma revisionsspår. Det finns ingen separat innehållsapp att logga in i, vilket mest spelar roll för att det du tänkte hoppa över var att logga in.

Procedurerna är text du kan redigera. Publiceringsspelböckerna är medföljande markdown-färdigheter, inte en arbetsflödesbyggare. När rotationsregeln är fel för din verksamhet ändrar du en mening och nästa körning beter sig annorlunda.

Och det passar ett företag på en. Cloud Free kostar 0 € i månaden, egen drift är docker compose up under en MIT-licens som täcker publiceringsverktygen och varje annan modul i samma repo, och modellkostnaden är vad din leverantör tar snarare än en avgift per artikel till oss. Samma räknestycke jag körde för ett företag med en stol och sex avdelningar. Varför modellen och verktygen är två separata köp — och vad det gör med priset mot HubSpot eller Ghost — är argumentet i en senare text.

Vanliga frågor

Kan en AI-agent publicera blogginlägg automatiskt? Den kan skriva och arkivera dem automatiskt. I Munin är cms_create_entry status: "draft" som standard, och det publika leverans-API:et returnerar bara publicerade poster, så en ogranskad artikel är osynlig för din sajt medvetet. Att gå live är ett separat anrop — cms_publish_entry eller cms_schedule_publish — och det är där en person avgör.

Vilket är det bästa CMS:et för en AI-agent att skriva in i? Ett med en typad innehållsmodell och en riktig verktygsyta, snarare än ett rich text-fält bakom en inloggning. Contentful, Sanity och Munin kör alla MCP-servrar i dag. Contentful och Sanity är innehållsplattformar; Munins CMS ligger på samma Postgres som dess CRM, inkorg, kunskapsbas, utgående kontakt och analys, så att en publicerad post och kontakten som läste den ligger en koppling från varandra.

Behöver jag en utvecklare för att sätta upp det här? För att rendera sajten, ja — du behöver en frontend som läser leverans-API:et, och det API:et är anonymt utan CORS, så hämtningen körs på serversidan. För att sköta det efteråt, nej. Att skapa samlingar, skriva poster, fästa resurser och publicera är alltihop MCP-verktygsanrop du gör genom att be om dem på vanlig svenska.

Vad kostar det att driva en blogg så här? Munin Cloud Free kostar 0 € i månaden med 5 000 MCP-anrop, 250 kontakter och 100 MB lagring; Premium kostar platta 99 € i månaden per org med mätt överförbrukning, och lanseras snart. Egen drift under MIT kostar vad din server kostar. Ovanpå det betalar du din modelleverantör direkt för skrivandet och bildgenereringen. Som jämförelse kostar Contentfuls Lite-plan 300 dollar i månaden och Sanitys Growth-plan 15 dollar per plats och månad. Alla siffror är vägledande och avlästa från varje leverantörs egen prissida den 10 augusti 2026.

Kommer AI-skrivna artiklar att ranka? Ranking är fel mål att optimera för på egen hand nu. En växande andel köpare frågar en assistent snarare än en sökruta, så texten måste vara citerbar: frågeformade rubriker som speglar hur någon skulle formulera sig, ett självständigt svar på fyrtio till sjuttiofem ord under var och en, namngivna entiteter, verkliga siffror, och ett sammanfattningsblock som står för sig självt. Strukturera för hämtning, så följer rankingen mestadels efter.

Kan jag behålla mitt nuvarande CMS och bara lägga till agenten? Ja, och för en innehållstung sajt med ett etablerat redaktionsteam är det ofta det bättre svaret — Contentful och Sanity exponerar båda driftade MCP-servrar du kan rikta en klient mot i dag. Munin är valet när du hellre vill att artikeln, kunden och konversationen bodde i samma databas.

Kortversionen

  • Sex jobb står mellan en idé och en publicerad artikel. Fem är procedur en agent kan hålla; det sjätte är omdömet du behåller.
  • Låset som öppnades var att CMS:et fick en verktygsyta. Munins är MCP-verktyg på samma Postgres som CRM:et, inkorgen och kunskapsbasen — ingen webbläsarsession i mitten.
  • Ett typat blockschema gör det en prompt inte kan: över ett dussin namngivna blocktyper med författarregler per typ, så att husstilen följer med fältet vid varje körning.
  • Utkast är standard och leverans-API:et serverar bara publicerade poster, så en ogranskad artikel kan inte nå din sajt av misstag.
  • Omslagsbilder genereras genom samma gränssnitt, och prompten lagras på resursen så att nästa körning medvetet kan komponera något annat.
  • Contentful och Sanity kör båda driftade MCP-servrar och levererar breda redaktionssviter — visuella byggare, personalisering, appmarknader. Munin är MIT, börjar på 0 € i Cloud Free, och håller artikeln på samma post som köparen som läste den.

Skapa en samling, be din assistent arkivera ett utkast i den, och läs vad som dyker upp i kön — börja på Munin Cloud, eller läs dokumentationen för hur du formar schemat först.

Anställningen var aldrig det som saknades. Timmen var det.

Kjell Rune Monsø, grundare.