Cultivate
Student Success Tools · Case study
A personal learning environment: one offline-capable hub where a faculty member keeps a professional growth plan, resources, deadlines, and a classified AI-in-education news feed, so attention goes to learning rather than to managing where the learning lives.
If you are opening Cultivate on your own device, expect some links to look broken. That is by design, not a defect. It was built for one iPad, where the documents and videos are saved locally and the logged-in resources open normally. A visitor who is not signed in, or who is on a different device, will hit dead ends that work perfectly on the intended iPad.
1. Summary
Cultivate is a personal learning environment: one offline-capable hub where a faculty member keeps a professional growth plan, resources, deadlines, and a classified AI-in-education news feed, so attention goes to the learning rather than to managing where the learning lives. It is a single-user tool, in daily use, that collects nothing and runs entirely on the user’s own device.
2. Goal
Cultivate exists to hold one faculty member’s learning together in a single place. The problem it solves is not technical, it is cognitive. When resources live in bookmarks across three browsers, notes sit in another app, and deadlines sit in a calendar nobody opens, the effort of managing that scatter consumes the attention meant for the learning itself. Consolidating them into one hub lowers that extraneous load, in the sense Sweller’s cognitive load theory intends, so the next right action is visible without hunting for it.
It is a personal learning environment in the truest sense: a hub the learner curates and owns, not a closed institutional platform that owns the learner’s work. The one part that is connectivist is the news feed, a live network of sources kept current because AI in education moves too fast to hold in your head. The rest is intentionally simple. Cultivate organizes professional growth, it does not deliver or measure learning, and it does not connect people, so it is a personal learning environment, not a learning network.
3. Users and context
One faculty member, its author: a Digital Media Arts instructor building AI literacy deep enough to teach it, supporting a campus community of practice, and developing student-facing tools. It is designed around real working conditions, read between classes and offline while traveling, on an iPad and a laptop, where long lists and context switching carry a real cost. Being single-user is the point, not a limitation. That constraint is why it can stay this simple, and why it belongs to one learner by definition. Other educators are welcome to fork the architecture for their own goals; it is not a shared product and is not meant to become one.
4. How it works
Six linked HTML pages share one design system, one header, and one navigation pattern, with no backend, no login, and no build step. Each page loads on its own.
| Page | What it does, and why |
|---|---|
| Resources hub | The entry point: classified news feed, resource cards, a progress bar, and a link into the growth plan. It answers “what should I look at today” without a search. |
| Growth plan | A priority roadmap with real target dates, checkboxes, and deadline badges. Making the next step and its deadline visible is the intervention; hidden deadlines are the ones that slip. |
| Activity log | Fed automatically as tasks are checked off, with category badges and CSV export. It quietly produces the record a faculty evaluation plan needs and that almost nobody keeps by hand. |
| UX toolkit | A reference of design tools, vocabulary, and practice projects, the working library behind the teaching. |
| Conference page | A single working proposal: abstract, learning outcomes, and a preparation list, with the deadline surfaced. |
| Context block | A one-tap copy block that restores project context in a new AI session, so the tool and the AI stay in sync without re-explaining. |
The news feed
A curated pool of RSS sources is fetched each time the page is opened, nothing runs on a schedule, and each item is routed to the right tab by a keyword classifier, then cached locally for 24 hours so it stays readable with no connection. Because RSS endpoints block cross-origin requests, fetches fall through three public proxies in sequence; if a source fails on all three it is skipped silently and the feed degrades rather than breaking. This is the one fragile part, the public proxies are outside anyone’s control, and it is the weak point of the tool. Offline reliability is a design goal on purpose: the tool was built to work on an iPad in the air and in rooms with no reliable wifi.
No AI model runs inside Cultivate. AI helped build it, and the feed is routed by a plain keyword classifier, not a model, which keeps it fast, free, and fully offline. That is the intended posture across this portfolio: AI as scaffolding, not as the thing running underneath.
Requirements and acceptance criteria
Each requirement is one behavior. The checks beside it are what a builder or tester confirms before that requirement is called done. Status reflects what this document records as built.
| # | Area | Requirement | Done when | Status |
|---|---|---|---|---|
| R1 | Resources hub | The product must open on a resources hub that shows the classified news feed, resource cards, a progress bar, and a link into the growth plan. |
| Built |
| R2 | Growth plan | The product must show the growth plan as a priority roadmap in which each item has a target date, a checkbox and a deadline badge. |
| Built |
| R3 | Growth plan | The product must keep checkbox states and notes in the browser’s localStorage on the user’s own device. |
| Built |
| R4 | Activity log | The product must add an entry to the activity log automatically when the user checks off a task, with a category badge on the entry. |
| Built |
| R5 | Activity log | The user must be able to export the activity log as a CSV file. |
| Built |
| R6 | UX toolkit | The product must provide a UX toolkit page that presents a reference of design tools, vocabulary and practice projects. |
| Built |
| R7 | Conference page | The product must provide a conference page that holds one working proposal with its abstract, learning outcomes and preparation list, and shows the proposal deadline. |
| Built |
| R8 | Context block | The user must be able to copy the project context block to the clipboard with one tap. |
| Built |
| R9 | The news feed | The product must fetch its curated pool of RSS sources each time the page is opened, with no schedule or background job. |
| Built |
| R10 | The news feed | The product must route each fetched item to a feed tab using a keyword classifier and no AI model. |
| Built |
| R11 | The news feed | The product must send each RSS fetch through three public cross-origin proxies in sequence and skip a source silently when all three fail. |
| Built |
| R12 | The news feed | The product must cache the fetched feed locally for 24 hours so that it stays readable with no connection. |
| Built |
| R13 | Data, privacy, and governance | The product must run with no account, no analytics and no transmission of user data. |
| Built |
| R14 | Build and portability | The product must be delivered as six linked static HTML pages that share one design system, one header and one navigation pattern, with no backend and no build step. |
| Built |
| R15 | Build and portability | The product must remain usable offline on the intended iPad, including its locally saved documents and videos. |
| Built |
5. Data, privacy, and governance
Cultivate collects nothing. Checkboxes, notes, and the activity log live in the browser’s localStorage on the user’s own device; there is no account, no analytics, and no transmission of user data anywhere. No student data ever enters it, so there is no FERPA exposure. Notes, checkboxes and the activity log are stored only in this browser, so the user is responsible for keeping them.
6. Build and portability
Six linked HTML pages share one design system, one header, and one navigation pattern, with no backend, no login, and no build step, so the whole thing hosts as static files and each page loads on its own. Checkboxes, notes, and the activity log persist in the browser’s localStorage on the user’s own device. The news feed fetches a curated pool of RSS sources on each refresh, routes them with a plain keyword classifier, and caches them locally for 24 hours so the tool stays readable with no connection; because RSS endpoints block cross-origin requests, fetches fall through three public proxies in sequence and degrade silently if a source fails. No AI model runs inside Cultivate: AI helped build it, but nothing calls a model at runtime, which keeps it fast, free, and fully offline. The architecture is forkable, another educator can copy the structure for their own goals, and there is no key or account to carry across.
Dependencies
What has to be in place, and who provides it.
| Needed | Provided by | Needed for |
|---|---|---|
| Three public cross-origin proxies | Third-party proxy operators, outside the control of the product owner | R9 and R11 |
| The curated pool of RSS sources | The publishers of each feed, with the list curated by the product owner | R9 and R10 |
| Documents and videos saved locally on the intended iPad, and signed-in sessions for the linked resources | The user, on the intended iPad | R1 and R15 |
| Browser localStorage that has not been cleared | The user’s browser on the user’s own device | R3, R4, R5 and R12 |
| Static file hosting | The hosting provider | R14 |
7. Pilot and testing
Cultivate is not piloted, and it is not meant to be. It is a single-user personal tool in daily use, and its test is whether it holds up in real working conditions: read between classes and offline while traveling, on the intended iPad where the local documents and logged-in resources open normally. Validation is qualitative and continuous, does the next right action stay visible without hunting, and does the feed stay readable with no wifi, rather than a cohort study.
8. Definition of success
Cultivate succeeds when the next right action and its deadline are visible without hunting, when the feed and saved materials stay readable offline, and when the activity log quietly accumulates the record a faculty evaluation needs without the user maintaining it by hand. Because it is uninstrumented and single-user by design, success is simply that it stays in daily use and lowers the overhead of managing where the learning lives, not a number.
9. Rollout
There is no rollout. Cultivate is a personal learning environment and belongs to one learner by definition, so it is not headed for a cohort or a district deployment. Other educators are welcome to fork the architecture for their own goals. Explicitly out of scope: turning it into a shared or departmental platform, which would mean accounts, a backend, and a data agreement, and would convert a tool that collects nothing into one that collects something.
Out of scope
- Becoming a shared or departmental platform.
- Accounts, a backend, or sharing between users.
- A pilot, a cohort, or a district deployment.
- Delivering or measuring learning.
- Connecting people; it is a personal learning environment, not a learning network.
- Running an AI model at runtime.
- Analytics, instrumentation, or a server backup of local state.
- Holding any student data.
10. Open questions and risks
- The public proxies. The news feed depends on three public cross-origin proxies outside anyone’s control. They are the one fragile part, and if they fail the feed degrades rather than breaks.
- Local-only state. Checkboxes, notes, and the log live in localStorage, so a cleared browser can erase a year of notes. There is no server backup, by design.
- Off-device dead ends. Because documents and logged-in resources are saved on the intended iPad, a visitor on another device or not signed in hits dead ends that work on that iPad. This is by design, but it means the live page is not a general-audience artifact.
Questions to settle before the next build
- When the page is opened offline and the cached feed is more than 24 hours old, should the product show the old items, show nothing, or show a notice, and does a successful fetch on page open always replace the cache?
- Where are the list of RSS sources, the names of the feed tabs and the keywords for each tab defined, and where should an item go when it matches no tab or more than one?
- Which three public proxies are used, in what order, and what counts as a failure that moves the fetch to the next proxy?
- Is the laptop expected to show the same checkboxes, notes and activity log as the iPad, given that all state is kept in localStorage on a single device?
- What do the progress bar and the deadline badges calculate, and which fields and columns does an activity log entry and its CSV export contain?
11. Roadmap
If Cultivate grows it will be small, optional tinkering, never a platform: a quick add-a-resource input, and an export of all local state so a cleared browser cannot erase the notes and the log. Anything larger, accounts, a backend, or sharing, would cross the no-data line the tool exists to hold, so it stays off the map on purpose.