Skip to main content

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.

Ready to start building?

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!​

Mono Repository Required

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:

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:

  1. Set up your development environment - Configure your workspace for PagoPA development
  2. Understand our conventions - Learn our Git workflows, naming conventions, and code standards
  3. Deploy infrastructure - Use Terraform modules to deploy resources

Quick wins:

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

πŸ›οΈ 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

View All Conventions β†’

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.

Need help deciding?

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