Available for new projects in 2026 - Available 2026 - Get in touch

🦞 Start Your OpenClaw Monorepo β€” Your AI Assistant Needs One

A personal take on applying monorepo principles to an AI-powered life workspace

🦞 Start Your OpenClaw Monorepo β€” Your AI Assistant Needs One

With the emergence of AI assistant tooling β€” OpenClaw, Claude Code, and other agentic coding tools β€” we’re starting to use them for everything. Not just professional work, but personal life projects too: managing a todo list, writing a blog, planning a garden, tracking training. It’s incredibly powerful β€” but after some time, things get complicated to manage.

It turns out that monorepo principles β€” the same ones used in enterprise software β€” can help here too. Conventions, project boundaries, shared infrastructure: these ideas aren’t just for large teams. They’re genuinely useful for structuring a personal AI workspace, even for side projects.

Here’s how I organized mine.


πŸ€” AI Assistants Make Everything Faster… Even the Mess

AI-powered tools make spinning up new projects trivially easy. But they also accelerate the mess.

Everything is mixed together β€” projects, memories, skills all tangled up

Without structure, everything is mixed together. Projects, memories, skills β€” all tangled in a single workspace with no boundaries.

Here’s what I ran into:

  • Everything is mixed together β€” The AI loads context for all your projects in one session. Asking about your blog? It’s also thinking about your garden planting calendar. Asking about your todo? It’s loading your running training plan. Unrelated memories compete for attention.
  • Token waste β€” Every session, your assistant loads context. When projects are scattered, it loads everything or nothing. There’s no way to say β€œjust focus on this one project.” You’re burning tokens on irrelevant context.
  • No reusability β€” You build a skill for one project (say, generating images for your blog). Another project needs images too. But the skill lives in a different repo, with different config. You end up rebuilding it.
  • Lost context between sessions β€” AI assistants wake up fresh. Without a structured place to store memory, decisions, and project history, you’re explaining the same things over and over.

AI can absolutely help with maintenance β€” but only if there’s a structure in place first. Without it, everything gets mixed up very quickly. Projects pile on top of each other, context bleeds across unrelated tasks, and your assistant spends more time confused than productive.


🧠 A Monorepo Can Help

Monorepo principles can really help organize this. Structure, conventions, shared tooling and components, unified task execution, caching, project boundaries β€” these concepts translate directly to an AI workspace.

AI Monorepo hub β€” shared memory, selective context, reusable skills, cron automation, Nx build

A monorepo gives your AI assistant a map β€” not just files. It knows where things are, what belongs to what, and how to navigate without loading the entire world into memory.

I found that the same philosophy applies really well to an AI workspace:

  • Shared memory β€” One place for your assistant to read and write context across sessions
  • Selective context β€” Each project has its own .openclaw/ config, so the assistant only loads what’s relevant to the current task
  • Reusable skills β€” Build a skill once (image generation, project scaffolding), use it across all projects
  • Consistent conventions β€” Same structure everywhere means less confusion, faster onboarding for your AI
  • Scheduled automation β€” Cron jobs that run across projects: reminders, periodic checks, daily briefings

πŸš€ Real Life Use Cases

Here are some examples of projects I am running today in my monorepo.

πŸ“ Todo System

I am not using any external app anymore. Just the file system and let my OpenClaw do the job for me. I can just send a message on WhatsApp and tasks are created or completed. A morning cron reminds me what’s due.

πŸ’Ό smartsdlc.dev β€” Portfolio & Blog

My personal website, living in the monorepo. The AI helps me implement the app and its design, write blog content with a consistent style guide, and generate a CV as PDF from structured data.

smartSDLC.dev Jonathan Gelin | Developer Experience Architect

πŸƒ Trail Running β€” Training & Goals

I now use the monorepo to support my trail training and goals. Every morning, it reminds me what today’s workout is. Every evening, it loads my Strava data, analyzes the session, and adapts the training plan accordingly. It also helps with nutrition advice tailored to training load.

🌱 Potager β€” Garden Management

Planting calendar based on zone and season, daily reminders for garden tasks (watering, harvesting), seed inventory tracking. The AI cross-references weather forecasts and suggests companion planting.

The pattern is always the same: a project folder, an .openclaw/ config, project-specific skills, cron automations, and shared global skills. The details of each β€” skills, crons, data β€” live in the monorepo structure below.


πŸ“ The Monorepo Structure

