Product Requirements Document Cultivate · Faculty AI Professional Development Dashboard A personal learning environment for community college faculty Version: v1.3 , Shipped · Status: Iteration in progress · March 21, 2026 Michelle B. · Digital Media Arts Faculty · Glendale Community College |
1. Executive Summary
The Problem Faculty pursuing serious professional development , AI literacy, community of practice leadership, new course development, conference submissions , have no purpose-built tool connecting daily tasks to long-term strategy. General productivity tools (Notion, Google Docs, calendar apps) require too much overhead and don’t surface institutional context (deadlines, rubrics, scoring criteria) alongside actionable next steps. |
The Solution Cultivate is a zero-dependency personal productivity system built for a community college faculty member navigating a complex, multi-year professional development plan. One always-accessible hub that surfaces the right information at the right time , resources, deadlines, news, PD roadmap, and active project workspaces in a single tool. |
Cultivate replaces scattered notes, bookmarks, and calendar reminders with a purpose-built system designed around how faculty actually work , on a iPad on a plane, between classes, or during office hours.
2. Origin & Motivation
Cultivate started as a personal problem. Like many faculty members, I had professional development goals that were genuinely important to me , learning AI deeply enough to teach it well, keeping up with a fast-moving industry, building new tools for students , but no system that helped me actually make progress on them.
The scattered tools problem My learning resources were everywhere , bookmarks across three browsers, PDFs in Google Drive, YouTube playlists, articles open in tabs I never closed. My notes were in Notion. My deadlines were in a calendar I barely checked. My project ideas were in a Notes app on my phone. Nothing talked to anything else. When I sat down to work on my professional development, I spent half the time just finding the things I needed. The overhead of managing the system was eating the time I had to actually learn. |
The offline problem I often work offline , on planes, in spaces with unreliable wifi, on an iPad away from my desk. Most productivity tools assume a constant internet connection. Notion requires it. Google Docs requires it. Even most RSS readers require it. I needed something that loaded fully offline, cached the news feed so I could read it without a connection, and didn’t lose my progress when the wifi dropped. |
The phone problem It is easy to pick up an iPad and scroll social media. It is not good for my mental health, and it doesn’t move me toward my goals. But it happens because it’s frictionless , the apps are right there, the content is endless, and the dopamine hit is immediate. I wanted something that was just as easy to open as social media, but actually useful. Something that felt good to interact with , not a chore, not a productivity guilt trip , just a calm, well-designed space where I could read something interesting, check a box, or spend five minutes on something that mattered. |
The ADHD factor I have ADHD. That means context-switching is expensive, long lists are paralyzing, and anything that requires me to remember where I put something is already broken. I needed a tool that surfaced the right thing at the right time without requiring me to go looking for it. Cultivate is designed around this reality: the most important deadline is always visible. The next action is always clear. The news feed refreshes itself. The progress bar shows me I’ve done something. It’s a system designed to work with how my brain actually works, not against it. |
This is how the dashboard came to exist , not as a product requirement handed down from above, but as a personal solution to a real problem. The fact that it turned into something worth sharing with others is a side effect of building it honestly.
2.1 How It Works (Process)
My first AI build, honestly framed Cultivate was my first real AI build, an experiment as much as a product. I still use it, but I am not actively maintaining it. What follows is how it actually works, not a roadmap for a polished system. |
The process started from a teaching idea, not a tech stack. Cultivate is built as a connectivist personal learning environment, a PLE, where the network of people, tools, and sources is the point rather than a single closed app. Everything is a single set of linked HTML pages hosted on GitHub Pages, no backend and no build step.
It is offline-first because of how I work. I originally made it to use on an iPad while traveling, on planes and in places with no reliable wifi, so it loads fully offline and keeps working when the connection drops.
The news feed is the most involved piece. It pulls a curated 62-source RSS feed through:
A custom keyword classifier that routes each article to the right tab
A 3-proxy fetch waterfall so feeds load even when one proxy fails or blocks CORS
Local caching so the classified articles are readable offline after the first load
From there it was iterative. I kept using it, found what was annoying or broken, and revised. That cycle is what carried it to v1.3.
3. Product Vision
3.1 Vision Statement
What if your professional development plan, learning resources, deadline calendar, and project workspaces all lived in one place , accessible anywhere, always current, always yours?
Cultivate is a single-faculty PLE (Personal Learning Environment) that is also a reference architecture: every variable can be changed to rebuild this tool for a different user, institution, or goal.
3.2 Product Goals
| # | Goal | Metric |
| G1 | Single source of truth , consolidate all PD resources, plans, and deadlines into one system | All 6 pages functional; no broken links |
| G2 | Deadline visibility , surface time-sensitive deadlines prominently with visual urgency indicators | Warnings visible on hub + plan pages |
| G3 | Persistent progress state , checkbox completion survives browser sessions without login or backend | localStorage persists across sessions |
| G4 | Zero-dependency portability , static HTML deployable to GitHub Pages with no build step, server, or login | Works offline; deploys via git push |
| G5 | Professional design system , consistent typography, color palette, and navigation across all 6 pages | Shared :root CSS vars; identical header on all pages |
| G6 | Adaptable architecture , key variables can be changed to rebuild for a different user or institution | Documented variable map in Section 4.2 |
4. Users & Context
4.1 Primary User
v1.0 was designed for a single primary user. Understanding this persona is essential when adapting the system for a different audience.
| Attribute | Detail |
| Role | Digital Media Arts Faculty, Glendale Community College (GCC), Maricopa District, Arizona |
| Goals | Build AI Community of Practice at GCC; develop AI + student success tools; present at EdTech conferences |
| Pain Points | No institutional tool to track PD; key deadlines scattered across email and calendar; no system for logging completed activities |
| Technical Context | Uses Canvas LMS; accesses tool primarily via iPad and laptop; comfortable with HTML/GitHub Pages; uses Claude for AI-assisted development |
| Time Horizon | March 2026 onward , ongoing professional development and tool building |
4.2 Adaptation Notes , Who Else Could Use This?
This architecture is designed to adapt. Below are the key variables to change when rebuilding for a different user.
| Variable | This Product | What to Change |
| Audience | Single faculty member | Team, department, student cohort, new hire cohort |
| Goal type | Professional development | Onboarding, course completion, career readiness, job search |
| Time horizon | Ongoing / multi-year | Semester, academic year, program duration |
| Deadlines | Conference CFPs, course development | Course due dates, application deadlines, cohort milestones |
| Resource types | Courses, videos, articles, conferences | Tutorials, job postings, portfolio prompts, mentors |
| Persistence | localStorage (single user, no login) | If multi-user: add auth + database backend |
| Hosting | GitHub Pages (free, static) | Same, or LMS integration (Canvas), or internal server |
5. System Architecture
5.1 Page Map
Cultivate is 6 interconnected HTML pages. Every page shares the same design system, header pattern, and navigation. Each page is independently loadable.
| Page | File | Purpose | Key Features |
| AI Resources Hub | index.html | Central dashboard. Entry point for all sections. | News feed, resource cards, progress bar, daily reading buttons, simplified PD dashboard link |
| PD Plan | pd-plan.html | 9-priority roadmap with real target dates. | Checkbox tasks, progress bar, collapsible phases, deadline badges |
| Mesa Summit | mesa-conference.html | Single-conference proposal page. | Date urgency banner, session abstract, learning outcomes, prep list |
| PD Log | completed.html | Activity log fed by hub checkboxes. | Auto-populated from hub, category badges, CSV export, summary stats |
| UX Toolkit | ux_toolkit.html | Reference page for UX and design tools. | Tool stack cards, vocabulary reference, practice projects, newsletters |
| Claude Context Prompt | Footer of index.html | Collapsible prompt block in the page footer. One-tap copy button. Paste into a new Claude chat to restore full project context without re-explaining tools, goals, preferences, and design system. | Collapsible toggle + copy button |
5.2 Technology Stack
HTML5 / CSS3 / Vanilla JavaScript , no frameworks, no build step
CSS Custom Properties (:root design tokens) , full design system in one place
localStorage API , persistent checkbox and note state across sessions
RSS via three-proxy waterfall (rss2json → allorigins → corsproxy.io)
51-source shared RSS pool , keyword classifier routes articles to tabs
Top 15 articles per tab , classified pool cached to localStorage (24h TTL) for offline access
Google Fonts (Lora + DM Sans) , typography system matching the floral design palette
GitHub Pages , free static hosting, deploys via git push
No backend. No database. No login. No dependencies to install or update.
6. Design System
6.1 Typography
All pages use the same two-font system, matching the broader site typography:
| Role | Font | Usage |
| Display / Headings | Lora (serif) | Page titles, card headings, wordmark, section eyebrows |
| Body / UI | DM Sans (sans-serif) | Body text, labels, navigation, buttons, form elements |
| Base size | 15px | All pages use 15px as the root font size |
6.2 Color Palette
All 6 pages share identical design tokens defined in a :root CSS block. Changing any token updates the entire site.
| Token | Value | Usage |
| --plum | #7a5080 | Primary brand color , headers, active states, buttons, nav links |
| --sage | #6b8f6e | Secondary , Student tool (Render), success states, secondary actions |
| --rose | #c4929e | Accent , italic wordmark text, decorative botanical elements |
| --gold | #b8956a | Warning/highlight , deadline alerts, demo badges |
| --paper | #faf7f2 | Background , main page background |
| --warm | #f2ebe4 | Surface , header background, card hover states |
| --ink | #3a2e3f | Text , primary body text |
| --muted | #8a7e7a | Secondary text , taglines, captions, helper text |
7. RSS News Feed
7.1 Overview
The AI Resources Hub includes a live RSS news feed drawing from 51 curated sources. This is one of the most technically complex features of the tool.
7.2 Architecture
All 51 sources are fetched for every tab refresh , no source is tab-specific
A keyword classifier routes each article to the most relevant tab
homeTab is a tiebreaker only , articles go to a specific tab when keywords match
Top 15 articles per tab are displayed
The classified pool is cached to localStorage (ai_hub_pool_v2, 24h TTL) for offline access
7.3 Proxy Waterfall
Because RSS feeds don’t support CORS, the tool uses a three-proxy waterfall:
Primary: rss2json API
Fallback 1: allorigins.win
Fallback 2: corsproxy.io
If all three fail for a given source, that source is skipped silently. The feed degrades gracefully.
8. Open Questions & Future Directions
| Question | Priority | Notes |
| Should Cultivate be adapted for team or departmental use? | Medium | Would require auth + backend. Current single-user localStorage model doesn’t scale to multi-user. |
| Can the RSS classifier be improved with AI? | Medium | Current classifier is keyword-based. Claude API could improve article routing accuracy. |
| Should the PD Log support richer activity types? | Low | Currently text + category. Could expand to include hours, evidence links, reflection prompts. |
| Can Cultivate serve as a template for the AI CoP at GCC? | Medium | The architecture is intentionally adaptable. A stripped-down version could be shared with CoP members. |
| Should there be a mobile-optimized view? | Low | Currently responsive but not mobile-first. RSS feed and resource cards work on iPad. Phone experience could be improved. |
| Should Cultivate be converted to a Claude artifact for easier in-place updates? | Medium | Current workflow requires downloading files, editing in Claude, and re-uploading to GitHub Pages. An artifact version could include per-section “update” buttons that let Claude add links, courses, or resources in place without the download/upload cycle. Persistent artifact storage (window.storage API) would preserve state across sessions. Same conversion path as Render’s demo version , swap localStorage to artifact storage, ensure fonts and external assets work in the sandbox. Would make Cultivate feel more like a living tool and less like a static site. |
| Should Cultivate support a quick-save bookmarking feature for resources found mid-session? | High | Current model requires uploading the HTML file to Claude to add any resource. A quick-save input (title + URL + category) would let Michelle bookmark something found mid-session without a GitHub round-trip. Three persistence options explored: (1) localStorage , browser-specific, works offline, gone if browser data cleared; (2) Google Sheets as a lightweight backend , form on the page writes a new row via API, readable from any device, no new account needed; (3) Airtable , same pattern, slightly more structured, but adds a dependency. Notion is also a candidate. Google Sheets is the lowest-friction starting point given existing Google ecosystem use. |
9. Roadmap
| Milestone | Status | Notes |
| v1.0 , Core tool shipped | ✓ Complete | All 6 pages functional. RSS feed live. localStorage persistence working. GitHub Pages deployed. |
| v1.3 , RSS hardening + source cleanup | ✓ Complete | Offline RSS cache, keyword classifier refinement, 51-source pool, broken link fixes. |
| v1.4 , PD Log improvements | In progress | March 21, 2026: Videos section removed (content preserved); Daily Reading pill button strip added (Medium, Substack, NYT, Atlantic, Chronicle, EDUCAUSE, Nielsen Norman, TLDR, YouTube, EDUCAUSE Webinars); RSS trimmed from 62 to 51 sources (NYT, Atlantic, Chronicle, EDUCAUSE Review, NNG, EdSurge moved to buttons); PD plan section on index simplified to dashboard banner; AFIT added to conferences and CoP sections; Coursera AR/VR course added to Trainings. |
| v2.0 , AI integration | Planned | Claude API integration for article summarization, resource recommendations, and PD plan generation. |
| Adaptation guide | Planned | Documentation for rebuilding this tool for a different user, institution, or goal context. |
Appendix: Key References
Cultivate (live demo): singletrackmom.github.io/index.html
GitHub repository: singletrackmom.github.io
AI CoP Resources: singletrackmom.github.io (linked from hub)
Mesa Summit proposal (if applicable): singletrackmom.github.io/mesa-conference.html
UX Toolkit: singletrackmom.github.io/ux_toolkit.html