Files
coder/examples/templates/quickstart
Nick Vigilante 369a191972 feat: add Quickstart template with language and IDE selection (#24904)
Add a new Quickstart starter template that lets users pick programming
languages, editors, and an optional Git repo to clone. The template uses
Docker under the hood but presents a developer-focused experience: pick
your tools, start coding.

## What's included

- **Languages parameter** (multi-select): Python, Node.js, Go, Rust,
Java, C/C++
- **IDEs parameter** (multi-select): VS Code (Browser), VS Code Desktop,
Cursor, JetBrains, Zed, Windsurf
- **Git repo parameter**: Optional URL to clone on workspace start
- **JetBrains filtering**: Maps selected languages to relevant IDE codes
(Python → PyCharm, Go → GoLand, etc.)
- **Docker precondition check**: Uses `data "external"` +
`terraform_data` precondition to surface a friendly error when Docker is
unavailable, before the Docker provider fails with a cryptic message
- **4 presets**: Web Development, Backend (Go), Data Science, Full Stack
- **Single install script**: All languages install in one `coder_script`
to avoid apt-get lock conflicts (agent scripts run in parallel via
`errgroup`)

<details><summary>Design decisions</summary>

- **Docker as invisible backend**: Docker is required on the Coder
server but never mentioned in the user-facing parameter UI. The
experience is entirely "pick languages, pick editors, start coding."
- **`coder_script` over startup_script**: Language installs use a
templated script file (`install-languages.sh.tftpl`) driven by the
languages parameter. A single script avoids dpkg lock contention since
`coder_script` resources execute concurrently.
- **`data "external"` for Docker check**: The external provider probes
Docker availability independently of the Docker provider. If Docker is
down, the `terraform_data` precondition fails with a human-readable
message before any `docker_*` resource is evaluated. This depends on the
Docker provider connecting lazily (at resource eval time, not at
provider init), which current behavior confirms.
- **JetBrains filtering by language**: Rather than showing all 9
JetBrains IDEs, the template computes relevant IDE codes from the
language selection (e.g. Python → PY, Go → GO) and passes them as
`default` to the JetBrains module.
- **Arch-aware Go install**: The install script detects `uname -m` to
download the correct Go binary for amd64 or arm64.

</details>

<details><summary>Screenshots and recordings from the UI</summary>
<p>
<img width="1851" height="1471" alt="Screenshot 2026-05-05 at 2 14
20 PM"
src="https://github.com/user-attachments/assets/d4c9cdc5-d311-43a5-9e2e-f90b0019eda7"
/>
<img width="1851" height="1471" alt="Screenshot 2026-05-05 at 2 15
06 PM"
src="https://github.com/user-attachments/assets/cf3023fe-b6db-4503-a6c4-eaa0ec0659f8"
/>


https://github.com/user-attachments/assets/7507fd7d-ddb5-457a-9f7d-cbf89b36eb20


</p>
</details> 

> [!NOTE]
> This PR was authored by Coder Agents.
2026-05-06 13:55:38 +00:00
..

display_name, description, icon, maintainer_github, verified, tags
display_name description icon maintainer_github verified tags
Coder Quickstart Get started with Coder by picking your languages, editors, and a repo ../../../site/static/icon/coder.svg coder true
docker
quickstart

Coder Quickstart

Get up and running with Coder in minutes. Choose your programming languages, pick your preferred editors, optionally clone a Git repository, and start coding.

How It Works

When you create a workspace from this template, you select:

  1. Languages to pre-install (Python, Node.js, Go, Rust, Java, C/C++)
  2. Editors to connect (VS Code in the browser, VS Code Desktop, Cursor, JetBrains, Zed, Windsurf)
  3. A Git repository to clone (optional)

Coder provisions a workspace with your selections and you can start developing immediately.

Prerequisites

The host running Coder must have a Docker daemon accessible to the coder user:

# Add coder user to Docker group
sudo adduser coder docker

# Restart Coder server
sudo systemctl restart coder

# Verify access
sudo -u coder docker ps

Architecture

This template provisions:

  • Docker container (ephemeral) running Ubuntu with the Coder agent
  • Docker volume (persistent) mounted at /home/coder

Files in your home directory persist across workspace restarts. Selected languages are installed on first start and cached for subsequent starts.

Presets

Select a preset to auto-fill languages and editors for common workflows:

Preset Languages Editors
Web Development Python, Node.js VS Code (Browser)
Backend (Go) Go VS Code (Browser), JetBrains GoLand
Data Science Python VS Code (Browser)
Full Stack Python, Node.js, Go VS Code (Browser), Cursor

IDE Notes

  • VS Code (Browser): Opens directly in your browser with no local install required.
  • VS Code Desktop, Cursor, Windsurf: Require the desktop application installed on your local machine. Coder opens them via protocol handler.
  • JetBrains IDEs: Filtered by your language selection (e.g. PyCharm for Python, GoLand for Go). Requires JetBrains Toolbox or Gateway on your local machine.
  • Zed: Connects over SSH. Requires Zed installed on your local machine.