Joel's notes 6037 notes About these notes

My personal website build process

Planted December 2025

Up: § My personal website

The build process takes exported content and prepares it for the Eleventy static site generator, reorganizing the folder structure and syncing to the final website source.

Folder Structure

Directory Purpose
~/Code/digital-garden-python-export Source (output from My personal website export process)
~/Code/digital-garden-ready Intermediate staging directory
~/Code/notes Final Eleventy site source

Algorithm

  1. Clean staging directory - remove and recreate digital-garden-ready

  2. Create directory structure in staging:

    • notes/
    • pages/
    • articles/
    • posts/
    • newsletters/
    • assets/
  3. First sync pass - rsync content to staging (files only, no directories):

    • export/clippingsready/notes
    • export/notesready/notes
    • export/spacesready/notes
    • export/website/pagesready/pages
    • export/website/articlesready/articles
    • export/website/postsready/posts
    • export/website/newslettersready/newsletters
  4. Asset sync - rsync assets including subdirectories:

    • export/assets/ready/assets
  5. Final sync to Eleventy - rsync to notes/src/ with delete flag (removes files no longer in source):

    • ready/articlesnotes/src/articles
    • ready/assetsnotes/src/assets
    • ready/newslettersnotes/src/newsletters
    • ready/notesnotes/src/notes
    • ready/pagesnotes/src/pages
    • ready/postsnotes/src/posts
  6. Run image uploader - execute ~/Code/digital-garden-scripts/image_uploader.py

  7. Clean site directory - remove and recreate notes/_site for fresh build

Key Design Decisions

  • Flattening content types - clippings, notes, and spaces all merge into a single notes/ directory in the final site
  • Using rsync with delete - ensures removed content is also removed from the website
  • Staging directory - provides a clean intermediate state before final sync
  • Separate image uploader - handles asset optimization/uploading as a distinct step