Deprecated function: Creation of dynamic property Drupal\spaceds\StreamWrapper\SpaceStreamWrapper::$config is deprecated in Drupal\spaceds\StreamWrapper\SpaceStreamWrapper->__construct() (line 34 of modules/contrib/spaceds/src/StreamWrapper/SpaceStreamWrapper.php).
Drupal\spaceds\StreamWrapper\SpaceStreamWrapper->__construct(Object) (Line: 261)
Drupal\Component\DependencyInjection\Container->createService(Array, 'stream_wrapper.space') (Line: 179)
Drupal\Component\DependencyInjection\Container->get('stream_wrapper.space', 1) (Line: 462)
Drupal\Component\DependencyInjection\Container->Drupal\Component\DependencyInjection\{closure}(Object) (Line: 62)
Symfony\Component\DependencyInjection\ServiceLocator->doGet('stream_wrapper.space') (Line: 43)
Symfony\Component\DependencyInjection\ServiceLocator->get('stream_wrapper.space') (Line: 139)
Drupal\Core\StreamWrapper\StreamWrapperManager->getWrapper('space-assets', 'space-assets://images/space-logo-ai-event.svg') (Line: 112)
Drupal\Core\StreamWrapper\StreamWrapperManager->getViaUri('space-assets://images/space-logo-ai-event.svg') (Line: 101)
Drupal\Core\File\FileUrlGenerator->doGenerateString('space-assets://images/space-logo-ai-event.svg', 1) (Line: 59)
Drupal\Core\File\FileUrlGenerator->generateString('space-assets://images/space-logo-ai-event.svg') (Line: 290)
Drupal\Core\Template\TwigExtension->getFileUrl('space-assets://images/space-logo-ai-event.svg') (Line: 75)
__TwigTemplate_3aee87e8eeb0bb7f1799cb9b31f52c74->block_logo_block(Array, Array) (Line: 430)
Twig\Template->yieldBlock('logo_block', Array, Array) (Line: 44)
__TwigTemplate_3aee87e8eeb0bb7f1799cb9b31f52c74->doDisplay(Array, Array) (Line: 360)
Twig\Template->yield(Array) (Line: 89)
__TwigTemplate_3f44d5add3437f0a159f705bfd6204ff->block_site_header(Array, Array) (Line: 430)
Twig\Template->yieldBlock('site_header', Array, Array) (Line: 68)
__TwigTemplate_3f44d5add3437f0a159f705bfd6204ff->doDisplay(Array, Array) (Line: 360)
Twig\Template->yield(Array) (Line: 105)
__TwigTemplate_3b1b7980918ac89cd408037b7602b4c0->block_header_block(Array, Array) (Line: 430)
Twig\Template->yieldBlock('header_block', Array, Array) (Line: 47)
__TwigTemplate_3b1b7980918ac89cd408037b7602b4c0->doDisplay(Array, Array) (Line: 360)
Twig\Template->yield(Array, Array) (Line: 178)
__TwigTemplate_95c2e1f22d30dd27b118f219601fec10___669213426->doDisplay(Array, Array) (Line: 360)
Twig\Template->yield(Array) (Line: 56)
__TwigTemplate_95c2e1f22d30dd27b118f219601fec10->doDisplay(Array, Array) (Line: 360)
Twig\Template->yield(Array) (Line: 335)
Twig\Template->render(Array) (Line: 38)
Twig\TemplateWrapper->render(Array) (Line: 33)
twig_render_template('themes/custom/drupalaievent/apps/drupal/templates/layout/page.html.twig', Array) (Line: 348)
Drupal\Core\Theme\ThemeManager->render('page', Array) (Line: 491)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 248)
Drupal\Core\Render\Renderer->render(Array) (Line: 475)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 113)
__TwigTemplate_258093bd08c6f23ac9aaedaed107f026->doDisplay(Array, Array) (Line: 360)
Twig\Template->yield(Array) (Line: 335)
Twig\Template->render(Array) (Line: 38)
Twig\TemplateWrapper->render(Array) (Line: 33)
twig_render_template('themes/custom/drupalaievent/apps/drupal/templates/layout/html.html.twig', Array) (Line: 348)
Drupal\Core\Theme\ThemeManager->render('html', Array) (Line: 491)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 248)
Drupal\Core\Render\Renderer->render(Array) (Line: 158)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 638)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 153)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 111)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 186)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 76)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 53)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 28)
Drupal\Core\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 32)
Drupal\big_pipe\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 50)
Drupal\ban\BanMiddleware->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 36)
Drupal\Core\StackMiddleware\AjaxPageState->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object, 1, 1) (Line: 741)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Deprecated function: Creation of dynamic property Drupal\spaceds\StreamWrapper\SpaceStreamWrapper::$request is deprecated in Drupal\spaceds\StreamWrapper\SpaceStreamWrapper->getRequest() (line 122 of modules/contrib/spaceds/src/StreamWrapper/SpaceStreamWrapper.php).
Drupal\spaceds\StreamWrapper\SpaceStreamWrapper->getRequest() (Line: 111)
Drupal\spaceds\StreamWrapper\SpaceStreamWrapper->getExternalUrl() (Line: 103)
Drupal\Core\File\FileUrlGenerator->doGenerateString('space-assets://images/space-logo-ai-event.svg', 1) (Line: 59)
Drupal\Core\File\FileUrlGenerator->generateString('space-assets://images/space-logo-ai-event.svg') (Line: 290)
Drupal\Core\Template\TwigExtension->getFileUrl('space-assets://images/space-logo-ai-event.svg') (Line: 75)
__TwigTemplate_3aee87e8eeb0bb7f1799cb9b31f52c74->block_logo_block(Array, Array) (Line: 430)
Twig\Template->yieldBlock('logo_block', Array, Array) (Line: 44)
__TwigTemplate_3aee87e8eeb0bb7f1799cb9b31f52c74->doDisplay(Array, Array) (Line: 360)
Twig\Template->yield(Array) (Line: 89)
__TwigTemplate_3f44d5add3437f0a159f705bfd6204ff->block_site_header(Array, Array) (Line: 430)
Twig\Template->yieldBlock('site_header', Array, Array) (Line: 68)
__TwigTemplate_3f44d5add3437f0a159f705bfd6204ff->doDisplay(Array, Array) (Line: 360)
Twig\Template->yield(Array) (Line: 105)
__TwigTemplate_3b1b7980918ac89cd408037b7602b4c0->block_header_block(Array, Array) (Line: 430)
Twig\Template->yieldBlock('header_block', Array, Array) (Line: 47)
__TwigTemplate_3b1b7980918ac89cd408037b7602b4c0->doDisplay(Array, Array) (Line: 360)
Twig\Template->yield(Array, Array) (Line: 178)
__TwigTemplate_95c2e1f22d30dd27b118f219601fec10___669213426->doDisplay(Array, Array) (Line: 360)
Twig\Template->yield(Array) (Line: 56)
__TwigTemplate_95c2e1f22d30dd27b118f219601fec10->doDisplay(Array, Array) (Line: 360)
Twig\Template->yield(Array) (Line: 335)
Twig\Template->render(Array) (Line: 38)
Twig\TemplateWrapper->render(Array) (Line: 33)
twig_render_template('themes/custom/drupalaievent/apps/drupal/templates/layout/page.html.twig', Array) (Line: 348)
Drupal\Core\Theme\ThemeManager->render('page', Array) (Line: 491)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 248)
Drupal\Core\Render\Renderer->render(Array) (Line: 475)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 113)
__TwigTemplate_258093bd08c6f23ac9aaedaed107f026->doDisplay(Array, Array) (Line: 360)
Twig\Template->yield(Array) (Line: 335)
Twig\Template->render(Array) (Line: 38)
Twig\TemplateWrapper->render(Array) (Line: 33)
twig_render_template('themes/custom/drupalaievent/apps/drupal/templates/layout/html.html.twig', Array) (Line: 348)
Drupal\Core\Theme\ThemeManager->render('html', Array) (Line: 491)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 248)
Drupal\Core\Render\Renderer->render(Array) (Line: 158)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 638)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 153)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 111)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 186)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 76)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 53)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 28)
Drupal\Core\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 32)
Drupal\big_pipe\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 50)
Drupal\ban\BanMiddleware->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 36)
Drupal\Core\StackMiddleware\AjaxPageState->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object, 1, 1) (Line: 741)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
abstract 2nd fold homepage red gradient
Purpose

