Project Types

A project type is the template your projects start from: a bundle of modules, cloud settings, and guardrails that decides which modules a project can use.

A project type is a bundle of IaC modules and output types, imported into your control plane together. It decides which modules a project can use, and which IaC tool and version build them. (A module becomes a resource only once it is added to a blueprint.)

Think of it as the template your projects start from: the building blocks, the cloud settings, and the guardrails on what teams can provision. Set it up once, and every project of that type inherits it.

A new control plane starts empty, so your first move is to import a project type, which loads the official set for your cloud. From there, this page is the home for project types: how to create your own, how to control what they allow, and how projects use them.

What you can do with project types

  • Turn an existing project or Git repo into a reusable template.
  • Control exactly which modules a project can use.
  • Preset the cloud provider settings for every new project.
  • Keep project setups consistent across teams, with less manual work.
  • See which projects use which type.

Prerequisites: permission to edit project types, and a sense of your organization's project and module standards.


Create a project type

Build one from an existing project, a Git repo, or a YAML definition, in the console or with the Praxis CLI. See Creating a project type for both flows.


Map modules to a project type

This is where you set the guardrails: choose exactly which modules projects of this type can use.

  1. Open Manage Resources to see every module the type's IaC tool allows, including your published custom modules.
  2. Select or deselect intents and flavors.
  3. Save.

By default every module is selected, and Preview modules are hidden from the list.

Example: to stop projects of a type from using the MongoDB Atlas flavor, open Manage Resources for that type, uncheck Atlas under the MongoDB intent, and save. Re-check it later if you need it back.


Use a project type

When you create a project, pick a project type from the dropdown. The project inherits the type's allowed modules and cloud settings, which you can still adjust to fit the project. Click the i next to a type to preview the modules it maps.

Best practices

  • Name types for their purpose, so they are easy to identify.
  • Keep descriptions clear enough for the whole team.
  • Remove types no project uses.