- Full grant strategy framework for renewable energy & green hydrogen - AI-powered grant studio, partner outreach, financial modeling - Umami analytics with data-performance tracking - Live Degelas metrics connected to solar.degelas.be - Trilingual (EN/FR/AR) with i18n support - Dockerized with Nginx frontend + Express API proxy
8.2 KiB
Atlas Green — Bottleneck Analysis & Next Major Enhancement Shift
Where the platform currently is, what's limiting it, and the next 10x jump
Current Platform Architecture (What we have)
| Layer | Component | Status | Capability |
|---|---|---|---|
| Strategy | Macro, Position, Opportunities, Zones, Markets | ✅ Complete | Deep, bilingual, interactive |
| Execution | Playbook, Deployment Phases, Optimizer | ✅ Complete | 8-phase roadmap, location matching |
| Grants | 23 programs, 7 countries, per-market filters | ✅ Complete | Full eligibility, process, strategy |
| AI Studio | Grant Studio, Reviewer, Outreach, Financial | ✅ Complete | 4-language output, steering configs |
| Workspace | Company cockpit, RWA opportunity report, readiness score | ✅ Complete | Pre-filled with Degelas → RWA reality |
| Vault | localStorage persistence, auto-save, preview, download | ✅ Complete | Markdown export, CRUD operations |
| i18n | English + Darija, all sections + data files | ✅ Complete | Type-safe parity enforced |
BOTTLENECK #1 (Critical): FounderProfile is a Hardcoded Constant
The problem:
Every AI tool uses OUR_PROFILE — a single, hardcoded TypeScript constant in src/components/StudioSection.tsx:
const OUR_PROFILE: FounderProfile = {
businessModel: "Energy Software / AI → Real-World Assets",
product: "Degelas solar production forecasting (150+ sites, 25 countries)...",
...
};
This means:
- The AI always generates output for one specific company (Degelas → RWA)
- There is no way to switch profiles for different projects, subsidiaries, or client scenarios
- If you want to test "what if I pivot to water desalination?" — you can't
- The workspace "company snapshot" is read-only display; it doesn't feed into the AI
Impact: This is the single biggest limitation. The platform works for us but cannot work for anyone else. Every grant application, financial model, and outreach kit assumes the same company context.
The fix: Replace OUR_PROFILE with a persisted, editable Workspace Profile stored in localStorage (extending the Vault pattern). The AI Studio reads from the workspace, not from a hardcoded constant. The workspace becomes the "source of truth" — and users can create multiple profiles (e.g., "Degelas RWA", "Degelas EU Expansion", "Desalination Pilot").
BOTTLENECK #2 (High): No Project-Level Structuring
The problem: The Vault stores documents, but there is no concept of a "Project." A project would group:
- One company profile
- Multiple generated documents (grants, outreach, financial models)
- A target zone
- A grant stack
- A phase/stage
Without projects, the vault becomes a flat list of unrelated documents. There's no way to say "show me everything related to our Dakhla hydrogen project."
The fix: Add a lightweight "Project" wrapper around the Vault. A project is:
Project {
id: string;
name: string;
companyProfile: FounderProfile; // the workspace profile
zone?: string;
grantStack: string[];
documents: VaultDoc[];
createdAt: string;
}
This enables: "Create a project, fill its profile once, generate all documents in context, see the full project at a glance."
BOTTLENECK #3 (High): The Vault is Browser-Only (localStorage)
The problem:
- Documents are lost if the browser cache is cleared
- No sharing or collaboration
- No backup
- No cross-device access
- The vault cannot grow beyond a few dozen MB
The fix (phased):
- Phase A: Add JSON export/import for the entire vault (one-click backup/restore)
- Phase B: Add a simple backend (Supabase, PlanetScale, or a small Node API) for cloud persistence
- Phase C: Add project sharing via URL (read-only public links)
BOTTLENECK #4 (Medium): The AI Output is "Fire and Forget"
The problem: When the AI generates a grant application, the output is displayed, saved to the vault, and that's it. There's no:
- Version history (regenerate → lose old version)
- Comparison mode (side-by-side diff of two generations)
- Iterative refinement (send the AI's own output back to the AI for a second pass)
- Feedback loop (rate the quality, improve future generations)
The fix:
- Add versioning to the Vault (each generation creates a new version, not overwrite)
- Add a "Refine" button that sends the current output + a refinement instruction back to the AI
- Add a "Compare" view that shows two versions side-by-side with highlighted diffs
BOTTLENECK #5 (Medium): No French Language Layer
The problem: Morocco's official business language is French. The platform has English and Darija, but:
- Government forms are in French
- Bank correspondence is in French
- OCP, ONEE, Masen, and IRESEN use French for official documents
- EU/Morocco grant paperwork requires French
The Outreach AI can generate French output, but the platform UI itself is not in French.
The fix: Add a French (fr) locale to the i18n layer. This is a significant effort (the Darija translation took hundreds of keys), but it's the highest-ROI language for actual business operations.
BOTTLENECK #6 (Medium): The Degelas Connection is Narrative, Not Live
The problem: The platform references Degelas data (150+ sites, 25 countries) as static text. It's compelling narrative but not live data. If Degelas has APIs or internal dashboards, none of that surfaces in the platform.
The fix:
- Add a Degelas data hook (if APIs exist) — live site count, forecast accuracy, CO₂ avoided
- Alternatively, add a lightweight "metrics" admin panel where you can update these numbers without changing code
The Next Major Enhancement Shift: From "Our Tool" to "A Platform"
The current bottleneck analysis points to a single architectural shift:
Move from a hardcoded single-company cockpit to a multi-project, profile-driven platform.
The shift in concrete terms
| Current State | Target State |
|---|---|
OUR_PROFILE is a hardcoded constant |
Workspace Profile is a persisted, editable entity |
| The Vault is a flat document list | The Vault is organized into Projects |
| The platform works for one company | The platform works for any company |
| localStorage is the only persistence | JSON export/import + optional cloud backend |
| Generated documents are version 1.0 only | Version history + refinement + comparison |
| Two languages (EN, Darija) | Three languages (EN, Darija, French) |
| Degelas data is static text | Degelas data is (optionally) live or admin-editable |
Recommended Build Order (Next 4 Weeks)
Week 1-2: Profile-Driven Platform (Bottleneck Fix #1)
- Create
WorkspaceProfilepersistence layer (extends Vault pattern) - Replace
OUR_PROFILEwith a workspace profile read from localStorage - Add a "Workspace Settings" panel to edit the profile (name, model, product, team, etc.)
- The AI Studio reads from the active profile
- Workspace section renders the active profile dynamically
Week 2-3: Projects Layer (Bottleneck Fix #2)
- Create
Projecttype and persistence - A project wraps a profile + documents + zone + grant stack
- The Vault filters by active project
- "New Project" / "Switch Project" UI in the workspace header
Week 3-4: French Language Layer (Bottleneck Fix #5)
- Create
src/i18n/fr.tswith all keys - Update
I18nProviderto supportfr - Add French toggle to the nav
- AI output language defaults to UI language
Phase 2 (Beyond 4 weeks)
- Vault versioning + refinement + comparison
- Cloud backend (optional)
- Live Degelas data hooks (optional)
- Multi-user collaboration (optional)
Summary
The single biggest bottleneck: The platform is hardcoded to one company. Fixing this with a persisted, editable Workspace Profile instantly makes the entire AI Studio, Vault, and readiness report work for any company or project scenario.
The 10x unlock: When you can create a project profile, generate a full stack of documents against it, audit them, refine them, and export them — all in a few clicks, in any language — you've built something that no other green-energy advisory platform offers. You've built the operating system for green-energy market entry.