Here’s what the workspace looks like:

~/dev/life/
β”œβ”€β”€ .openclaw/                        # 🧠 Global AI config
β”‚   β”œβ”€β”€ AGENTS.md                     # How the assistant behaves
β”‚   β”œβ”€β”€ SOUL.md                       # Personality & boundaries
β”‚   β”œβ”€β”€ USER.md                       # About me
β”‚   β”œβ”€β”€ MEMORY.md                     # Long-term memory
β”‚   β”œβ”€β”€ HEARTBEAT.md                  # Periodic check config
β”‚   β”œβ”€β”€ memory/                       # Daily notes & topic memories
β”‚   β”‚   β”œβ”€β”€ 2026-01-30.md
β”‚   β”‚   └── ...
β”‚   β”œβ”€β”€ crons/                        # ⏰ Global cron definitions
β”‚   β”‚   └── morning-briefing.md       # Daily briefing (calendar + weather + tasks)
β”‚   └── skills/                       # Global skills (shared across projects)
β”‚       └── add-project/              # πŸ†• Scaffold a new project in the monorepo
β”‚
β”œβ”€β”€ projects/
β”‚   β”œβ”€β”€ todo/                         # πŸ“ Todo system
β”‚   β”‚   β”œβ”€β”€ .openclaw/
β”‚   β”‚   β”‚   β”œβ”€β”€ AGENT.md
β”‚   β”‚   β”‚   β”œβ”€β”€ crons/
β”‚   β”‚   β”‚   β”‚   └── rappel-matin.md   # Daily 7:30 AM β€” WhatsApp todo reminders
β”‚   β”‚   β”‚   └── skills/
β”‚   β”‚   β”‚       └── todo/             # Parse, update, manage tasks in TODO.md
β”‚   β”‚   └── data/
β”‚   β”‚       └── TODO.md               # Task list (pending + completed)
β”‚   β”‚
β”‚   β”œβ”€β”€ pro/                          # πŸ’Ό Professional projects
β”‚   β”‚   β”œβ”€β”€ .openclaw/
β”‚   β”‚   β”‚   β”œβ”€β”€ AGENT.md
β”‚   β”‚   β”‚   └── skills/
β”‚   β”‚   β”‚       β”œβ”€β”€ write-blog-article/  # Draft & edit articles with style guide
β”‚   β”‚   β”‚       β”œβ”€β”€ blog-images/         # Generate images via Gemini API
β”‚   β”‚   β”‚       └── cv-pdf/              # Generate CV as PDF from structured data
β”‚   β”‚   β”œβ”€β”€ data/
β”‚   β”‚   β”‚   └── content-backlog.md    # Article ideas & backlog
β”‚   β”‚   └── apps/
β”‚   β”‚       └── smartsdlc/            # Website source code
β”‚   β”‚           └── src/
β”‚   β”‚
β”‚   β”œβ”€β”€ running/                      # πŸƒ Trail running tracker
β”‚   β”‚   β”œβ”€β”€ .openclaw/
β”‚   β”‚   β”‚   β”œβ”€β”€ AGENT.md
β”‚   β”‚   β”‚   β”œβ”€β”€ crons/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ morning-workout.md   # Daily AM β€” today's workout reminder
β”‚   β”‚   β”‚   β”‚   └── evening-strava.md    # Daily PM β€” load & analyze Strava data
β”‚   β”‚   β”‚   └── skills/
β”‚   β”‚   β”‚       β”œβ”€β”€ training-plan/       # Generate & adapt weekly training plans
β”‚   β”‚   β”‚       β”œβ”€β”€ nutrition/           # Nutrition advice for training load
β”‚   β”‚   β”‚       └── strava-analysis/     # Analyze Strava activities & trends
β”‚   β”‚   └── data/
β”‚   β”‚       └── training-plan.md      # Current training plan & history
β”‚   β”‚
β”‚   └── potager/                      # 🌱 Garden management
β”‚       β”œβ”€β”€ .openclaw/
β”‚       β”‚   β”œβ”€β”€ AGENT.md
β”‚       β”‚   β”œβ”€β”€ crons/
β”‚       β”‚   β”‚   └── garden-tasks.md      # Daily β€” watering & harvest reminders
β”‚       β”‚   └── skills/
β”‚       β”‚       └── planting-calendar/   # Seasonal planting by zone & weather
β”‚       └── data/
β”‚           └── tasks.md              # Garden tasks & planting calendar
β”‚
β”œβ”€β”€ nx.json                           # ⚑ Nx workspace config
β”œβ”€β”€ package.json                      # Root dependencies
└── .github/workflows/ci.yml         # πŸš€ Build & deploy all projects

