Current state
The full ABCD framework described below is the target end state. Today only some pieces are in place; the rest is being designed and evaluated.
What we have now
Project intake skill
A Claude Code skill that guides citizen developers through scoping their idea: audience, data sensitivity, integrations, AI usage. Produces an assessment markdown that becomes the starting point for review.
AvailableCitizen developers GitLab group
A dedicated GitLab group at gitlab.com/docebo/internal-citizen-developers where citizen-developer projects live, with branch protection and standard templates (agents.md, .gitignore, push guidelines) ready to clone. See Source code repository below for the full flow.
Source code repository
Citizen-developer projects must live in a single, centralized place so AI Ops can apply branch protection, CI/CD pipelines, and security scanning uniformly across all of them.
If you have GitLab access, push your project to the dedicated group: gitlab.com/docebo/internal-citizen-developers.
The intake skill scaffolds a new repo there with the standard templates (agents.md, .gitignore, branch-protection rules) so you don’t start from scratch.
If you don’t have GitLab access, we’re actively working on a path for non-engineering colleagues — likely a managed flow where AI Ops creates the repo on your behalf and gives you a controlled write surface (GitLab Web IDE, MR-based pushes from Claude Code, or similar). In the meantime, reach out to AI Ops on Slack or via #ai-ops and we’ll set the project up manually.
Deployment platforms
These are the enterprise deployment platforms either in active use or under evaluation for citizen-developer projects. None of them is yet wired to a self-service pipeline — every deployment today still goes through AI Ops.
Vercel
Hosting frontend / static / serverless apps. Pro plan with SSO. Used as preview environment for some projects.
ProductionRender
Vercel alternative under evaluation as a potential all-in-one solution (hosting + database).
EvaluationCoolify
Self-hosted deployment platform. Already used to deploy the Performance Index for Inspire 2026 project. Provides nginx, IP allowlists, and Let’s Encrypt out of the box.
Internal UseAWS
Existing enterprise cloud account. Already used in production for custom internal projects (ECS / Lambda / Amplify). Default target for workloads with heavier compliance or scale requirements.
ProductionDefault network access: behind CATO
Apps built by citizen developers should be placed behind CATO by default, so they’re only reachable from the corporate network (employees on the Docebo SASE/SSE). Exceptions — public-facing apps, third-party integrations, partner access — must be discussed up-front with AI Ops and the Security team.
When configuring an IP allowlist (in nginx, Coolify, Vercel Trusted IPs, AWS security groups, etc.), use these CATO egress IPs:
185.114.123.133/32
45.62.188.108/32
209.206.13.74/32Document any deviation from this default in the project’s repo (a short note in the README or ACCESS-CONTROL.md is enough), so it’s clear later who approved the exception and why.
How to enforce this on Vercel (Trusted IPs)
Vercel has a built-in Trusted IPs allowlist under Deployment Protection. No edge middleware needed.
- Open your project on Vercel → Settings → Deployment Protection.
- Scroll to the Trusted IPs card.
- Flip the toggle to Enabled and pick the scope (Production Deployments is the typical default; pick All Deployments if you want preview URLs gated too).
- Under IP / CIDR, add the three CATO IPs one per row (Vercel’s UI accepts plain IPs and treats them as
/32, so you can paste either185.114.123.133or185.114.123.133/32). Label each rowCATOso it’s obvious later who put them there. - Click Save.
Result: only requests originating from those three IPs hit the deployment. Anyone else gets a Vercel auth challenge.
Notes:
- Trusted IPs is a Vercel Pro / Enterprise feature. If your project is on Hobby it won’t show up — check with AI Ops to move the project to the Docebo team plan.
- Maximum 20 IPs per project; we use 3.
- Leaving the scope on Production Deployments keeps preview URLs publicly reachable, which is usually what you want for stakeholder review. Switch to All Deployments if previews must be gated too.
- If a single endpoint must remain public (e.g.
/api/webhookfor a third-party integration), use Deployment Protection Exceptions in the same panel rather than turning the whole allowlist off.
How to enforce this on Coolify / nginx
See ACCESS-CONTROL.md for the full nginx config the AI Hub itself uses (X-Real-IP checks against the same three CATO IPs, plus a Glean crawler exception). Use it as the template for any internal app deployed on Coolify.
Autonomous deployment is not yet possible. Citizen developers cannot currently push code to a production environment without involvement from the AI Ops team. The framework below describes the workflow we are building toward — see the step-by-step deploy guide for the linear checklist of how that target flow will look in practice.
Where we want to go
The sections below describe the target App Building for Citizen Developer (ABCD) — the end-to-end flow from idea to autonomous, governed deployment. These pieces are in design and not yet operational.
The problem we’re solving
Rapid AI adoption has led to tech sprawl: apps built without review, unauthorized deployments, fragmented tooling. ABCD introduces a clear path from idea to production, with the right security checkpoints along the way.
Idea
A colleague has an idea for an app or tool
Qualify
Conversational intake assesses scope and risk
Review
Security and Legal verify automatically and manually
Deploy
Automated pipeline from repo to production
Complete workflow
Every step is designed to be as frictionless as possible for business users while maintaining the governance required.
Conversational intake
The citizen developer starts a guided session (skill/plugin in Claude) that works as a structured interview. The tool collects information about: data type (internal/external), audience, business criticality, required integrations, and AI usage. The output is an assessment document (markdown) containing all the context needed for subsequent reviews.
Routing and project creation
Based on the assessment, the project is routed to the correct path. A repository is automatically created in the dedicated citizen developer GitLab group. The repo contains preconfigured templates: agents.md (AI instructions), .gitignore, and push guidelines. Only the master branch is controlled by the AI Ops team; colleagues work on separate branches.
Development and assisted push
The citizen developer builds the app using approved tools (Claude Code as the primary platform). The development skill guides the user through pushing code to GitLab, minimizing the need to know Git. Authentication happens via OAuth with a simple flow (click a button). The AI performs automatic code reviews during development, using “software architect” and “security engineer” profiles.
Pull request and automated review
When the app is ready, the citizen developer opens a Pull Request to master. This trigger automatically activates: security code scanning (Wiz), data exposure checks, and dependency/package verification. The Security and Legal teams receive notification and perform the required manual checks. An estimated completion time (4–14 days) is communicated to the requester.
Automated deployment
Once the PR is approved and code is merged to master, the CI/CD pipeline automatically deploys the app to the hosting platform (Vercel, Render, or AWS ECS). The citizen developer doesn’t need direct access to the hosting platform — everything goes through the repo. The AI Ops team maintains control over the repo-to-platform connection.
How projects get assessed
The conversational intake guides the citizen developer through a series of questions that determine the required review level and deployment path.
🚀 The citizen developer describes their idea
The AI skill collects basic information: purpose, audience, functionality
Does the app handle external data or PII?
Customer data, personal information, financial data, etc.
Full review
Mandatory Security + Legal review. Deep code scanning. Estimated time: 7–14 days.
Lightweight review
Maximum automation. Automated scans with fast-track approval. Estimated time: 4–5 days.
✅ Output: assessment document
Markdown with all collected information, inserted into the Jira ticket as a text field. Becomes the foundation for all subsequent reviews.
How the pieces connect
The infrastructure is designed to separate citizen developer work from operational control, keeping the pipeline secure and automated.
🧑💻 Claude Code
Primary development platform. Integrated skills and plugins guide the end-to-end process.
📋 Intake skill
Conversational interview that produces the assessment markdown and opens the ticket.
📤 Assisted push
AI handles OAuth, commit, and push to GitLab. The user doesn’t need to know Git.
🦊 GitLab
Centralized repository. Dedicated top-level group for citizen devs. Branch protection on master.
🔀 Pull request
Automatic trigger: security scan, AI code review, notification to Security and Legal.
⚙️ CI/CD pipeline
GitLab pipeline deploying to Vercel/Render/AWS ECS after merge to master.
🛡️ Security team
Mandatory review. Wiz for automated scans. Data exposure and dependency verification.
⚖️ Legal / Compliance
Review for apps with external data. Coordination with Raj for compliance.
👥 AI Ops team
Master branch owner. Manages templates, skills, enablement, and overall governance.
Roles and responsibilities
Every actor has a clear role in the process. The goal is to minimize the burden on citizen developers by shifting complexity to the operational teams.
🧑💻 Citizen developer
The colleague building the app. No Git or DevOps knowledge required.
Starts the intake session · Builds the app with Claude Code · Uses the assisted push skill · Opens the Pull Request
🔧 AI Ops team
Defines the process, creates the materials, and maintains control.
Manages the GitLab group · Develops and maintains skills · Controls the master branch · Coordinates with Security and Legal
🛡️ Security team
Validates app security before production deployment.
Runs code scanning (Wiz) · Verifies data exposure · Checks dependencies and packages · Approves or blocks deployment
⚖️ Legal / Compliance
Ensures compliance for apps handling sensitive or external data.
Review for external data/PII · Regulatory compliance verification · Coordination with Raj · Final sign-off when required
Tools and platforms
The strategy is to consolidate on a few quality tools, avoiding the tech sprawl that created confusion in the past.
Claude Enterprise
Primary AI platform. $20/seat with configurable per-user caps. Replaces the current multi-tenant model.
StrategicClaude Code
AI-powered development IDE. Integrated skills and plugins for the citizen dev workflow.
ActiveGitLab
Centralized repository. Dedicated top-level group with branch protection and CI/CD pipelines.
In setupVercel
Web app hosting. Pro plan (~$15K/year with SSO). Enterprise too expensive at $50K.
Active (Pro)Render
Vercel alternative under evaluation. Potential all-in-one solution (hosting + database). Target budget: $25K.
Under evaluationWiz
Automated security scanning in pipelines. Can lead to automatic approval for low-risk apps.
Integration planned