> ## Documentation Index
> Fetch the complete documentation index at: https://developer.upsun.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Taras Kruts

> Articles written by Taras Kruts.

<div className="blog-card-grid">
  {/* Auto-generated by blog:generate — DO NOT edit manually */}

  <a href="/posts/hands-on/the-real-story-of-setting-up-drupal-canvas-with-ai" className="blog-card group rounded-xl bg-card border-theme card-hover shadow-sm hover:shadow-md transition-all overflow-hidden flex flex-col">
    {`/images/posts/hands-on/the-real-story-of-setting-up-drupal-canvas-with-ai/lemberg-setting-up-drupal-canvas-with-ai.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/hands-on/the-real-story-of-setting-up-drupal-canvas-with-ai/lemberg-setting-up-drupal-canvas-with-ai.webp" alt="From DrupalCon keynote to live Upsun demo: the real story of setting up Drupal Canvas with AI" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`hands-on` !== '' && (
                      <span className="text-xs font-semibold uppercase tracking-wider px-2 py-0.5 rounded-md bg-accent-badge border border-accent-soft text-accent">
                        hands-on
                      </span>
                    )}

        <span className="text-xs text-subtle">Friday, February 13th 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">From DrupalCon keynote to live Upsun demo: the real story of setting up Drupal Canvas with AI</h3>
      <p className="blog-card-desc">Discover how the Lemberg Solutions team set up Drupal Canvas with an AI assistant: how long it took, the challenges we faced and lessons we learned.</p>
    </div>
  </a>
</div>
