CrispVanta.

Your workshop shelf

Fallows worth revisiting.

This private browser list keeps your selected courses close without creating an account.

Find another course
`; const footerHTML = ``; document.querySelector("header").innerHTML = headerHTML; document.querySelector("footer").innerHTML = footerHTML; async function renderFallows(){ const ids = JSON.parse(localStorage.getItem("crispvanta-fallows") || "[]"); const items = await fetch("./catalog.json").then(r => r.json()); const chosen = items.filter(x => ids.includes(x.id)); const box = document.querySelector("#fallows-list"); box.innerHTML = chosen.length ? chosen.map(x => `

${x.category}

${x.title}

${x.summary}

Remove
`).join("") : `

Your Fallows shelf is empty. Browse the catalog to save a course.

`; } document.addEventListener("click", e => { const a = e.target.closest("[data-remove]"); if (!a) return; e.preventDefault(); let ids = JSON.parse(localStorage.getItem("crispvanta-fallows") || "[]"); ids = ids.filter(id => id !== Number(a.dataset.remove)); localStorage.setItem("crispvanta-fallows", JSON.stringify(ids)); renderFallows(); }); renderFallows();