Prototyping a new kind of online course community platform

Part 18 of 20 in the Experiments in Vibecoding series.

On the plus side, your humble protagonist has finally figured out how to break out of “the only thing he blogs about is how he uses Obsidian.” Unfortunately, it’s because I appear to be firmly in the middle of a bout of “the only thing he blogs about is how he vibecodes some half-baked idea into a usable thing.”

A blog post in 2 parts:

  1. The Course Community Application
  2. The part about vibecoding and using frontier genAI tools despite everything

The Course Community Application

After my experiment last week in building a local-LLM “course coach” application that students could use to engage with their course materials, a few things happened:

  1. I realized that this is actually a pretty decent way to prototype these half-baked ideas into a form that can be interrogated beyond a blank whiteboard
  2. Brian Lamb shared a link to his Claude-Coded Open Learning Design Toolkit prototype he developed for TRU’s Open Press (which is absolutely AMAZING work! again, the power of a prototype to go beyond whiteboards)
  3. I came back to an idea I’ve had for a few years now - something that I started to figure out back when I was working on my dissertation - of how I would design a “Course Community” platform. Not an LMS. And, although it was out of reach waaaay back in the olden days of 2023, it might just be feasible now

So.

⌘+space Term
mkdir ~/Documents/Development/course-community
cd ~/Documents/Development/course-community
claude

I want to build a web application that will provide rich community interaction between students and instructors within a course. It’s not just a discussion board replacement - it’s a full community environment where people in a course can communicate, collaborate, co-create, give and receive feedback, and more. I want the application to be relatively portable - you can use PHP and SQLite - and it needs to integrate with Brightspace as an External Learning Tool using the LTI specification (which will also handle authentication and course info etc.). Use what you know of innovative and high-impact teaching and learning practices and develop a working prototype that we can try out in a course.

The “use what you know of innovative and high-impact teaching and learning practices” was intended to connect to the documents that I’ve primed my Claude account with.

And then I wondered what would happen if I asked it to refer to my dissertation when building the application, so I fed it the URL to my dissertation and told it to use the framework as guidance.

Claude chewed for a few minutes, asked for some clarification on how I wanted it to work, and then it produced a PHP application that I could deploy on my shared web hosting server. It needed a couple of tweaks, but it was basically up and running. It took me longer to figure out how to set up the LTI 1.3 connection on our Brightspace test server. But that works now too.

I came back with more ideas to add - what about a peer feedback tool? done. what about a collaborative whiteboard tool? OK. what about a place where students can collaboratively edit and publish documents? sure! what about a student response system? etc.

Notably, there is no gradebook or assignment submission tool. The application is aimed entirely at providing tools to use within the context of a course to foster community and collaboration between students and with their instructor. The LMS can do grades and assignments and quizzes, so there’s no need to duplicate that. And, with the LTI integration, this application can become part of the course within Brightspace.

The application is semi-public, running on my sandbox server. The code is on GitHub and I’ll keep that updated as I add features and fixes.

Some screenshots of the current version:

The Community Feed course homepage

The New Post interface

It's not Jamboard, but it's Jamboard-adjacent

Collaborative document editing and publishing

A peer feedback tool

A Pulse Check student response system

Instructor's Course Overview dashboard

The part about vibecoding and using frontier genAI tools despite everything

I am still profoundly conflicted. Here I am, cranking out an apparently endless stream of vibecoded AI slop tools and applications. Steeped in a tool that was built by stealing and plagiarizing, built by ablating semantic complexity in the relentless pursuit of Attention. And propping up the bubble while melting icebergs to do it.

I think there are 2 main reasons that keep me exploring these frontier models despite my discomfort:

  1. In my leadership role, I absolutely have to understand - to know, and to know, how these LLM and AI platforms work. What it’s like to really use them, not just reading about them or making decisions based on outdated info and assumptions. What’s possible, and what the limits are. Because if I don’t have a deep and current understanding, I can’t help to steer institutional policies and initiatives. I need to have this kind of experience to draw upon so I have credibility when talking with other leaders across the university. If I don’t earn that credibility, we’ll be at the mercy of vendors promising things that sound wonderful, and we won’t have any way to push back against the hype.
  2. superficially and selfishly, it’s fun. I can make stuff that would have taken me weeks/months/years to figure out on my own. I can prototype an idea in a couple of hours, share it for feedback, and then move on to another idea. That’s something that I’ve never been able to do in 30 years of building-and-managing. I’ve built big applications. Heck, I’ve built (among other things) 2 LMSs12, a learning object repository3, and was a core developer of a groundbreaking website authoring tool for use in universities and museums45. I’ve done the heavy lifting. And this feels fundamentally different. This feels more like… play?

Does that justify the theft and plagiarism and polar-bear-drowning? No. Of course not. If I could put the genie back in the bottle, I would. I’m not an “AI is inevitable” cheerleader. AI (in whatever form) isn’t/wasn’t inevitable. It’s also not going to go away. It will shift into something else. Into multiple something elses. Metastasize? Fracture? Some portion of it will continue to be useful, will become more useful. Some portion of it will continue to be a corrosive burden on humanity, will become even moreso.