build log: feb 02 — deliberate practice for serious artists

2026-02-02

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:

  1. auto-onboarding + completion reflection
  2. structured study guides + materials list
  3. practice suggestions
  4. 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

← back to build logs