<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Ondřej Chrastina — Journal, Projects & Talks]]></title><description><![CDATA[Personal site and journal of Ondřej Chrastina — software developer.]]></description><link>http://github.com/dylang/node-rss</link><generator>GatsbyJS</generator><lastBuildDate>Wed, 30 Sep 2026 12:59:56 GMT</lastBuildDate><item><title><![CDATA[CKEditor in Drupal: News in Content Editing]]></title><description><![CDATA[A 10 minute news update at DrupalCon Rotterdam 2026: everything that shipped for CKEditor in Drupal since Chicago - custom AI Reviews and AI Chat Shortcuts, the Context Control Center bridge between Drupal AI and CKEditor AI, the Export to PDF v2 engine, and the honest story of the 1.x and 2.x module lines heading into Drupal 12.]]></description><link>https://ondrej.chrastina.dev/talks/ckeditor-in-drupal-news-in-content-editing-drupalcon-rotterdam-2026/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/talks/ckeditor-in-drupal-news-in-content-editing-drupalcon-rotterdam-2026/</guid><category><![CDATA[Talks]]></category><pubDate>Tue, 29 Sep 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[Trailhead: the CKEditor AI Coding Agents Webinar Demo]]></title><description><![CDATA[The runnable companion to the "Less time, fewer tokens, better effects" webinar: a fictional trip-planning landing page whose About section is edited by a CKEditor InlineEditor that an AI coding agent wired in - Format painter, Slash commands, AI assistant, autosave and all.]]></description><link>https://ondrej.chrastina.dev/projects/devrel-ckeditor-ai-coding-agents-demo/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/projects/devrel-ckeditor-ai-coding-agents-demo/</guid><category><![CDATA[Projects]]></category><pubDate>Thu, 17 Sep 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[Less time, fewer tokens, better effects: the official CKEditor support for AI coding agents]]></title><description><![CDATA[Webinar with Marcin Burek (Product Manager at CKEditor) on the official CKEditor support for AI coding agents: an installable skill and a hosted documentation MCP server that give agents like Claude Code, Cursor, and Copilot accurate, version-aware knowledge instead of stale training data.]]></description><link>https://ondrej.chrastina.dev/talks/less-time-fewer-tokens-better-effects-ckeditor-ai-coding-agents/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/talks/less-time-fewer-tokens-better-effects-ckeditor-ai-coding-agents/</guid><category><![CDATA[Talks]]></category><pubDate>Thu, 17 Sep 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[Ondrej askin' - Conference Interview Series]]></title><description><![CDATA[My on-the-floor interview series: short, honest conversations with interesting people I meet at conferences - CEOs, community leaders, and engineers, recorded right on the conference floor. All episodes collected in one YouTube playlist, growing with every event season.]]></description><link>https://ondrej.chrastina.dev/talks/ondrej-askin-conference-interview-series/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/talks/ondrej-askin-conference-interview-series/</guid><category><![CDATA[Talks]]></category><pubDate>Thu, 17 Sep 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[Editor Types Explained (Classic, Inline, Balloon, Balloon Block, Document, Multi-root)]]></title><description><![CDATA[One editor, different flavors: a fixed toolbar, a floating one, a Google Docs layout, even four editable boxes on one page. A sub-10-minute tour of all six ready-made CKEditor editor types, how small the code difference between them really is, and a complete setup generated with CKEditor Builder.]]></description><link>https://ondrej.chrastina.dev/talks/editor-types-explained/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/talks/editor-types-explained/</guid><category><![CDATA[Talks]]></category><pubDate>Fri, 11 Sep 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[Mermaid Diagram Showcase]]></title><description><![CDATA[A living gallery of Mermaid diagrams rendered natively by GitHub - including the OAuth flow diagrams from my article on securing CKEditor real-time collaboration.]]></description><link>https://ondrej.chrastina.dev/projects/mermaid-showcase/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/projects/mermaid-showcase/</guid><category><![CDATA[Projects]]></category><pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[Content Editing Unlocked: TYPO3 v14 Demo Project]]></title><description><![CDATA[The companion TYPO3 v14 demo for my "Content Editing Unlocked" talk at TYPO3 Developer Days 2026 - everything from the session as working code: theme-aware RTE previews, button styles shared via Site Sets, an OpenStreetMap block widget, and link icons in the link browser.]]></description><link>https://ondrej.chrastina.dev/projects/t3dd-2026-content-editing-unlocked/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/projects/t3dd-2026-content-editing-unlocked/</guid><category><![CDATA[Projects]]></category><pubDate>Sat, 08 Aug 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[Content Editing Unlocked: Multisite, Visual Builder, and Editor Capabilities]]></title><description><![CDATA[Conference talk at TYPO3 Developer Days 2026 in Karlsruhe, prepared together with Jürgen Pietschmann (T3Planet) and delivered solo. How to make content editing in TYPO3 maintainable across a multisite setup: shared RTE styles via Site Sets, custom icons that actually survive the trip to the live site, and CKEditor properly wired into the Visual Builder.]]></description><link>https://ondrej.chrastina.dev/talks/content-editing-unlocked-t3dd-2026/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/talks/content-editing-unlocked-t3dd-2026/</guid><category><![CDATA[Talks]]></category><pubDate>Sat, 08 Aug 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[Web Summer Camp 2026 Workshop Playgrounds]]></title><description><![CDATA[My hands-on outputs from the workshops I attended at Web Summer Camp 2026 - one playground per half-day workshop, collected in a single repo so the learning survives the conference.]]></description><link>https://ondrej.chrastina.dev/projects/websummercamp-2026-workshop-playgrounds/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/projects/websummercamp-2026-workshop-playgrounds/</guid><category><![CDATA[Projects]]></category><pubDate>Mon, 13 Jul 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[Proactive Digital Twin Workshop]]></title><description><![CDATA[The companion repository for my "Beyond the Chatbot: Engineering Your Proactive Digital Twin" workshop at Web Summer Camp 2026 - everything you need to deploy your own always-on agentic digital twin: setup scripts, living-files templates, and exercise walkthroughs.]]></description><link>https://ondrej.chrastina.dev/projects/proactive-digital-twin-workshop/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/projects/proactive-digital-twin-workshop/</guid><category><![CDATA[Projects]]></category><pubDate>Thu, 02 Jul 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[Beyond the Chatbot: Engineering Your Proactive Digital Twin]]></title><description><![CDATA[Hands-on workshop at Web Summer Camp 2026 (Opatija, Croatia) in the AI Engineering track. Attendees crossed the line from reactive AI chat to proactive autonomy - deploying their own always-on agentic "digital twin" on a VPS, teaching it their goals through living Markdown files, and wiring it to real-world APIs.]]></description><link>https://ondrej.chrastina.dev/talks/beyond-the-chatbot-engineering-your-proactive-digital-twin/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/talks/beyond-the-chatbot-engineering-your-proactive-digital-twin/</guid><category><![CDATA[Talks]]></category><pubDate>Thu, 02 Jul 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[Beyond Disjointed Text Boxes: Orchestrating Every Piece of Content and Its Metadata with CKEditor AI]]></title><description><![CDATA[Webinar where I interviewed Witek Socha (Senior Technical Product Manager, CKEditor) on how CKEditor AI works across multi-root and multi-editor setups - keeping AI assistance accurate, contextual, and predictable no matter how the editing UI is composed.]]></description><link>https://ondrej.chrastina.dev/talks/beyond-disjointed-text-boxes-ckeditor-ai-multiroot/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/talks/beyond-disjointed-text-boxes-ckeditor-ai-multiroot/</guid><category><![CDATA[Talks]]></category><pubDate>Thu, 25 Jun 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[The Real Story Behind AI in Content Editing]]></title><description><![CDATA[Thought leadership session at CMS Summit Frankfurt 2026 - ~80 people in the room. Examined the real infrastructure, trust, and context-depth gaps enterprises hit when adopting AI in content workflows, with CKEditor woven in as the concrete example of how those gaps actually get solved.]]></description><link>https://ondrej.chrastina.dev/talks/the-real-story-behind-ai-in-content-editing-cms-summit-2026/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/talks/the-real-story-behind-ai-in-content-editing-cms-summit-2026/</guid><category><![CDATA[Talks]]></category><pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[Sleep Better on Release Day: A Modern Testing Strategy for JavaScript SDKs and Components]]></title><description><![CDATA[Presented at DEVWorld Amsterdam 2026 to 5,000 combined attendees. A practical guide to validating complex JavaScript SDK ecosystems - covering the Integration Matrix, the Timeline Strategy for catching browser-engine regressions weeks early, and AI Models Interoperability for non-deterministic AI features.]]></description><link>https://ondrej.chrastina.dev/talks/sleep-better-on-release-day/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/talks/sleep-better-on-release-day/</guid><category><![CDATA[Talks]]></category><pubDate>Thu, 07 May 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[Drupal in the Age of AI: From Experimentation to Impact]]></title><description><![CDATA[Co-presented with Seth Gregory (EPAM) at Acquia Engage Denver 2026 - full room, 64 attendees. Covers where Drupal stands in the AI era: editorial workflows, AI-assisted content creation, governance, and building an AI-ready foundation with a human-in-the-loop approach.]]></description><link>https://ondrej.chrastina.dev/talks/drupal-in-the-age-of-ai-from-experimentation-to-impact/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/talks/drupal-in-the-age-of-ai-from-experimentation-to-impact/</guid><category><![CDATA[Talks]]></category><pubDate>Tue, 28 Apr 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[Extreme TypeScript: Mastering Recursion and Inference via Type-Level Arithmetic]]></title><description><![CDATA[Meetup talk in Brno for Next.js & Strapi developers - a deep-dive into TypeScript's type system as a programming language of its own. Built around the story of a Haskell-inspired calculator with zero runtime code, teaching recursion, conditional types, and infer as practical tools for reading real library types.]]></description><link>https://ondrej.chrastina.dev/talks/extreme-typescript-recursion-inference-type-level-arithmetic/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/talks/extreme-typescript-recursion-inference-type-level-arithmetic/</guid><category><![CDATA[Talks]]></category><pubDate>Thu, 23 Apr 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[TuxCare Live: Chris and Ondřej Discuss CKEditor AI]]></title><description><![CDATA[Live stream with Chris DeMars on TuxCare - started as a conversation about AI in content creation, ended up as a deep product overview of CKEditor AI: features, real-world use cases, and the architecture behind enterprise-grade AI content editing.]]></description><link>https://ondrej.chrastina.dev/talks/tuxcare-chris-and-ondrej-discuss-ckeditor-ai/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/talks/tuxcare-chris-and-ondrej-discuss-ckeditor-ai/</guid><category><![CDATA[Talks]]></category><pubDate>Fri, 10 Apr 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[CKEditor AI On-Premises Docker Showcase]]></title><description><![CDATA[A complete local CKEditor AI environment in Docker Compose: every backend service, your own LLM hookup, and MCP tool registration - the hands-on setup behind my on-premises webinar and Shorts.]]></description><link>https://ondrej.chrastina.dev/projects/devrel-ckeditor-ai-onprem-docker-showcase/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/projects/devrel-ckeditor-ai-onprem-docker-showcase/</guid><category><![CDATA[Projects]]></category><pubDate>Thu, 09 Apr 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[CKEditor AI on Your Premises: Hook your LLM and register MCP tools]]></title><description><![CDATA[A practical look at running CKEditor AI on your own infrastructure — wiring the editor to a self-hosted LLM and registering MCP tools so it can act on your data without ever leaving your premises.]]></description><link>https://ondrej.chrastina.dev/talks/ckeditor-ai-on-your-premises-hook-your-llm-and-register-mcp-tools/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/talks/ckeditor-ai-on-your-premises-hook-your-llm-and-register-mcp-tools/</guid><category><![CDATA[Talks]]></category><pubDate>Thu, 09 Apr 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[CKEditor 5 Timestamp Plugin for Drupal: Vibe-Coded at DrupalCon Chicago 2026]]></title><description><![CDATA[My first custom Drupal module extending CKEditor, vibe-coded with Claude Code on the DrupalCon Chicago conference floor - a toolbar button that inserts the current timestamp, plus the agent skill that knows how to build CKEditor 5 plugins as Drupal modules.]]></description><link>https://ondrej.chrastina.dev/projects/drupalcon-chicago-26-ckeditor-ai-playground/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/projects/drupalcon-chicago-26-ckeditor-ai-playground/</guid><category><![CDATA[Projects]]></category><pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[CKEditor in Drupal: From Better Formatting to AI-Powered Authoring]]></title><description><![CDATA[Lightning talk at DrupalCon Chicago 2026 - the latest CKEditor 5 improvements in the Drupal ecosystem, from enhanced formatting capabilities to the AI-powered authoring features now available in production Drupal sites.]]></description><link>https://ondrej.chrastina.dev/talks/ckeditor-in-drupal-better-formatting-to-ai-authoring-drupalcon-2026/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/talks/ckeditor-in-drupal-better-formatting-to-ai-authoring-drupalcon-2026/</guid><category><![CDATA[Talks]]></category><pubDate>Wed, 25 Mar 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[Case Study: Enterprise AI Content Creation Gaps]]></title><description><![CDATA[DrupalCon Chicago 2026 session unpacking the real "AI gaps" enterprises hit in content workflows - the urgency trap, trust and compliance hurdles, the breadth-vs-depth problem, and why calling a model API is the easy part. Presents CKEditor AI as the embedded solution.]]></description><link>https://ondrej.chrastina.dev/talks/enterprise-ai-content-creation-gaps-drupalcon-chicago-2026/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/talks/enterprise-ai-content-creation-gaps-drupalcon-chicago-2026/</guid><category><![CDATA[Talks]]></category><pubDate>Wed, 25 Mar 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[Bas.fm: Why Most GitHub Repos Fail (And How to Fix Them)]]></title><description><![CDATA[Guest on Bas.fm - a wide-ranging conversation about OpenSource maintenance, Developer Relations, Python, and what actually makes a GitHub repository succeed long-term. With a CKEditor cameo, naturally.]]></description><link>https://ondrej.chrastina.dev/talks/basf-podcast-why-most-github-repos-fail-and-how-to-fix-them/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/talks/basf-podcast-why-most-github-repos-fail-and-how-to-fix-them/</guid><category><![CDATA[Talks]]></category><pubDate>Tue, 17 Mar 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[Hackmamba: Developer Experience, the New Way]]></title><description><![CDATA[Guest on Hackmamba's "Everything Outside Code" series - exploring how AI is reshaping Developer Experience, what that shift means for Developer Relations teams, and how CKEditor fits into the new landscape where tooling expectations have fundamentally changed.]]></description><link>https://ondrej.chrastina.dev/talks/hackmamba-developer-experience-the-new-way/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/talks/hackmamba-developer-experience-the-new-way/</guid><category><![CDATA[Talks]]></category><pubDate>Mon, 09 Mar 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[CKEditor AI: Overcoming Enterprise AI Content Creation Challenges]]></title><description><![CDATA[Roman Khudonogov and Witek Socha unpacked the four enterprise gaps we keep seeing in AI content creation — urgency, trust, breadth-vs-depth, and API-vs-flows — and what it actually takes to bridge them in production.]]></description><link>https://ondrej.chrastina.dev/talks/ckeditor-ai-overcoming-enterprise-ai-content-creation-challenges/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/talks/ckeditor-ai-overcoming-enterprise-ai-content-creation-challenges/</guid><category><![CDATA[Talks]]></category><pubDate>Thu, 12 Feb 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[Tech Talks Daily: CKEditor and the Reality of Supporting Developers Across Every Tech Stack]]></title><description><![CDATA[Guest on Tech Talks Daily (51K monthly listeners) - exploring what it really takes to support developers across every tech stack and why CKEditor's open architecture approach matters for developer experience at scale.]]></description><link>https://ondrej.chrastina.dev/talks/tech-talks-daily-ckeditor-reality-of-supporting-developers/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/talks/tech-talks-daily-ckeditor-reality-of-supporting-developers/</guid><category><![CDATA[Talks]]></category><pubDate>Thu, 29 Jan 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[CKEditor Collaboration Features Decomposed]]></title><description><![CDATA[A bare-bones TypeScript project that adds CKEditor's collaboration features one at a time - comments, track changes, revision history, real-time collaboration - each in its minimal possible setup.]]></description><link>https://ondrej.chrastina.dev/projects/devrel-collaboration-features-decomposed/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/projects/devrel-collaboration-features-decomposed/</guid><category><![CDATA[Projects]]></category><pubDate>Wed, 28 Jan 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[Extreme TypeScript: Mastering Recursion and Inference via Type-Level Arithmetic]]></title><description><![CDATA[Deep dive into advanced TypeScript type system features by building a compile-time calculator. Master conditional types, the infer keyword, template literal types, tuple manipulation, and recursive type definitions through practical, step-by-step examples. Learn to write type-level programs that perform arithmetic at compile time.]]></description><link>https://ondrej.chrastina.dev/talks/extreme-typescript-mastering-recursion-and-inference-via-type-level-arithmetic/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/talks/extreme-typescript-mastering-recursion-and-inference-via-type-level-arithmetic/</guid><category><![CDATA[Talks]]></category><pubDate>Tue, 13 Jan 2026 23:00:00 GMT</pubDate></item><item><title><![CDATA[Extreme TypeScript: a Compile-Time Calculator, Step by Step]]></title><description><![CDATA[The companion repository for my "Extreme TypeScript" talks: learn conditional types, infer, template literal types, and recursion by building a calculator that computes entirely at compile time.]]></description><link>https://ondrej.chrastina.dev/projects/ts-type-arithmetic/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/projects/ts-type-arithmetic/</guid><category><![CDATA[Projects]]></category><pubDate>Mon, 12 Jan 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[AI Master Podcast: Building the Future of Content Editing with Al]]></title><description><![CDATA[AI Master Podcast episode with Ondřej Chrastina (Developer Advocate at CKEditor) on AI-powered content editing. Learn how CKEditor 5 differs from CKEditor 4 (model-based architecture vs DOM), why it’s easier to extend with plugins, and how it supports collaboration, versioning, and track changes. We discuss CKEditor AI features for content ideation, drafting, rewriting, and review while preserving formatting, user control, safety, privacy, and GDPR. Practical insights on integrating LLMs into rich text editors, handling latency and hallucinations, prompt vs context engineering, multilingual challenges, and measuring AI productivity.]]></description><link>https://ondrej.chrastina.dev/talks/ai-master-podcast-building-the-future-of-content-editing-with-al/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/talks/ai-master-podcast-building-the-future-of-content-editing-with-al/</guid><category><![CDATA[Talks]]></category><pubDate>Sun, 14 Dec 2025 23:00:00 GMT</pubDate></item><item><title><![CDATA[CKEditor AI: Meet your app’s new AI co-writer]]></title><description><![CDATA[Introduction and overview webinar with me and Andrzej Kala (Senior Technical Product Leader). The narrative was: "Stop forcing your users to switch tabs between ChatGPT and your application. Learn how to integrate a powerful, context-aware AI co-writer directly into your rich text editor."]]></description><link>https://ondrej.chrastina.dev/talks/ckeditor-ai-meet-your-app-s-new-ai-co-writer/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/talks/ckeditor-ai-meet-your-app-s-new-ai-co-writer/</guid><category><![CDATA[Talks]]></category><pubDate>Mon, 01 Dec 2025 23:00:00 GMT</pubDate></item><item><title><![CDATA[CKEditor AI Showcase (React)]]></title><description><![CDATA[An interactive React demo of CKEditor AI configuration and customization: AI Chat, Quick Actions, and Review Mode explored through five hands-on tasks in a realistic content management interface.]]></description><link>https://ondrej.chrastina.dev/projects/devrel-ckeditor-ai-showcase-react/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/projects/devrel-ckeditor-ai-showcase-react/</guid><category><![CDATA[Projects]]></category><pubDate>Sat, 29 Nov 2025 00:00:00 GMT</pubDate></item><item><title><![CDATA[Empowering the TYPO3 Community: Introducing CKEditor Pack for Enhanced Content Creation]]></title><description><![CDATA[Open-Source, Open-Future: Our Vision for TYPO3 and CKEditor introduces the CKEditor Pack, a community-driven initiative designed to modernize content editing in TYPO3. The talk explores how open-source collaboration, a unified plugin ecosystem, and thoughtful editor experience design come together to simplify configuration while unlocking advanced editing capabilities.]]></description><link>https://ondrej.chrastina.dev/talks/empowering-the-typo3-community-introducing-ckeditor-pack-for-enhanced-content-creation/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/talks/empowering-the-typo3-community-introducing-ckeditor-pack-for-enhanced-content-creation/</guid><category><![CDATA[Talks]]></category><pubDate>Tue, 25 Nov 2025 23:00:00 GMT</pubDate></item><item><title><![CDATA[CKEditor Theme Playground]]></title><description><![CDATA[A small sandbox for experimenting with CKEditor 5 theming: tweak the editor's look with CSS custom properties and see how far the UI can bend before you need a custom build.]]></description><link>https://ondrej.chrastina.dev/projects/ckeditor-theme-playground/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/projects/ckeditor-theme-playground/</guid><category><![CDATA[Projects]]></category><pubDate>Mon, 20 Oct 2025 00:00:00 GMT</pubDate></item><item><title><![CDATA[CKEditor Image Optimizer Demo (Uploadcare)]]></title><description><![CDATA[The demo project behind my Image Optimizer webinar: CKEditor 5 with the Uploadcare-powered image workflow - upload, transform, and deliver optimized images without leaving the editor.]]></description><link>https://ondrej.chrastina.dev/projects/ckeditor-image-optimizer-demo/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/projects/ckeditor-image-optimizer-demo/</guid><category><![CDATA[Projects]]></category><pubDate>Thu, 09 Oct 2025 00:00:00 GMT</pubDate></item><item><title><![CDATA[Streamline Your Image Workflow: A Deep Dive into CKEditor's Image Optimizer powered by Uploadcare]]></title><description><![CDATA[A deep dive into CKEditor's Image Optimizer, powered by Uploadcare — what it does under the hood, how it slots into an existing CKEditor setup, and where it actually changes the day-to-day for authors and developers.]]></description><link>https://ondrej.chrastina.dev/talks/streamline-your-image-workflow/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/talks/streamline-your-image-workflow/</guid><category><![CDATA[Talks]]></category><pubDate>Thu, 09 Oct 2025 00:00:00 GMT</pubDate></item><item><title><![CDATA[[Updated] Intro Video from Notum's Strapi & Next.js starter]]></title><description><![CDATA[Fast-track Strapi + Next.js monorepo: 5-min video, lean README, yarn dev spins Docker, hot-reload pages—onboard and build CMS-driven apps quickly.]]></description><link>https://ondrej.chrastina.dev/projects/intro-video-from-notum-s-strapi-next-js-starter/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/projects/intro-video-from-notum-s-strapi-next-js-starter/</guid><category><![CDATA[Projects]]></category><pubDate>Mon, 06 Oct 2025 13:00:00 GMT</pubDate></item><item><title><![CDATA[CKEditor AI Playground]]></title><description><![CDATA[My personal sandbox for CKEditor AI experiments, deployed on Vercel - the repo I reach for when a demo idea needs a quick home with the AI assistant already wired in.]]></description><link>https://ondrej.chrastina.dev/projects/ckeditor-ai-playground/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/projects/ckeditor-ai-playground/</guid><category><![CDATA[Projects]]></category><pubDate>Mon, 06 Oct 2025 00:00:00 GMT</pubDate></item><item><title><![CDATA[Add Template & Mention Plugins to Existing Project]]></title><description><![CDATA[Part of the MLH 2025 series. I walked through two paths for adding Template and Mention plugins to an existing CKEditor 5 project — the fast route via CKEditor builder, and the manual integration when the scenario gets messy.]]></description><link>https://ondrej.chrastina.dev/talks/add-template-and-mention-plugins-to-existing-project/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/talks/add-template-and-mention-plugins-to-existing-project/</guid><category><![CDATA[Talks]]></category><pubDate>Tue, 23 Sep 2025 00:00:00 GMT</pubDate></item><item><title><![CDATA[From Vanilla JS starter to TypeScript GitHub repo]]></title><description><![CDATA[Part of the MLH 2025 series. I took a CKEditor 5 vanilla JavaScript starter all the way to a real TypeScript GitHub repo — types, tooling, and a build setup another developer can clone and run.]]></description><link>https://ondrej.chrastina.dev/talks/from-vanilla-js-starter-to-typescript-github-repo/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/talks/from-vanilla-js-starter-to-typescript-github-repo/</guid><category><![CDATA[Talks]]></category><pubDate>Tue, 23 Sep 2025 00:00:00 GMT</pubDate></item><item><title><![CDATA[CKEditor Raffle]]></title><description><![CDATA[The booth raffle tool: a web-based winner picker with slot-machine spin, confetti, and cryptographically fair selection - names come from a local text file, nothing gets stored or tracked.]]></description><link>https://ondrej.chrastina.dev/projects/devrel-ckeditor-raffle/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/projects/devrel-ckeditor-raffle/</guid><category><![CDATA[Projects]]></category><pubDate>Thu, 18 Sep 2025 00:00:00 GMT</pubDate></item><item><title><![CDATA[Spark Team Productivity with a Frictionless, Unified AI Writing Stack]]></title><description><![CDATA[The talk introduces CKEditor AI, a groundbreaking add-on that seamlessly integrates AI capabilities into CKEditor. This innovation enables the AI to think and generate content in rich text format while preserving complex formatting. Designed for direct integration into your application, CKEditor AI offers a unified, secure, and flecible platform for content creation and editing.]]></description><link>https://ondrej.chrastina.dev/talks/spark-team-productivity-with-a-frictionless-unified-ai-writing-stack/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/talks/spark-team-productivity-with-a-frictionless-unified-ai-writing-stack/</guid><category><![CDATA[Talks]]></category><pubDate>Mon, 15 Sep 2025 15:00:00 GMT</pubDate></item><item><title><![CDATA[CKEditor 5 Sample for MLH Global Hack Week (Aug 2025)]]></title><description><![CDATA[The sample project behind CKEditor's MLH Global Hack Week challenges: starter setup, TypeScript migration, template functionality, and CKInspector integration - built for beginners taking their first steps in editor customization.]]></description><link>https://ondrej.chrastina.dev/projects/devrel-mlh-workshops-aug-2025/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/projects/devrel-mlh-workshops-aug-2025/</guid><category><![CDATA[Projects]]></category><pubDate>Wed, 30 Jul 2025 00:00:00 GMT</pubDate></item><item><title><![CDATA[CKEditor & Plotly.js Widget Showcase]]></title><description><![CDATA[Interactive Plotly.js charts living inside CKEditor 5 content: scatter, bar, line, pie, and histogram widgets with hover, zoom, and responsive resizing - a proof that rich data visualization and rich text editing can share one document.]]></description><link>https://ondrej.chrastina.dev/projects/ckeditor5-plotly-widget-showcase/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/projects/ckeditor5-plotly-widget-showcase/</guid><category><![CDATA[Projects]]></category><pubDate>Thu, 03 Jul 2025 00:00:00 GMT</pubDate></item><item><title><![CDATA[CKEditor 5 Smart Callout Plugin]]></title><description><![CDATA[A CKEditor 5 callout-box plugin generated with Claude Code - an early experiment in letting an AI coding agent build a complete editor plugin, deployed live on Netlify.]]></description><link>https://ondrej.chrastina.dev/projects/ckeditor5-smart-callout/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/projects/ckeditor5-smart-callout/</guid><category><![CDATA[Projects]]></category><pubDate>Tue, 24 Jun 2025 00:00:00 GMT</pubDate></item><item><title><![CDATA[CKEditor 5 Pitfall: Don't Forget the Paragraph Plugin]]></title><description><![CDATA[When integrating CKEditor 5, it's tempting to start small—using the CKEditor Builder or diving into the crash course. But there’s a subtle gotcha that trips up even experienced developers: the Essentials plugin doesn’t include Paragraph support. Without it, your editor silently fails—no errors, just an empty editing area. This post shows the problem, the fix, and why remembering to add the Paragraph plugin is... well, essential. 🚀]]></description><link>https://ondrej.chrastina.dev/journal/ckeditor-5-pitfall-don-t-forget-the-paragraph-plugin/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/journal/ckeditor-5-pitfall-don-t-forget-the-paragraph-plugin/</guid><category><![CDATA[Journal]]></category><pubDate>Sun, 22 Jun 2025 22:00:00 GMT</pubDate></item><item><title><![CDATA[CKEditor weekend video series]]></title><description><![CDATA[I started with my personal YouTube channe l, where I shared a typical coding videos. In this series, I vibe-coded a clone of the Google Keep app, showcasing how to build a notes application from scratch. The second part focused on enhancing the app by integrating CKEditor for rich-text editing, making it a powerful tool for managing notes. Finally, I demonstrated the inclusion of CKEditor's real-time collaboration features, allowing multiple users to edit notes simultaneously and view revision histories.]]></description><link>https://ondrej.chrastina.dev/projects/ckeditor-weekend-video-series/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/projects/ckeditor-weekend-video-series/</guid><category><![CDATA[Projects]]></category><pubDate>Sun, 25 May 2025 22:00:00 GMT</pubDate></item><item><title><![CDATA[Ondrej's Notes: One Note App, Seven Rich Text Editors]]></title><description><![CDATA[A Google Keep-inspired note app (React + TypeScript + Vite) that doubles as an editor comparison lab: switch a note between CKEditor, Tiptap, TinyMCE, Lexical, Froala, Quill, or a plain textarea and feel the differences yourself.]]></description><link>https://ondrej.chrastina.dev/projects/ondrejs-notes/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/projects/ondrejs-notes/</guid><category><![CDATA[Projects]]></category><pubDate>Fri, 23 May 2025 00:00:00 GMT</pubDate></item><item><title><![CDATA[UpCloud & Doom]]></title><description><![CDATA[Learn how to package classic DOOM into a Docker image, deploy it on UpCloud Kubernetes, and stream gameplay via noVNC—proof UKS handles full GUI apps.]]></description><link>https://ondrej.chrastina.dev/projects/upcloud-doom/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/projects/upcloud-doom/</guid><category><![CDATA[Projects]]></category><pubDate>Tue, 04 Mar 2025 23:00:00 GMT</pubDate></item><item><title><![CDATA[From Prototype to Purpose: The Journey of Our Custom Elements at Kontent.ai]]></title><description><![CDATA[Blogpost detailing our journey from a simple showcase to a comprehensive custom element gallery at Kontent.ai, sharing insights on how my team and I evolved the project to empower developers and enhance our headless CMS capabilities.]]></description><link>https://ondrej.chrastina.dev/journal/from-prototype-to-purpose-the-journey-of-our-custom-elements-at-kontent-ai/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/journal/from-prototype-to-purpose-the-journey-of-our-custom-elements-at-kontent-ai/</guid><category><![CDATA[Journal]]></category><pubDate>Mon, 17 Feb 2025 23:00:00 GMT</pubDate></item><item><title><![CDATA[How I Turned Kubernetes Into a Fun, Kid-Friendly YouTube Short]]></title><description><![CDATA[Join me, Ondřej Chrastina, on a creative journey to discover how Kubernetes is transformed into a fun, kid-friendly video by breaking down complex tech into simple, engaging concepts using tools like ChatGPT, ElevenLabs, and Canva.]]></description><link>https://ondrej.chrastina.dev/journal/how-i-turned-kubernetes-into-a-fun-kid-friendly-youtube-short/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/journal/how-i-turned-kubernetes-into-a-fun-kid-friendly-youtube-short/</guid><category><![CDATA[Journal]]></category><pubDate>Sun, 16 Feb 2025 23:00:00 GMT</pubDate></item><item><title><![CDATA[Next.js Corporate Starter]]></title><description><![CDATA[Next.js corporate starter site using Kontent.ai as a CMS.]]></description><link>https://ondrej.chrastina.dev/projects/next-js-corporate-starter/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/projects/next-js-corporate-starter/</guid><category><![CDATA[Projects]]></category><pubDate>Thu, 11 May 2023 22:00:00 GMT</pubDate></item><item><title><![CDATA[Next.js boilerplate for Kontent.ai]]></title><description><![CDATA[The Kontent.ai Boilerplate for Next.js demonstrates how to use Next.js's Static Generation with Kontent.ai as the content source. It provides a ready-to-deploy setup for projects that integrate content management with a Next.js frontend.]]></description><link>https://ondrej.chrastina.dev/projects/next-js-boilerplate-for-kontent-ai/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/projects/next-js-boilerplate-for-kontent-ai/</guid><category><![CDATA[Projects]]></category><pubDate>Mon, 31 Oct 2022 23:00:00 GMT</pubDate></item><item><title><![CDATA[Java for Kontent by Kentico]]></title><description><![CDATA[The monorepo containing Kontent Delivery SDK for data fetching facilitation from Kontent headless CMS, model generator, and a set of examples of how to use these two tools using Gradle, Spring Boot, and Java + Kotlin android application.]]></description><link>https://ondrej.chrastina.dev/projects/java-for-kontent-by-kentico/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/projects/java-for-kontent-by-kentico/</guid><category><![CDATA[Projects]]></category><pubDate>Fri, 06 May 2022 00:00:00 GMT</pubDate></item><item><title><![CDATA[Hacky way to check if content item is a component]]></title><description><![CDATA[This little gotcha might help you to decide whether you item is a content item, or a content component. What is that good for? Content components are always returned as a part of the parent item and can't be fetched solely. This condition can help you i.e. with caching.]]></description><link>https://ondrej.chrastina.dev/journal/hacky-way-to-check-if-content-item-is-a-component/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/journal/hacky-way-to-check-if-content-item-is-a-component/</guid><category><![CDATA[Journal]]></category><pubDate>Mon, 07 Jun 2021 22:00:00 GMT</pubDate></item><item><title><![CDATA[Get Kontent Project ID from the Management API key]]></title><description><![CDATA[It is possible to parse out Kontent Project ID out of the Management API Key. That means no more necessity to ask for two keys for your Kontent tools.]]></description><link>https://ondrej.chrastina.dev/journal/get-kontent-project-id-from-the-management-api-key/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/journal/get-kontent-project-id-from-the-management-api-key/</guid><category><![CDATA[Journal]]></category><pubDate>Sun, 21 Mar 2021 00:00:00 GMT</pubDate></item><item><title><![CDATA[Custom element gallery]]></title><description><![CDATA[The Gallery of Custom Element samples contains a list of different custom elements that might help you to extend content editing capabilities inside of your Kontent.ai.]]></description><link>https://ondrej.chrastina.dev/projects/custom-element-gallery/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/projects/custom-element-gallery/</guid><category><![CDATA[Projects]]></category><pubDate>Sun, 28 Feb 2021 23:00:00 GMT</pubDate></item><item><title><![CDATA[Jamstackon.net]]></title><description><![CDATA[Microsite utilizing Statiq and Kentico Kontent via Kontent.Statiq module to evangelize the Jamstack world for .NET developers.]]></description><link>https://ondrej.chrastina.dev/projects/jamstackon-net/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/projects/jamstackon-net/</guid><category><![CDATA[Projects]]></category><pubDate>Wed, 27 Jan 2021 00:00:00 GMT</pubDate></item><item><title><![CDATA[Jamstack on .NET: From zero to hero with Statiq and Kontent]]></title><description><![CDATA[How to start building Jamstack Apps in .NET utilizing Statiq and headless CMS.]]></description><link>https://ondrej.chrastina.dev/journal/jamstack-on-net-from-zero-to-hero-with-statiq-and-kontent/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/journal/jamstack-on-net-from-zero-to-hero-with-statiq-and-kontent/</guid><category><![CDATA[Journal]]></category><pubDate>Mon, 30 Nov 2020 00:00:00 GMT</pubDate></item><item><title><![CDATA[Test out Javascript async await easily]]></title><description><![CDATA[Have you been struggling with some NPM library providing async API? It is surprisingly easy to set up a playground capable of Javascript async, await. Let's get to it!]]></description><link>https://ondrej.chrastina.dev/journal/test-out-javascript-async-await-easily/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/journal/test-out-javascript-async-await-easily/</guid><category><![CDATA[Journal]]></category><pubDate>Sat, 29 Aug 2020 00:00:00 GMT</pubDate></item><item><title><![CDATA[ondrej.chrastina.dev]]></title><description><![CDATA[My personal website build with Gatsby and Kentico Kontent as a data source.]]></description><link>https://ondrej.chrastina.dev/projects/ondrej-chrastina-dev/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/projects/ondrej-chrastina-dev/</guid><category><![CDATA[Projects]]></category><pubDate>Sat, 22 Aug 2020 00:00:00 GMT</pubDate></item><item><title><![CDATA[Official Next.js example for Next.js & Kontent.ai]]></title><description><![CDATA[Integrate Kontent.ai with Next.js to create a statically generated website with dynamic content management and preview capabilities.]]></description><link>https://ondrej.chrastina.dev/projects/official-next-js-example-for-next-js-kontent-ai/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/projects/official-next-js-example-for-next-js-kontent-ai/</guid><category><![CDATA[Projects]]></category><pubDate>Sun, 09 Aug 2020 22:00:00 GMT</pubDate></item><item><title><![CDATA[Specify folder when uploading Asset via Kontent JS Management SDK]]></title><description><![CDATA[It is great that Kentico Kontent Management REST API allows uploading the assets, but how to upload an asset under a specific folder and how to achieve it via Javascript Management SDK? Originally this question was asked on StackOverflow.]]></description><link>https://ondrej.chrastina.dev/journal/specify-folder-when-uploading-asset-via-kontent-js-management-sdk/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/journal/specify-folder-when-uploading-asset-via-kontent-js-management-sdk/</guid><category><![CDATA[Journal]]></category><pubDate>Fri, 31 Jul 2020 00:00:00 GMT</pubDate></item><item><title><![CDATA[Kill the process occupying your port]]></title><description><![CDATA[Have you encounter with exception like " Address already in use: bind "? If you have been doing web development I have no doubt you have! Now you need to find the bas**rd and kill the process. But how to do that quickly on Windows?]]></description><link>https://ondrej.chrastina.dev/journal/kill-the-process-occupying-your-port/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/journal/kill-the-process-occupying-your-port/</guid><category><![CDATA[Journal]]></category><pubDate>Mon, 27 Jul 2020 00:00:00 GMT</pubDate></item><item><title><![CDATA[JS "map" in Java]]></title><description><![CDATA[How to transform all items in a List or Array to another array? If you come from JavaScript world mean map method, in .Net, you would use LINQ and Select method. But how is that in Java 8?]]></description><link>https://ondrej.chrastina.dev/journal/js-map-in-java/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/journal/js-map-in-java/</guid><category><![CDATA[Journal]]></category><pubDate>Fri, 24 Jul 2020 00:00:00 GMT</pubDate></item><item><title><![CDATA[Kontent.ai content type selector]]></title><description><![CDATA[Enhance your Kontent.ai CMS with a Vue.js custom element that enables editors to select content types directly within projects, featuring an optional debug panel and support for modeling listing pages.]]></description><link>https://ondrej.chrastina.dev/projects/kontent-ai-content-type-selector/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/projects/kontent-ai-content-type-selector/</guid><category><![CDATA[Projects]]></category><pubDate>Thu, 16 Jul 2020 22:00:00 GMT</pubDate></item><item><title><![CDATA[Building a blazing fast application with Gatsby.js]]></title><description><![CDATA[Overview how Gtabsy source plugin is building the websites, it's speed benefits. And how JamStack in combination with headless CMS can help you to build blazing fast, secure and highly available site. Esp in combination withe Kentico Cloud (now Kontent.ai) headless CMS. Presented on Kentico Connection (Brno) 2019.]]></description><link>https://ondrej.chrastina.dev/talks/building-a-blazing-fast-application-with-gatsby-js/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/talks/building-a-blazing-fast-application-with-gatsby-js/</guid><category><![CDATA[Talks]]></category><pubDate>Sun, 15 Sep 2019 22:00:00 GMT</pubDate></item><item><title><![CDATA[Gatsby.js Photon starter]]></title><description><![CDATA[Kentico Kontent web template using Gatsby.js and Kentico Kontent based on Gatsby starter Photon.]]></description><link>https://ondrej.chrastina.dev/projects/gatsby-js-photon-starter/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/projects/gatsby-js-photon-starter/</guid><category><![CDATA[Projects]]></category><pubDate>Mon, 20 May 2019 00:00:00 GMT</pubDate></item><item><title><![CDATA[Apollo Express Kontent boilerplate]]></title><description><![CDATA[This boilerplate showcasing how to combine the Node.js web server Express.js with GraphQL. The server converts the Kentico Kontent Delivery REST API to GraphQL using the Apollo framework and then renders the output using the Pug view engine.]]></description><link>https://ondrej.chrastina.dev/projects/apollo-express-kontent-boilerplate/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/projects/apollo-express-kontent-boilerplate/</guid><category><![CDATA[Projects]]></category><pubDate>Wed, 12 Dec 2018 00:00:00 GMT</pubDate></item><item><title><![CDATA[kentico.github.io]]></title><description><![CDATA[Official site for GitHub Community in Kentico.]]></description><link>https://ondrej.chrastina.dev/projects/kentico-github-io/</link><guid isPermaLink="false">https://ondrej.chrastina.dev/projects/kentico-github-io/</guid><category><![CDATA[Projects]]></category><pubDate>Mon, 10 Sep 2018 00:00:00 GMT</pubDate></item></channel></rss>