Josh Cannon
Back to projects

Case Study

AI Vols

AI Vols is UTK's AI student organization — a cross-major club teaching practical LLM and agent workflows through weekly workshops, built on custom infrastructure I wrote from zero.

Co-Founder & Engineer

2026

Next.js 16shadcn/uiTailwind CSSSupabasePythonpython-pptx

Problem

UTK had no student organization focused on practical AI work. Students across every major wanted to use LLMs, build with APIs, and understand where the field is going, but had no on-campus community, no shared resources, and no consistent place to learn the tools that are reshaping their industries.

Solution

I co-founded AI Vols, designed a repeatable weekly workshop format, and built the full-stack infrastructure — landing site, member sign-in app, Python slide-generation pipeline, Supabase backend — so the operational load does not scale linearly with the club.

Impact

Grew to 15+ members in the first semester across multiple majors; shipped a branded sign-in app, a Next.js club site, and an automated slide pipeline that removes hours of manual prep from every weekly meeting.

The Problem

Every major at UTK is about to be touched by AI, but there was no campus organization giving students a place to actually learn the tools. The gap was not interest — students kept asking each other where to start. The gap was signal: what tools matter, how to use them, and who to build with. A club is the answer, but a club that runs on Google Forms, ad-hoc slides, and a group chat does not scale past the first few meetings.

What I Built

Two things in parallel: the community and the infrastructure.

The community runs on a three-stage weekly format on Tuesdays at 6:30 PM — opening, main event, closing — so members always know what to expect. Topics so far include ChatGPT as a power user and coding agents; the goal is that a junior English major and a senior CS student both leave with something useful.

The infrastructure is where the engineering work lives. The new-member sign-in form is a Next.js 16 app with Tailwind and Supabase, deployed to Vercel under a permanent aivols-join.vercel.app alias so the same URL works across every meeting and every flyer. It collects name, email, major, year, phone, AI experience level, tools already used, goals, willingness to contribute, and referral source. Submissions go through a Next.js Server Action, which keeps the Supabase anon key server-side and keeps row-level security simple.

Slide decks are generated programmatically in Python using python-pptx and the qrcode library. Every deck embeds a QR code on slide two that points to the sign-in form, so recruitment is built into the content instead of bolted on at the end. Iterating slides in code is faster than dragging rectangles around Google Slides, and the layout stays consistent across weeks.

The Hard Parts

The hardest part was not technical. Founding a student organization means recruiting members with nothing to show them on day one, then convincing them to come back next week. The infrastructure choices were motivated by that constraint: a branded form feels more serious than a Google Form, a QR code in the slides removes one click of friction, and a consistent meeting format means nobody has to guess what tonight will look like.

On the build side, the non-obvious decision was picking Supabase over Google Forms early. Google Forms would have shipped faster, but the data would have been trapped in a spreadsheet. With Supabase, member data is queryable, the form is extensible to attendance tracking and project submissions later, and the same database can power the upcoming club website.

Current State

Early stage. 15+ members, two meetings complete, next meeting locked. The high-priority roadmap is a full club landing site (/resources, /events), day-of reminder system over SMS or email, and official registration as a UTK student organization through VolLink.

What I Learned

Building community is a separate skill from building software, and both are required for something like this to work. The code does not matter if nobody shows up, and recruiting does not compound if the operational load grows linearly with the club. Treating the club itself as a product — with users, a value proposition, a funnel, and a weekly release — is the only way to scale past founder energy.