From sales friction to AI product system
Causeway is an education platform used by seven medical schools internationally. This is how a commercial bottleneck became a live AI course-generation layer — and what it took to ship it inside an existing product.
The problem
The product was valuable but hard to demonstrate quickly. Universities already had source material; Causeway's value depended on the effort of turning that material into interactive learning experiences. That created friction in three places:
- Sales conversations were too abstract
- Educators had to imagine the transformed version of their own material
- Marketing assets couldn't speak to the pain points of specific customer profiles
Research and insight
I researched educator discussions across Reddit, Quora, and academic forums to understand the recurring frustrations around course creation and EdTech adoption. The insight was that the product needed a faster self-serve value moment: educators should be able to upload existing content and see it converted into interactive learning material.
The same system could feed marketing — generated examples showing concrete value against specific pain points, rather than generic feature descriptions. One build, two jobs.
What I built
Live single-element generation
AI generation for individual interactive learning elements — MCQs, open questions, word match, and ordered lists — inserted directly into the existing Summernote authoring workflow. Live with paying institutional customers.
Document-to-course generation
A larger AI service where educators upload existing materials and have them converted into structured interactive course content — the Gamma-style upload-and-transform experience, applied to institutional teaching material. Currently running on development infrastructure for testing.
The integration work that made it real
- Python AI service integrated with the existing Laravel application
- Structured outputs enforced with Pydantic models
- Document ingestion, extraction, chunking, embedding, and retrieval
- CRM integration via API; Stripe commercial flows
- Logfire observability around generation behaviour
Current work: rebuilding the platform
As the work progressed, I concluded that the existing codebase needed a rebuild to address security concerns and provide a stronger foundation for further AI development. That decision expanded the scope from adding AI features to modernising the platform itself.
I am using Claude Code to develop two alternative implementations: one in Laravel 13 and one in TypeScript. We intend to select one for the product, with Laravel currently the likely choice. Both builds follow shared specifications, with automated checks, browser tests and comparisons against the existing product to preserve intended behaviour while allowing each stack to use its own framework conventions. The rebuild is in progress, roughly halfway through by my current estimate. The existing Causeway platform remains in production.
Model and provider evaluation
I tested OpenAI, Claude, and Gemini against the single-element generation workflow. The live path used OpenAI, chosen on observed workflow fit, output quality, and reliability for this specific task.
Model choice should come from task-specific evals and product constraints — not provider preference.
Status
Single-element generation
Live with paying institutional users
Document-to-course
Testing on development infrastructure
Platform rebuild
In progress — Laravel 13 and TypeScript alternatives
Code
Private product repos — happy to walk through architecture and anonymised workflow
Why this project
It's the clearest example of how I work: start from an ambiguous commercial problem, research the actual users, propose the product direction, build the AI system, integrate it into brownfield code under real customer and platform constraints — and connect the output back to sales and marketing.