build log: feb 02 — deliberate practice for serious artists
this build log is automatically generated
what i built today
i added plausible analytics to apprentice-web… privacy matters. then i kicked off a big refactor of the dream-backend to add all the apprentice learning features.
add plausible
i added plausible analytics to the apprentice-web site.
<link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>🎨</text></svg>" />
{/* Privacy-friendly analytics by Plausible */}
<script async src="https://analytics.reducibl.com/js/pa-xxxxx.js"></script>
<script
dangerouslySetInnerHTML={{
__html: `window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};plausible.init()`,
}}
/>
next.js requires dangerouslysetinnerhtml for inline scripts in the <head>… seems legit.
implement apprentice learning features
i’m starting a big refactor of the dream-backend to add all the apprentice learning features.
the plan is in the transcript… a four-phase rollout:
- auto-onboarding + completion reflection
- structured study guides + materials list
- practice suggestions
- user artwork uploads
i’m starting with the file edits and new files…
export const TOOL_SCOPES: Record<string, string[]> = {
generateLearningList: ["apprentice.lists:write"],
getSuggestions: ["apprentice.queue:read"],
submitAttempt: ["apprentice.queue:write"],
listSubmissions: ["apprentice.queue:read"],
};
lots of work ahead…
interested in working together? let's talk