Knowledge Base Site Roadmap
The working plan for kb.costabile.com.au: architecture, content model, authentication, deployment, and future improvements.
Goal
Create a secure personal knowledge base at kb.costabile.com.au to house training material, reference guides, notes, checklists, and project documentation.
Current architecture
- Framework: Astro
- Architecture: JAMstack / static site generation
- Content: Markdown files in
src/content/guides - Hosting target: Cloudflare Pages free tier
- Domain:
kb.costabile.com.au - Source: GitHub repository
- Authentication: Cloudflare Zero Trust Access in front of the site
Why Astro
Astro is a strong fit because it produces fast static HTML, has excellent Markdown/content collection support, and can later grow into a richer site with search, components, tags, and integrations.
Authentication recommendation
Use Cloudflare Access rather than building app-level authentication.
Benefits:
- Works with a static site
- No custom login code to maintain
- Can restrict access to specific email addresses
- Uses one-time PIN or identity providers
- Free tier is enough for personal use
Content sections
Initial sections:
| Section | Purpose |
|---|---|
| Self-hosting | Docker, Cloudflare, GitHub, local services, backups |
| Finance | Firefly III, budgeting, Australian bank imports, tax prep |
| AI & Automation | Hermes, agents, prompts, workflows |
| Home Lab | Servers, networking, storage, monitoring |
| Personal Systems | Routines, checklists, decision logs |
| Reference | Cheat sheets, glossaries, snippets |
Content workflow
- Add a Markdown file under
src/content/guides. - Include frontmatter: title, description, section, tags, updated date.
- Commit to GitHub.
- Cloudflare Pages automatically deploys the new version.
Planned enhancements
- Site-wide search
- Tag pages
- Section landing pages
- “Recently updated” view
- Printable guide layout
- Private/public content distinction if needed
- Mermaid diagrams
- Callout blocks for warnings/tips
- Import existing standalone HTML guides into Markdown
Operational notes
Cloudflare Pages should be connected to the GitHub repository with:
- Build command:
npm run build - Output directory:
dist - Node version:
22
Cloudflare Access should protect:
- Application domain:
kb.costabile.com.au - Policy: allow only John’s email address initially
Done criteria
The site is ready when:
- The homepage loads locally
- The Docker guide is published as a guide page
- The site builds cleanly with
npm run build - The source repo exists in GitHub
- Cloudflare Pages deploys automatically from GitHub
kb.costabile.com.aupoints at the Pages project- Cloudflare Access requires authentication before viewing the site