Prioritise GitLab's Built-in Project Templates Based on Real Developer Usage Data
## Summary GitLab's [built-in project templates](https://gitlab.com/gitlab-org/project-templates) should be restructured using a data-driven approach that better reflects real-world developer adoption patterns. I believe this could significantly reduce friction for teams starting new projects and better position GitLab as understanding modern development workflows. ## The Problem I've noticed that GitLab's current built-in project templates don't seem to align with what developers are actually using in 2025: - **Questionable priorities**: The current ordering doesn't reflect what developers actually reach for - **Missing modern essentials**: No templates for critical DevOps tools (Terraform, Ansible, Kubernetes) that are now standard in enterprise environments - **Maintenance inconsistency**: Some templates haven't been updated in over a year - **Gaps in popular areas**: Missing templates for monorepo setups, modern GitLab Pages workflows, mobile development, and ML workflows - **No AI integration examples**: Missing the opportunity to showcase GitLab Duo capabilities in practical, working templates ## What I'm Thinking Rather than guessing what developers want, why not use actual data to guide template prioritisation? Here's my initial thinking on categories that might deserve attention: ### Core Languages (TIOBE Index May 2025) The current leaders that should probably get priority maintenance: - **Python** (25.35%) - Especially for AI/ML, automation, web development - **C++** (11.37%) - Systems programming, performance-critical apps - **Java** (10.66%) - Enterprise applications, Spring Boot ecosystem - **C** (9.84%) - Embedded systems, systems programming - **C#** (4.12%) - .NET ecosystem, enterprise applications ### Essential Web Development (Stack Overflow 2024) Focus on the most adopted: - **Node.js** (40.8%) - Backend JavaScript, microservices, API development - **React** (39.5%) - Frontend SPAs, component-based architecture, modern tooling ### Mobile Application Development Cross-platform and native development patterns: - **React Native** - Cross-platform mobile apps with shared codebase - **Flutter** - Google's cross-platform framework with strong performance - **Swift/iOS** - Native iOS development with modern Swift patterns - **Kotlin/Android** - Native Android development with Kotlin-first approach ### Machine Learning & Data Science Python-centric ML workflows: - **Data science projects** - Jupyter notebooks, pandas, scikit-learn workflows - **Deep learning** - TensorFlow, PyTorch project structures - **MLOps pipelines** - Model training, validation, deployment automation - **Model serving** - API deployment, containerised inference services ### DevOps & Infrastructure (The Big Gap) Tools that are now essential but missing from templates: - **Terraform** - Multi-cloud infrastructure as code - **Ansible** - Configuration management - **Kubernetes** - Container orchestration - **Docker** - Containerisation patterns - **GitOps workflows** - ArgoCD, Flux integration ### Modern Development Patterns Areas where GitLab could really shine: - **Monorepo setups** - Multi-project repositories with proper CI/CD - **GitLab Pages** - Modern static site generators, documentation sites - **Microservices architectures** - Service mesh, API patterns - **Full-stack frameworks** - Next.js, Nuxt.js, SvelteKit ### AI-Powered Development (New Opportunity) Templates that showcase GitLab Duo capabilities: - **AI-enhanced CI/CD**: Templates with Duo-optimised pipeline configurations - **Code generation examples**: Projects demonstrating Duo's scaffolding capabilities - **AI-powered testing**: Templates showing Duo-generated test suites - **Documentation automation**: Using Duo for README, API doc generation - **Security-first templates**: Enhanced vulnerability detection with AI insights - **MLOps workflows**: End-to-end machine learning pipelines with GitLab Duo - **AI application templates**: Building chatbots, recommendation systems, AI-powered features ## Questions for Discussion I'm keen to hear thoughts on: 1. **Does this prioritisation make sense?** Are there obvious gaps or wrong priorities? 2. **Mobile development focus**: Should we prioritise cross-platform (React Native, Flutter) or include native development templates? 3. **ML/Data Science scope**: What are the most common ML project patterns that would benefit from templates? 4. **GitLab Duo integration**: Where would AI-powered templates add the most value? Should this be a separate category or integrated throughout? 5. **Enterprise vs. individual needs**: Should we have different strategies for different user types? 6. **Maintenance burden**: How do we balance comprehensive coverage with keeping templates current? 7. **Community contribution**: How might we encourage community contributions for specialised templates? 8. **Usage analytics**: Should GitLab track template selection to guide future prioritisation? 9. **Monorepo patterns**: What are the most common monorepo setups that would benefit from templates? ## The Opportunity If we get this right, GitLab could: - Reduce friction for developers evaluating or adopting GitLab - **Showcase GitLab Duo capabilities** in practical, working examples - Position GitLab as understanding modern development practices (including AI integration) - **Serve mobile and ML developers** who are currently underserved by existing templates - Create templates that actually work out-of-the-box in 2025 - Better serve the DevSecOps community who need infrastructure tooling What do others think? Are there obvious technologies or patterns we've missed? Does this general direction make sense? **Where would you most want to see GitLab Duo integration in templates?** --- **Data Sources:** - [TIOBE Index May 2025](https://www.techrepublic.com/article/tiobe-index-language-rankings/) - [Stack Overflow Developer Survey 2024](https://www.statista.com/statistics/1124699/worldwide-developer-survey-most-used-frameworks-web/) - [DevOps Tools Survey 2025](https://spacelift.io/blog/devops-tools)
issue