Future Direction: field-notes Monorepo
This architecture is designed to eventually live inside a larger monorepo.
Target Structure
field-notes/ # Monorepo root
├── apps/
│ ├── ghostmonk/ # This app (renamed from turbulence)
│ │ ├── frontend/
│ │ └── backend/
│ │
│ ├── atomicballoon/ # Future app
│ │ ├── frontend/
│ │ └── backend/
│ │
│ └── docs/ # Documentation site
│
├── packages/ # Shared across apps
│ ├── ui/ # Shared component library
│ ├── core/ # Shared business logic
│ ├── config/ # Shared configs
│ └── types/ # Shared type definitions
│
└── package.json # Turborepo workspaceWhy This Matters Now
The current refactor keeps module boundaries clean so extraction is straightforward:
- Modules are self-contained - Each module can become a package
- Shared code is isolated -
shared/maps topackages/ - Clear public APIs - Each module exports through
index.ts
When to Extract
Extract to packages/ when:
- Code is used by both ghostmonk and atomicballoon
- The abstraction is stable and well-tested
- Benefits outweigh the coordination overhead
Keep in app when:
- Only one app uses it
- Still evolving rapidly
- App-specific customization needed