System Architecture
The IoT Blog project is architected as a decoupled system spanning four distinct repositories. This separation of concerns ensures security, maintainability, and clarity.
ποΈ Repository Overview
Section titled βποΈ Repository Overviewβ1. blog-code (UI Engine & Theme)
Section titled β1. blog-code (UI Engine & Theme)β- Role: The core logic, Astro components, and styling theme.
- Access: Public.
- Details: This is the βbrainβ of the blog. It defines how posts are rendered, the search functionality, and the overall look and feel (based on the Astrowind theme).
2. blog-content (Data & Assets)
Section titled β2. blog-content (Data & Assets)β- Role: Your actual blog posts (.md files) and images.
- Access: Private.
- Details: Keeps your personal data separate from the code. The
blog-codeengine syncs content from here during the build process.
3. blog-docs (Technical Documentation)
Section titled β3. blog-docs (Technical Documentation)β- Role: This documentation site itself.
- Access: Public.
- Details: Documents how to use, configure, and maintain the blog system. Built with Starlight.
4. blog-comments (Interaction Data)
Section titled β4. blog-comments (Interaction Data)β- Role: Stores comment data and configuration.
- Access: Private.
- Details: Used for managing user interactions and feedback separate from the main content.
π How it works together
Section titled βπ How it works togetherβWhen you run ./bin/preview or ./bin/deploy from the blog-content repository:
- It triggers a sync process.
- It pulls the latest theme from
blog-code. - It validates images and content.
- It builds a static site that combines your private content with the public engine.