Coder powers secure, scalable development across key industries — automotive, finance, government, and technology — enabling faster builds, tighter compliance, and seamless AI adoption in enterprise-grade cloud environments.
Learn how to create and contribute complete Coder workspace templates to the Coder Registry. Templates provide ready-to-use workspace configurations that users can deploy directly to create development environments.
What are Coder templates
Coder templates are complete Terraform configurations that define entire workspace environments. Unlike modules (which are reusable components), templates provide full infrastructure definitions that include:
Templates appear on the Coder Registry and can be deployed directly by users.
Tip
If you use an AI coding assistant, the coder-templates agent skill from the Coder Registry can guide you through creating and updating templates with best practices built-in.
Create your namespace README at registry/[your-username]/README.md:
---
display_name: "Your Name"
bio: "Brief description of what you do"
github: "your-username"
avatar: "./.images/avatar.png"
linkedin: "https://www.linkedin.com/in/your-username"
website: "https://your-website.com"
support_email: "[email protected]"
status: "community"
---
# Your Name
Brief description of who you are and what you do.
Note
The linkedin, website, and support_email fields are optional and can be omitted or left empty if not applicable.
2. Create your template directory
Create a directory for your template:
mkdir -p registry/[your-username]/templates/[template-name]
cd registry/[your-username]/templates/[template-name]
3. Build your template
Create main.tf with your complete Terraform configuration:
Create README.md with comprehensive documentation:
---
display_name: "Ubuntu Development Environment"
description: "Complete Ubuntu workspace with VS Code, Git, and development tools"
icon: "../../../../.icons/ubuntu.svg"
verified: false
tags: ["ubuntu", "docker", "vscode", "git"]
---
# Ubuntu Development Environment
A complete Ubuntu-based development workspace with VS Code, Git, and essential development tools pre-installed.
## Features
- **Ubuntu 24.04 LTS** base image
- **VS Code** with code-server for browser-based development
- **Git** with automatic repository cloning
- **Node.js** and **npm** for JavaScript development
- **Python 3** with pip
- **Docker** for containerized development
## Requirements
- Docker runtime
- 4 GB RAM minimum
- 2 CPU cores recommended
## Usage
1. Deploy this template in your Coder instance
2. Create a new workspace from the template
3. Access VS Code through the workspace dashboard
4. Start developing in your fully configured environment
## Customization
You can customize this template by:
- Modifying the base image in `docker_image.main`
- Adding additional registry modules
- Adjusting resource allocations
- Including additional development tools
## Troubleshooting
**Issue**: Workspace fails to start
**Solution**: Ensure Docker is running and accessible
**Issue**: VS Code not accessible
**Solution**: Check agent logs and ensure code-server module is properly configured
Template best practices
Design principles
Complete environments: Templates should provide everything needed for development
Platform-specific: Focus on one platform or use case per template
Production-ready: Include proper error handling and resource management
User-friendly: Provide clear documentation and sensible defaults
Infrastructure setup
Resource efficiency: Use appropriate resource allocations
Network configuration: Ensure proper connectivity for development tools
Security: Follow security best practices for your platform
variable "git_repo_url" {
description = "Git repository to clone"
type = string
default = ""
}
variable "instance_type" {
description = "Instance type for the workspace"
type = string
default = "t3.medium"
}
variable "workspace_name" {
description = "Name for the workspace"
type = string
default = "dev-workspace"
}
Test your template
Local testing
Test your template locally with Coder:
# Navigate to your template directory
cd registry/[your-username]/templates/[template-name]
# Push to Coder for testing
coder templates push test-template -d .
# Create a test workspace
coder create test-workspace --template test-template
Validation checklist
Before submitting your template, verify:
Template provisions successfully
Agent connects properly
All registry modules work correctly
VS Code/IDEs are accessible
Networking functions properly
Resource metadata is accurate
Documentation is complete and accurate
Contribute to existing templates
Types of improvements
Bug fixes:
Fix setup issues
Resolve agent connectivity problems
Correct resource configurations
Feature additions:
Add new registry modules
Include additional development tools
Improve startup automation
Platform updates:
Update base images or AMIs
Adapt to new platform features
Improve security configurations
Documentation improvements:
Clarify setup requirements
Add troubleshooting guides
Improve usage examples
Making changes
Test thoroughly: Always test template changes in a Coder instance
Maintain compatibility: Ensure existing workspaces continue to function
Document changes: Update the README with new features or requirements
Follow versioning: Update version numbers for significant changes
Modernize: Use latest provider versions, best practices, and current software versions
Submit your contribution
Create a feature branch:
git checkout -b feat/add-python-template
Test thoroughly:
# Test with Coder
coder templates push test-python-template -d .
coder create test-workspace --template test-python-template
# Format code
bun fmt
Commit with clear messages:
git add .
git commit -m "Add Python development template with FastAPI setup"