pages/: Next.js route entry (getStaticProps/getStaticPaths)themes/: Theme implementations (UI + theme config)components/: Cross-theme reusable componentslib/: Core logic (data, cache, utilities, config read)conf/: Split config files aggregated byblog.config.js__tests__/: Unit testsscripts/: Engineering scripts.github/: Issue/PR templates and collaboration metadata
blog.config.js: aggregated config entrylib/config.js:siteConfig()read logic (with priority)lib/db/SiteDataApi.js: core site-data assemblyCONTRIBUTING.md: external contribution entrydocs/README.md: docs navigation (zh)docs/README.en.md: docs navigation (en)
- Global rules: prefer
lib/db/orlib/utils/ - Theme visuals: prefer
themes/<theme>/ - New config keys: add in
conf/*.config.js, aggregate fromblog.config.js - Avoid copying same business logic across many
pages/*