I am one person building three products. rheos.app is an AI social media platform for SMEs. Invormed is an investment portfolio tool. Nutripedia is a science-backed supplement marketplace.
All three run from the same machine, the same Claude Code setup, and the same knowledge vault. This is how I keep it manageable.
Layered Configuration
Claude Code reads configuration files from your working directory upward. I use this to create two operating modes from one setup.
Company mode gives me the full picture — all three products, every external service, the shared tech patterns. The top-level config defines what is common: the language, the framework conventions, the infrastructure choices that all projects share.
Product mode inherits that company context, then layers on product-specific decisions. Rheos has its own AI model preferences, its own UI architecture, its own deployment pipeline. Invormed has different patterns. The knowledge OS has its own. None of them repeat what the company level already defines.
The result is that when I open Claude Code in any project, it already knows the shared foundations AND the product-specific choices. I never paste context. I never re-explain the stack. Claude sees it all from the config hierarchy.
20+ MCP Servers
My setup connects Claude Code to around 25 MCP servers — infrastructure monitoring, payment systems, error tracking, analytics, CRM, deployment tools, knowledge systems, and more.
Most sessions only touch three or four. The point is not to use them all at once — it is that Claude can check a production error, look up the relevant data, query the billing system, and fix the bug in the same conversation. No tab switching, no copy-pasting between tools, no context loss.
This matters especially when you are one person across three products. I cannot afford to context-switch between a Sentry dashboard, a database console, and a billing portal every time something breaks. The MCP servers mean Claude can do the lookup work while I stay focused on the decision.
Custom Skills
Skills are markdown files that load context on demand via slash commands. I have them at three levels — global (available everywhere), company-wide (shared patterns), and product-specific.
Rheos alone has around 20 skills covering everything from UI standards to deployment workflows to AI model configuration. The knowledge OS has its own. They share a handful of company-level skills for common patterns.
The key insight: skills work best as context loaders, not instruction manuals. Claude already knows React and TypeScript. What it does not know is how this specific product uses them. The naming conventions, the fallback patterns, the layout architecture, the model choices. A skill encodes those decisions once. Every session after that starts with the right context already loaded.
My co-founder Hugo and I share skills via the repo. His Claude sessions produce the same patterns mine do, because the context is the same.
Lifecycle Hooks
Two hooks run automatically without anyone invoking them.
Session start checks for anything new that needs processing — notes, tasks, items dropped into the inbox since the last session.
Session end summarises the conversation, embeds it, and stores it in the knowledge system. Every Claude Code session becomes searchable. Weeks later I can search for "that time we debugged the webhook issue" and find the full context, including which product it was in.
The Shared Vault
The knowledge vault is an Obsidian vault with 185+ notes across all three products. Architecture decisions, product strategy, technical debt, past debugging sessions. It is embedded into a vector database so any Claude instance — Claude Code, claude.ai, or a mobile app — can search it.
When I make a decision in one product that affects another, I persist it to the vault. The investment tool's data pipeline decisions are searchable from the social media platform's sessions. The knowledge OS captures sources that inform all three products. Knowledge compounds across the whole portfolio instead of being siloed.
How It Fits Together
A typical morning: I open Claude Code in the social media platform. The session-start hook processes anything new. I ask it to check for production errors — it queries error tracking, finds an issue, looks up the relevant state in the database, reads the code, and proposes a fix. I review, approve, commit. The session-end hook summarises everything.
Later I switch to the investment tool. Claude already knows the shared infrastructure because the company-level config carries over. Product-specific skills load the rest. I am not starting from zero — I am continuing from where the vault and the config left off.
None of it is complicated individually. The value is in the layering — each piece knows about the others, and Claude Code is the runtime that connects three products into something one person can actually manage.