Getting Started with PagoPA DX
π Accelerate Your Development Journeyβ
Whether you're shipping your first API or architecting complex distributed systems, the PagoPA Developer Experience (DX) initiative provides golden paths and battle-tested tools to help you build with confidence.
Jump to our Quick Start Guides tailored for your role, or explore our featured tools below.
Prerequisites to adopt DX toolsβ
Teams that follow DX conventions report faster onboarding and fewer infrastructure issues. The upfront investment in consistency pays dividends in reduced maintenance and improved collaboration.
Mono Repository: Yes Please!β
Using a mono repository is a prerequisite to adopt DX tooling.
Mono repositories offer several advantages, and DX tools are designed with this in mind. We recommend using a mono repository, even for a single project or workspace.
To start adopting DX tools, define boundaries for team services and plan how to split team projects. Once ready, ensure you have a mono-repository on GitHub and start configuring it using DX tools.
Supported Platformsβ
DX tools are designed to integrate seamlessly with GitHub, support multiple Cloud Service Providers (CSPs), and align with a variety of programming languages.
These tools adhere to the principles and boundaries outlined in our Technology Radar that teams are expected to follow.
Technology Radar recommendations are thoughtfully designed to foster consistency, efficiency, and alignment across projects, ensuring a streamlined development experience.
Conventionsβ
DX provides guidance to help teams adopt shared conventions during their journey:
- Optimize Git usage.
- Create effective Pull Requests.
- Organize repository folders for Infrastructure as Code (IaC) sources.
We expect teams to adhere to these conventions to ensure a consistent experience across all projects. Some of them are enforced by DX tools, while others are optional but highly recommended.
Choose Your Pathβ
π©βπ» Application Developersβ
If you're building APIs, web applications, or services:
- Set up your development environment - Configure your workspace for PagoPA development
- Understand our conventions - Learn our Git workflows, naming conventions, and code standards
- Deploy infrastructure - Use Terraform modules to deploy resources
Quick wins:
- Use our pre-configured dev containers for instant environment setup
- Follow our Git conventions for consistent collaboration
- Deploy infrastructure with our Terraform modules
What We Provideβ
π€οΈ Golden Paths - Opinionated, proven approaches aligned with our Technology Radar
π§ Ready-to-Use Tools - Terraform modules, GitHub Actions, and development environments that just work
π Comprehensive Guides - Step-by-step documentation from setup to production deployment
π€ Expert Support - Direct access to the DX team for guidance and troubleshooting
Featured Toolsβ
ποΈ Infrastructure as Codeβ
Production-ready Terraform modules for different CSPs:
All DX Terraform modules are available on
the public Terraform Registry
under the pagopa-dx organization.
Of course, everyone can contribute to improve them.
βοΈ GitHub Actions Workflowsβ
Reusable workflows for common scenarios:
The DX repository provides several GitHub reusable workflows.
We encourage teams to use these templates as a starting point for their GitHub Actions workflows. They are designed to speed up continuous integration and delivery for team apps and IaC code.
These templates cover various scenarios, such as code validation, web app deployment (including FaaS!), building and pushing Docker images to GitHub registry, and more. Feel free to choose the ones that best suit team needs!
- Code Review - Automated linting, testing, and security scanning
- Infrastructure - Safe Terraform planning and deployment
- Application Deployment - Zero-downtime releases
π Development Standardsβ
Consistent approaches across teams:
- Git Workflows - Branch naming, commit messages, and PR guidelines
- Project Structure - Monorepo organization and folder hierarchies
Contributingβ
We're building this platform together! Whether you're fixing a typo or proposing a new tool, your contributions make DX better for everyone.
- π Improve documentation - Found something unclear? Submit a PR!
- π§ Contribute tools - Share reusable modules and workflows
- π‘ Share ideas - Open an issue to discuss new features
We encourage you to contribute to the DX project! Start by reviewing our contribution guidelines to understand how you can get involved and make a meaningful impact.
Not sure which path to take? Check out our conventions overview to understand how we organize work at PagoPA, or visit our support page to get help from the DX team.
Built with β€οΈ by the PagoPA DX Team | Powered by Docusaurus