{
	"build": {
		"context": ".",
		"dockerfile": "Dockerfile"
	},
	"features": {
		"ghcr.io/devcontainers/features/git:1": {},
		"ghcr.io/devcontainers/features/github-cli:1": {},
		"ghcr.io/devcontainers/features/docker-outside-of-docker:1": {},
		"ghcr.io/tailscale/codespace/tailscale": {
			"version": "latest"
		},
		"ghcr.io/devcontainers/features/go:1": {
			"version": "1.25",
			"golangciLintVersion": "latest"
		},
		"ghcr.io/georgofenbeck/features/lazygit-linuxbinary:1": {}
	},
	"customizations": {
		"vscode": {
			"extensions": [
				"biomejs.biome",
				"bradlc.vscode-tailwindcss",
				"christian-kohler.path-intellisense",
				"golang.go",
				"openai.chatgpt"
			],
			"settings": {
				"editor.formatOnSave": true,
				"typescript.preferences.importModuleSpecifier": "relative",
				"typescript.suggest.autoImports": true,
				"emmet.includeLanguages": {
					"typescript": "html",
					"typescriptreact": "html"
				},
				"tailwindCSS.experimental.classRegex": [
					["cva\\(([^)]*)\\)", "[\"'`]([^\"'`]*).*?[\"'`]"],
					["cx\\(([^)]*)\\)", "(?:'|\"|`)([^']*)(?:'|\"|`)"]
				],
				"[javascript]": {
					"editor.formatOnSave": true,
					"editor.defaultFormatter": "biomejs.biome",
					"editor.codeActionsOnSave": {
						"source.organizeImports.biome": "explicit",
						"source.fixAll.biome": "explicit"
					}
				},
				"[javascriptreact]": {
					"editor.formatOnSave": true,
					"editor.defaultFormatter": "biomejs.biome",
					"editor.codeActionsOnSave": {
						"source.organizeImports.biome": "explicit",
						"source.fixAll.biome": "explicit"
					}
				},
				"[typescript]": {
					"editor.formatOnSave": true,
					"editor.defaultFormatter": "biomejs.biome",
					"editor.codeActionsOnSave": {
						"source.organizeImports.biome": "explicit",
						"source.fixAll.biome": "explicit"
					}
				},
				"[typescriptreact]": {
					"editor.formatOnSave": true,
					"editor.defaultFormatter": "biomejs.biome",
					"editor.codeActionsOnSave": {
						"source.organizeImports.biome": "explicit",
						"source.fixAll.biome": "explicit"
					}
				},
				"[json]": {
					"editor.formatOnSave": true,
					"editor.defaultFormatter": "biomejs.biome",
					"editor.codeActionsOnSave": {
						"source.fixAll.biome": "explicit"
					}
				},
				"[jsonc]": {
					"editor.formatOnSave": true,
					"editor.defaultFormatter": "biomejs.biome",
					"editor.codeActionsOnSave": {
						"source.fixAll.biome": "explicit"
					}
				},
				"[go]": {
					"editor.formatOnSave": true,
					"editor.defaultFormatter": "golang.go",
					"editor.codeActionsOnSave": {
						"source.organizeImports": "explicit"
					}
				},
				"go.formatTool": "goimports",
				"go.lintTool": "golangci-lint",
				"go.useLanguageServer": true
			}
		}
	},
	"forwardPorts": [3000, 5173, 8080, 1455],
	"appPort": [3000, 5173, 8080, 1455],
	"postCreateCommand": "./scripts/setup-git.sh && ./scripts/editor-setup.sh",
	"portsAttributes": {
		"3000": {
			"label": "Development Server",
			"onAutoForward": "notify"
		},
		"5173": {
			"label": "Vite Dev Server",
			"onAutoForward": "notify"
		},
		"8080": {
			"label": "Preview Server",
			"onAutoForward": "notify"
		}
	},
	"remoteUser": "node"
}