Every project follows the same convention:

  1. projects/[name]/.openclaw/AGENT.md β€” Project-specific context for the AI
  2. projects/[name]/.openclaw/skills/ β€” Skills that only make sense for that project
  3. projects/[name]/.openclaw/crons/ β€” Cron definitions for that project, loaded dynamically by OpenClaw
  4. projects/[name]/data/ β€” Each project owns its data
  5. projects/[name]/apps/ β€” Applications for that project (website, dashboard, etc.)

The root .openclaw/ holds everything global: memory, identity, shared skills, global crons, and heartbeat config. OpenClaw discovers and loads project skills, crons, and memory by scanning the projects/ directory structure.


πŸ”‘ Why This Structure Matters

Selective Context

Selective context β€” the AI loads only the relevant project

Selective context β€” the AI loads only the relevant project, keeping noise out and tokens low.

When I ask my AI about garden tasks, it loads the potager project context β€” not my blog writing style guide. When I work on a blog article, it loads the writing skills and design system β€” not my planting calendar.

In a scattered setup, the AI loads everything or guesses what’s relevant. In a monorepo with .openclaw/ boundaries, it navigates straight to the right context. Less noise, better answers, fewer tokens.

Composable Skills

Composable skills β€” global skills shared across projects, local skills stay local

Global skills are shared across projects. Local skills stay where they belong.

Global skills work everywhere. The add-project skill, for example, helps scaffold a brand new project in the monorepo β€” it asks about the project name, whether an app is needed, what skills and crons to set up, and generates the full structure following the conventions. That way, every new project starts right.

Project skills stay local. write-blog-article only makes sense for smartsdlc. training-plan only makes sense for running. No contamination between projects.

Cron: Your AI on Autopilot

Cron automation β€” your AI works for you in the background

Cron turns your AI from a passive tool into an active assistant that works in the background.

Each project declares its own crons in .openclaw/crons/, and OpenClaw loads them dynamically. This turns a passive workspace into an active assistant:

  • Todo reminders β€” Daily 7:30 AM WhatsApp notification of overdue and due-today items
  • Morning workout β€” Today’s training plan pushed to your phone
  • Evening Strava sync β€” Load and analyze the day’s activity, adapt the plan
  • Garden alerts β€” Watering reminders based on weather forecast

Without cron, your AI only works when you talk to it. With cron, it works for you in the background.

Nx Ties It All Together

With Nx managing the workspace, you get affected analysis (only build what changed), caching (unchanged projects use cached results), a project graph (Nx understands dependencies), and one CI pipeline for all projects.

Nx Setting Up CI for Nx Cloud

πŸ™‚ Last Thoughts

I found that AI assistants can genuinely help manage parts of our lives β€” but only if we give them the right structure. A scattered collection of repos and notes is like giving a new team member access to a shared drive with no folder structure and saying β€œfigure it out.”

For me, a well-structured monorepo became the operating system for my AI assistant. It’s where memory lives, skills are stored, projects are organized, cron keeps things moving, and Nx ensures builds stay fast.

What I’ve taken away from this:

  1. AI makes starting easy, but the mess grows fast too β€” Having a structure in place early made all the difference for me.
  2. Selective context saves tokens and improves quality β€” .openclaw/ boundaries mean the AI loads only what’s relevant.
  3. Skills are composable β€” Build once at the global level, specialize at the project level.
  4. Cron turns passive context into an active assistant β€” Reminders, briefings, and automations run without you asking.
  5. Nx handles the build complexity β€” Affected analysis, caching, and one CI pipeline for all projects.

If you’re already using Nx for your team’s monorepo, you already know the philosophy: conventions matter, boundaries matter, automation matters. I found that applying the same thinking to a personal AI workspace works surprisingly well.


Want to go further?

If you're looking to improve your Developer Experience, build AI Frameworks, or optimize your CI/CD pipelines with Nx, feel free to reach out β€” I'm always happy to share real-world setups and practical tips.

Jonathan Gelin

Build on Foundations,
Scale with AI.

I design AI-powered workflows and engineering foundations that make teams faster, happier, and more consistent.