Oaisys is a space for people who build and learn through practice, sharing what worked, what didn’t, and what’s still in progress. Through talks, demos, and open conversations, practitioners from across disciplines explore how AI can be built in useful, transparent, and human ways.

 

Hosted by QED42 with FreelyGive, Oaisys brings together AI practitioners, open-source contributors, and Drupal AI leads. 

 

 

PRACTITIONERS IN FOCUS

The ones exploring, breaking, and refining what AI can become. Each of them brings a different way of thinking, designing, and building.

 

James

JAMES ABRAHAMS

Director, FreelyGive

Building bridges between Drupal AI and open collaboration

 

ACCESS RECORDING

Marcus

MARCUS JOHANSSON

Tech Lead, Drupal AI

Designing practical paths for AI in open systems

 

ACCESS RECORDING

Tanisha Arora

TANISHA ARORA

Creative Strategy Manager, Purpose

AI’s influence on climate, creativity, misinformation

 

ACCESS RECORDING

Mandar Nilange

MANDAR NILANGE

Founder, Rikonect

Production-Ready AI: Engineering Practices that Deliver Business Value

 

ACCESS RECORDING

Shibin Das

SHIBIN DAS

AI Practitioner at Factorial GmbH

FlowDrop: visual AI workflow orchestration for Drupal  

 

