|
| 1 | +--- |
| 2 | +slug: day-one |
| 3 | +title: "Day 1: From Empty Folder to Live Site" |
| 4 | +authors: [tekoah] |
| 5 | +tags: [building-in-public, open-source] |
| 6 | +description: "The entire TKB Strategies open consulting company went from an empty folder to a live editorial site in a single day. Here's the full journey." |
| 7 | +--- |
| 8 | + |
| 9 | +import Mermaid from '@theme/Mermaid'; |
| 10 | + |
| 11 | +The entire TKB Strategies open consulting company went from an empty folder to a live editorial site in a single day. Three working sessions. Forty-six percent of an 82-task roadmap completed. A repository initialized, a GitHub Organization created, a premium editorial site designed and deployed, all in the open. |
| 12 | + |
| 13 | +This is what we built and how we built it. |
| 14 | + |
| 15 | +<!-- truncate --> |
| 16 | + |
| 17 | +## The Day in Numbers |
| 18 | + |
| 19 | +<Mermaid value={` |
| 20 | +pie title Project Completion — End of Day 1 |
| 21 | + "Phase 1 · Local Foundation (19)" : 19 |
| 22 | + "Phase 2 · GitHub Org (9)" : 9 |
| 23 | + "Phase 3 · Docusaurus Site (10)" : 10 |
| 24 | + "Remaining (44)" : 44 |
| 25 | +`} /> |
| 26 | + |
| 27 | +| Metric | Value | |
| 28 | +|--------|-------| |
| 29 | +| Phases complete or substantially complete | 3 of 9 | |
| 30 | +| Tasks completed | 38 of 82 | |
| 31 | +| Overall progress | 46% | |
| 32 | +| PRs merged | 4 | |
| 33 | +| Working sessions | 3 | |
| 34 | +| Site live at | [tkb-strategies.github.io/OpenStrategies](https://tkb-strategies.github.io/OpenStrategies/) | |
| 35 | + |
| 36 | +--- |
| 37 | + |
| 38 | +## Session 1 — Foundation |
| 39 | + |
| 40 | +**Phase 1: Local Repository Foundation** — *Complete (19/19)* |
| 41 | + |
| 42 | +Started with an empty folder in WSL. By the end of this session, the repository had a full directory structure for plugins, themes, frameworks, workshops, presentations, products, and documentation. Every directory received a `CLAUDE.md` file providing AI context so that Claude Code could assist effectively from the first interaction. Governance documents established the hard boundaries: what goes in the repo (open methodology), what never does (client data, credentials, engagement details). The `.gitignore`, `SECURITY.md`, and `CONTRIBUTING.md` encode those boundaries into the tooling itself. |
| 43 | + |
| 44 | +**Key artifacts:** |
| 45 | + |
| 46 | +- Root `CLAUDE.md` with architecture, code standards, deployment notes, and confidentiality boundaries |
| 47 | +- `docs/ROADMAP.md` — 9-phase, 82-task project plan |
| 48 | +- `docs/OPERATIONS-JOURNAL.md` — daily closeout log with structured template |
| 49 | +- `docs/STACK.md` — full technology stack documentation |
| 50 | +- `.gitignore` excluding secrets, client-prefixed files, database dumps, and build artifacts |
| 51 | + |
| 52 | +--- |
| 53 | + |
| 54 | +## Session 2 — Planning and Preparation |
| 55 | + |
| 56 | +**Roadmap and tracking infrastructure established.** |
| 57 | + |
| 58 | +The project plan grew from an initial sketch into a fully phased roadmap. Docusaurus was added as Phase 3 when we decided the GitHub Organization should have a public-facing documentation site, not just a code repository. Setup scripts were created for both the GitHub remote connection and the Docusaurus scaffold so that Phase 2 and Phase 3 kickoff would each be a single command. |
| 59 | + |
| 60 | +**Key decisions:** |
| 61 | + |
| 62 | +- Daily closeout format standardized with task IDs, decisions table, blockers, files changed, and next-session priorities |
| 63 | +- `.github/profile/README.md` authored pre-org-creation so it would deploy on first push |
| 64 | +- Adopted `feature/*` branching model with `main` as always-deployable production |
| 65 | + |
| 66 | +--- |
| 67 | + |
| 68 | +## Session 3 — Build and Ship |
| 69 | + |
| 70 | +**Phase 2: GitHub Organization** — *90% complete (9/10)* |
| 71 | + |
| 72 | +Created the `TKB-Strategies` GitHub Organization with the `OpenStrategies` repository. Connected the local repo, pushed `main`, configured branch protection (require PR before merge), stored FTP credentials as GitHub Secrets for future WordPress deployment, and enabled GitHub Pages with source set to GitHub Actions. |
| 73 | + |
| 74 | +**Phase 3: Docusaurus Public Site** — *77% complete (10/13)* |
| 75 | + |
| 76 | +This is where the day got interesting. |
| 77 | + |
| 78 | +The Docusaurus scaffold initially failed on the NTFS-mounted Windows filesystem. WSL could not complete the file permission operations. Rather than work around it, we made an operational decision to migrate the entire working tree to the WSL-native Linux filesystem. This eliminated the permission issues permanently and improved Git and npm performance. |
| 79 | + |
| 80 | +With the scaffold in place, we replaced every default component with a custom editorial design: |
| 81 | + |
| 82 | +- **Typography:** DM Serif Display for headlines and Lato for body, creating the contrast of a high-end impact report |
| 83 | +- **Color palette:** Extracted directly from the production site CSS, built around dark slate blue (`#345168`), gold (`#ffd088`), amber (`#ffb356`), warm parchment backgrounds, and cool gray accents |
| 84 | +- **Landing page:** Full-viewport cinematic hero, impact-report stat strip, editorial framework cards, dark philosophy quote section with film-grain texture, tools preview, and warm closing CTA with scroll-triggered reveal animations |
| 85 | +- **Documentation styling:** Gold-underlined h2 headings, amber sidebar active indicators, impact-report tables, and editorial blockquotes |
| 86 | +- **No stock images:** The design carries on typography, gradients, SVG dividers, and spatial composition alone |
| 87 | + |
| 88 | +A GitHub Actions workflow deploys the site automatically on every merge to `main`. |
| 89 | + |
| 90 | +--- |
| 91 | + |
| 92 | +## Architecture |
| 93 | + |
| 94 | +<Mermaid value={` |
| 95 | +flowchart TB |
| 96 | + subgraph LOCAL["Local Development"] |
| 97 | + WSL["WSL Ubuntu"] |
| 98 | + VSCODE["VS Code · WSL Mode"] |
| 99 | + AI["Claude Code + Codex"] |
| 100 | + end |
| 101 | + subgraph GITHUB["GitHub · TKB-Strategies"] |
| 102 | + REPO["OpenStrategies Repo"] |
| 103 | + ACTIONS["GitHub Actions"] |
| 104 | + PAGES["GitHub Pages"] |
| 105 | + end |
| 106 | + subgraph PROD["Production · Namecheap"] |
| 107 | + WP["WordPress / Divi"] |
| 108 | + MYSQL["MySQL"] |
| 109 | + end |
| 110 | + WSL -->|git push| REPO |
| 111 | + VSCODE --> WSL |
| 112 | + AI --> VSCODE |
| 113 | + REPO -->|merge to main| ACTIONS |
| 114 | + ACTIONS -->|build + deploy| PAGES |
| 115 | + PAGES -->|serves| DOCS["tkb-strategies.github.io/OpenStrategies"] |
| 116 | + REPO -.->|future: FTP deploy| WP |
| 117 | + WP --> MYSQL |
| 118 | +`} /> |
| 119 | + |
| 120 | +--- |
| 121 | + |
| 122 | +## Decisions That Shaped the Day |
| 123 | + |
| 124 | +| Decision | Why | What It Changed | |
| 125 | +|----------|-----|-----------------| |
| 126 | +| Migrate working tree to WSL-native filesystem | NTFS mount caused `EPERM` errors during Docusaurus scaffold | Eliminated all permission issues and improved Git and npm operations | |
| 127 | +| Git metadata in Linux filesystem with pointer file | WSL cannot do reliable chmod operations on NTFS | Reliable Git operations with a `.git` pointer at repo root | |
| 128 | +| `CLAUDE.md` at every directory level | Claude Code reads the nearest context file | AI-assisted development has correct architecture and boundary context from first interaction | |
| 129 | +| Scope repo to custom work only, not full WordPress | Core WordPress files remain managed by hosting | Clean repo boundaries and deployment aimed at specific `wp-content/` paths | |
| 130 | +| Docusaurus on GitHub Pages | Free, markdown-native, and builds from existing repo content | Frameworks publish automatically on merge to `main` | |
| 131 | +| DM Serif Display + Lato typography | Editorial contrast and Lato matches the production site | The Docusaurus site reads like the publication arm of TKB Strategies | |
| 132 | +| CSS-only visual design with no images | Fast loads, no licensing overhead, and GitHub Pages simplicity | Premium feel from typography, gradients, and spatial composition alone | |
| 133 | +| `.gitattributes` with LF enforcement | Line-ending drift was detected after WSL migration | Prevents CRLF/LF issues for future cross-platform work | |
| 134 | + |
| 135 | +--- |
| 136 | + |
| 137 | +## Where We Stand |
| 138 | + |
| 139 | +<Mermaid value={` |
| 140 | +flowchart LR |
| 141 | + P1["✅ Phase 1\nLocal Foundation\n19/19"] |
| 142 | + P2["🟡 Phase 2\nGitHub Org\n9/10"] |
| 143 | + P3["🟡 Phase 3\nDocusaurus\n10/13"] |
| 144 | + P4["⬜ Phase 4\nWP Staging\n0/9"] |
| 145 | + P5["⬜ Phase 5\nCI/CD\n0/9"] |
| 146 | + P6["⬜ Phase 6\nPlugin Dev\n0/5"] |
| 147 | + P7["⬜ Phase 7\nFrameworks\n0/7"] |
| 148 | + P8["⬜ Phase 8\nProducts\n0/6"] |
| 149 | + P9["⬜ Phase 9\nMCP\n0/4"] |
| 150 | + P1 --> P2 |
| 151 | + P2 --> P3 |
| 152 | + P2 --> P4 |
| 153 | + P2 --> P9 |
| 154 | + P3 --> P7 |
| 155 | + P4 --> P5 |
| 156 | + P5 --> P6 |
| 157 | + P6 --> P7 |
| 158 | + P7 --> P8 |
| 159 | +`} /> |
| 160 | + |
| 161 | +Three parallel tracks are now unblocked: |
| 162 | + |
| 163 | +- **Framework content (Phase 7)** — Start publishing Compassionate Agility, Liberation Mapping, and the Steward's Manual |
| 164 | +- **WordPress staging (Phase 4)** — Stand up `dev.tkbstrategies.com` for plugin development |
| 165 | +- **MCP integrations (Phase 9)** — Connect Claude Code to GitHub, Google Workspace, and external services |
| 166 | + |
| 167 | +--- |
| 168 | + |
| 169 | +## What Comes Next |
| 170 | + |
| 171 | +The foundation supports everything ahead: real framework content populating the site, the quiz plugin pulled into version control, a staging environment for WordPress development, CI/CD pipelines for automated deployment, and eventually digital products on Gumroad and Udemy with source material managed right here in this repo. |
| 172 | + |
| 173 | +The open consulting model is now publicly visible. The methodology, the tools, and the entire approach to building a consulting company are all version-controlled and available. |
| 174 | + |
| 175 | +The methodology doesn't have to stay locked behind proposals. Today we proved that. |
0 commit comments