Standardized Project Directory Structure Template

Last updated: 2026-04-11 Scope: Reusable across all Solanasis portfolio projects Owner: Dmitri Sunshine


Overview

Every project or company under Dmitri’s portfolio follows a consistent _{project}/ container pattern under _my/. This ensures AI agents, scripts, and humans can navigate any project predictably. The pattern separates website code, documentation, and automation into clearly named subdirectories, with consistent naming conventions for GitHub repos, Infisical secrets, and Cloudflare resources.


Directory Structure

The canonical layout for any new project:

_my/
  _{project}/                    # Container directory (underscore prefix)
    {project}-site/             # Website repo (Astro + CF Pages)
    {project}-docs/             # Documentation vault (Obsidian-compatible)
    {project}-scripts/          # Automation scripts (if needed)
    _screenshots/               # QA artifacts

Inside the site repo ({project}-site/):

{project}-site/
  src/
    components/
      icons/
    layouts/
    lib/
    pages/
      api/
    styles/
  public/
    favicon/
    images/
  tests/
    e2e/
  scripts/                      # One-time migration or build scripts
  .github/
    workflows/
  package.json
  astro.config.mjs
  tailwind.config.mjs
  tsconfig.json
  wrangler.toml
  CLAUDE.md
  .gitignore
  .env.example
  README.md

Naming Conventions

ItemConventionExample
Container directory_{project}/ (lowercase, hyphenated, underscore prefix)_conexus/
Site repo{project}-siteconexus-site
Docs repo{project}-docsco-nexus-docs
GitHub orgdzinreach for all reposdzinreach/conexus-site
Infisical folder/{project}-site//conexus-site/
CF Pages project{project}-siteconexus-site

Notes:

  • The container directory uses underscores to visually distinguish it from repo directories
  • Hyphens separate words within names (not underscores, except for _lasting_legacy which predates this convention)
  • The GitHub org is always dzinreach, not individual accounts

Existing Projects

ProjectContainerSite RepoDocs RepoDomainCF Account
Solanasis_solanasis/solanasis-sitesolanasis-docssolanasis.comSolanasis
Lasting Legacy_lasting_legacy/lasting-legacy-sitelasting-legacy-docslastinglegacyfoundation.orgPersonal
Mr. Sunshine_mrsunshine/mrsunshine-siteN/Amrsunshine.mePersonal
SelfInquire_selfinquire/selfinquire-siteN/Aselfinquire.comPersonal
Matchkeyz_matchkeyz/matchkeyz-siteN/Amatchkeyz.ioMatchkeyz
Co-Nexus_conexus/conexus-siteco-nexus-docs (existing)co-nexus.coPersonal

New Project Checklist

When setting up a new project, follow these steps in order:

  • Create _{project}/ container directory under _my/
  • Create {project}-site/ with Astro scaffolding (copy from lasting-legacy-site template)
  • Create {project}-docs/ if a docs vault is needed
  • Create GitHub repo at dzinreach/{project}-site
  • Create Infisical folder: python3 ~/_my/_solanasis/infisical/link_cf_account.py {project}-site
  • Create CLAUDE.md following the solanasis-repo-template pattern
  • Set up GitHub Actions secrets:
    • CLOUDFLARE_API_TOKEN (scoped to the correct CF account)
    • CLOUDFLARE_ACCOUNT_ID
  • Set up GitHub Actions variables:
    • SITE_URL (production domain with https://)
    • TURNSTILE_SITE_KEY (from Cloudflare Turnstile widget)
    • UMAMI_WEBSITE_ID (from Umami dashboard)
  • Copy .env.example from lasting-legacy-site and update values
  • Initialize git repo: git init && git remote add origin git@github.com:dzinreach/{project}-site.git
  • Run npm install and verify npm run build exits 0

CLAUDE.md Template Reference

Use the CLAUDE.md from lasting-legacy-site/CLAUDE.md as the reference template for new repos. Key sections to customize for each project:

  1. Design System (colors, fonts, domain)
  2. Secrets Management (Infisical folder name)
  3. Voice and Tone (project-specific content guidelines)
  4. Architecture Notes (any project-specific components or patterns)

Cross-References

  • Website setup playbook: playbooks/ai-native-website-setup-playbook.md
  • Setup cheat sheet: playbooks/website-setup-cheat-sheet.md
  • CF Pages cutover: playbooks/cf-pages-cutover-playbook.md
  • CF account map: 3 accounts documented in cf-pages-cutover-playbook.md