ACCESS RECORDING

Pralhad Sonar

PRALHAD SONAR

Cloud-Native SaaS Leader

AI-native infrastructure - the backbone of scalable AI integrations

 

ACCESS RECORDING

Vidhatanand

VIDHATANAND V

Founder, Fragmatic

One Repo, Many Agents: Turning “Vibe Coding” into a Team Sport

 

ACCESS RECORDING

rohit profile

ROHIT SRIVASTWA

Founder & MD, KAS Cyber Ventures

Secure the future of enterprise AI with intent and resilience

 

ACCESS RECORDING

Navin

NAVIN KABRA

Co-Founder & CTO, ReliScore

AI Evals – Rethinking Correctness for Programs When LLMs Are Involved

 

ACCESS RECORDING

Tanay

TANAY SAI

Senior Engineering Director - Nielsen Sports

Beyond the cloud: AI that runs in the browser 

 

ACCESS RECORDING

Poornima Bansal

POORNIMA BANSAL

Account Manager, AWS (Co-speaker)

The Agentic AI Playbook: Turning enterprise AI into action 

Priya Jathar

PRIYA JATHAR

Solutions Architect, AWS (Co-speaker)

The Agentic AI Playbook: Turning enterprise AI into action   

TRACKS AT OAISYS

Three spaces to explore how AI is being built, shared, and practiced across systems, disciplines, and communities.

Framework-Agnostic AI

A track for builders exploring open architectures.Real stories about tools and practices that make AI work across teams, systems, and disciplines.

presentation-graphic

Drupal AI

Drupal is quietly gaining a strong AI-edge. This track showcases that progress through keynotes, demos, and an AI sprint hosted by QED42 and FreelyGive.

event highlights image

BoF

Show-and-tell sessions and workshops. Out of the box, real problem-solving, and driven by what practitioners care about most.

event highlights image

SHOW & TELL

anand

ANAND TOSHNIWAL

Technical Architect, QED42

Accelerating Your Twig to SDC Transition with AI-Powered Automation

 

ACCESS RECORDING

Souvik

SOUVIK PAL

Senior Software Engineer, QED42

Building Event Horizon with AI: A Platform-Agnostic Drupal Analysis Suite

 

ACCESS RECORDING

sri harsha

SRI HARSHA UPPULURI

Full-Stack Engineer, QED42

AI-Assisted Editorial Workflows in Drupal Using ECA and Easy Email

pratik

PRATIK BHANDE

GenAI Engineer, QED42

Adaptive RAG: Learning to Respond Better Through Query Clustering and Reinforcement Learning

 

ACCESS RECORDING

saif

SAIF BAGMARU

AI Engineer, QED42

Taming LLM Hallucinations: From Parsing Chaos to Knowledge Distillation

Shubham

SHUBHAM VISHWAKARMA

Software Engineer, Nomura

LLM4S: Build Reliable AI Systems in the JVM Ecosystem

 

ACCESS RECORDING

Kannupriya

KANNUPRIYA KALRA

Software Developer, Sky

LLM4S: Build Reliable AI Systems in the JVM Ecosystem

 

ACCESS RECORDING

WEBINARS