---
url: 'http://workflows-of-ai.com/markdownify/taxonomy/term/1'
title: 'Marcus Johansson'
author:
  name: Anonymous
updated: '2026-10-10T14:20:15+00:00'
type: profile
summary: 'About Marcus Johansson on Workflows of AI: Tinkers with AI and Drupal. Background, profiles elsewhere and the latest articles and videos about AI, code and Drupal.'
image: 'http://workflows-of-ai.com/themes/custom/marcus_theme/images/default-preview.png'
published: true
og:
  site_name: 'Workflows of AI'
  'image:width': '1200'
  'image:height': '630'
  'image:alt': 'Workflows of AI: Marcus adventures in AI and code'
---
Writer

# Marcus Johansson

Tinkers with AI and Drupal

- [Drupal.org profile](https://www.drupal.org/u/marcus_johansson)
- [Drupal AI](https://www.drupal.org/project/ai)

  ## About Marcus

Hey, I'm Marcus. I work with AI and Drupal, and I live in Berlin, Germany.

I am one of the tech leads of the AI Initiative, and one of the maintainers of the [AI module](https://www.drupal.org/project/ai) and many other AI-related modules in the Drupal space. I mainly do open source work. My company, [FreelyGive](https://freelygive.io/), has people that are way smarter than me, so if you need help with AI, reach out to them.

Before Drupal, I was a streaming engineer at Oliver Schrott Kommunikation, working with Mercedes car releases among other things. Earlier still I worked for Nokia and Axel Springer, and freelanced through my own company, Podnix. In some sense the streaming engineer role was set for life in the AI era: live streaming runs on hardware, and hardware has problems you cannot prompt your way out of. It is like always having a captain ready, even when the ship sails on autopilot. I still thought getting to know AI was more important, and Drupal was perfectly built for it.

I used to record short videos on workflows-of-ai.com. Now I try to diversify with blog posts and longer write-ups.

Every post here starts as my rambling notes. AI structures them and writes a first draft, I prompt it to use interactive components, and at the end I read through it and rewrite it until it says what I want it to say.

  ## Latest posts by Marcus

  [ ](/blog/how-i-vibe-configed-this-website) Drupal AI###  [How I vibe-configed this website in under 10 hours](/blog/how-i-vibe-configed-this-website)

I built this site with AI agents by configuring Drupal modules: only 0.14% of the PHP is custom code. How it was done, and how it compares to Express.js.

 Marcus Johansson · Oct 10, 2026 · 12 min read

 [ ](/blog/drupal-ai-1-5) Release notes###  [Drupal AI 1.5.0 is out](/blog/drupal-ai-1-5)

Drupal AI 1.5.0: ChatProcessor and ChatMemory, batch embeddings, streaming guardrails, an AI reranker, and the deprecations to act on before 1.6.0.

 Marcus Johansson · Oct 9, 2026 · 11 min read

 [ ](/blog/decision-models-and-drupal) Evals###  [Decision models and Drupal: a match made in heaven](/blog/decision-models-and-drupal)

AI Validations turns a field rule into a yes or no question for an AI model. A decision model, Jev, against GPT-5.6 Sol on 1,500 brand checks: accuracy, speed and cost.

 Marcus Johansson · Sep 30, 2026 · 15 min read

 [ ](/blog/ai-observability-grafana) Workflows###  [AI Observability with Grafana](/blog/ai-observability-grafana)

Send Drupal AI calls over OpenTelemetry to Grafana, Tempo, Mimir and Loki to see latency, tokens, cost and agent traces. Set up in one command.

 Marcus Johansson · Jul 29, 2026 · 2 min read

 [ ](/blog/find-your-images) Workflows###  [Find your images](/blog/find-your-images)

Two Drupal recipes add an image search agent: AI describes and tags your media, then a database or vector search finds images by what they show.

 Marcus Johansson · Jun 9, 2026 · 1 min read

 [ ](/blog/drupal-140-released) Workflows###  [AI 1.4.0 Released](/blog/drupal-140-released)

Drupal AI 1.4.0: global, input length and streaming guardrails, ECA rerouting and failover, agent skills, chat processors and automator actions.

 Marcus Johansson · May 27, 2026 · 1 min read

 [ View all 66 posts by Marcus ](/blog?author=1)