{{ define "main" }}
<!-- prettier-ignore -->
{{ partial "sidebar.html" (dict "context" . "disableSidebar" true "displayPlaceholder" false) }}
<style>
	:root {
		--goreleaser-primary-color: #163959;
	}

	.hextra-sidebar-container {
		display: none;
	}

	@media (max-width: 767px) {
		.hextra-sidebar-container {
			display: flex;
		}
	}

	.goreleaser-hero-section {
		position: relative;
		overflow: hidden;
		padding: 3rem 1.5rem 5rem;
		background: linear-gradient(
			135deg,
			#0a2540 0%,
			#163959 60%,
			#1a4a72 100%
		);
	}

	.goreleaser-hero-stars {
		position: absolute;
		inset: 0;
		pointer-events: none;
		z-index: 0;
	}

	.goreleaser-hero-stars span {
		--i: 0;
		--goreleaser-star-x: 0px;
		--goreleaser-star-y: 0px;
		--size: calc(10px + 35px * (0.5 + 0.5 * sin(var(--i) * 53.5deg)));
		position: absolute;
		display: block;
		width: var(--size);
		height: var(--size);
		top: calc(-25% + 130% * (0.5 + 0.5 * sin(var(--i) * 137.508deg)));
		left: calc(-30% + 130% * (0.5 + 0.5 * cos(var(--i) * 97.5deg)));
		opacity: calc(0.4 + 0.5 * (0.5 + 0.5 * cos(var(--i) * 71.3deg)));
		transform: translate3d(
				var(--goreleaser-star-x),
				var(--goreleaser-star-y),
				0
			)
			rotate(calc(var(--i) * 137.508deg));
		background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0C12 4 20 12 24 12C20 12 12 20 12 24C12 20 4 12 0 12C4 12 12 4 12 0Z' fill='white'/%3E%3C/svg%3E");
		background-size: contain;
		background-repeat: no-repeat;
		will-change: transform;
	}

	@media (max-width: 768px) {
		.goreleaser-hero-stars span:nth-child(n + 17) {
			display: none;
		}
	}

	@media (prefers-reduced-motion: reduce) {
		.goreleaser-hero-stars span {
			will-change: auto;
		}
	}

	.dark .goreleaser-hero-section {
		background: linear-gradient(
			135deg,
			#050f1a 0%,
			#0a2540 60%,
			#163959 100%
		);
	}

	.goreleaser-hero {
		position: relative;
		z-index: 1;
		max-width: 72rem;
		margin: 0 auto;
		display: flex;
		align-items: center;
		gap: 3rem;
		color: #fff;
	}

	.goreleaser-hero__content {
		flex: 1;
		max-width: 36rem;
	}

	.goreleaser-hero__image {
		flex: 1;
		text-align: center;
	}

	.goreleaser-hero__image img {
		max-width: 100%;
		border-radius: 8px;
	}

	.goreleaser-hero h1 {
		font-size: 3.5rem;
		font-weight: 700;
		margin-bottom: 1rem;
		line-height: 1.2;
		color: #fff;
	}

	.gradient-text {
		background: linear-gradient(
			to right,
			#e6f7ff,
			#40a9ff,
			#e6f7ff,
			#91d5ff
		);
		-webkit-background-clip: text;
		-webkit-text-fill-color: transparent;
		background-clip: text;
		color: transparent;
	}

	.gradient-text-2 {
		background: linear-gradient(to right, #40a9ff, #e6f7ff, #91d5ff);
		-webkit-background-clip: text;
		-webkit-text-fill-color: transparent;
		background-clip: text;
		color: transparent;
	}

	.goreleaser-hero p {
		font-size: 1.1rem;
		margin-bottom: 0.5rem;
		color: rgba(255, 255, 255, 0.85);
	}

	.goreleaser-hero strong {
		color: #fff;
		font-weight: 700;
	}

	.goreleaser-hero .lang-icons {
		display: flex;
		gap: 0.5rem;
		margin: 1.25rem 0;
	}

	.goreleaser-hero .lang-icons img {
		width: 32px;
		height: 32px;
	}

	/* Hero overrides: larger padding, white-on-dark secondary */
	.goreleaser-hero .goreleaser-btn {
		padding: 0.6rem 1.4rem;
		border-radius: 6px;
		font-weight: 600;
		margin-right: 0.75rem;
		margin-top: 0.5rem;
	}

	.goreleaser-hero .goreleaser-btn--primary {
		border-width: 2px;
	}

	.goreleaser-hero .goreleaser-btn--secondary {
		color: #fff !important;
		border: 2px solid rgba(255, 255, 255, 0.6);
	}

	.goreleaser-body-section {
		padding: 4rem 1.5rem 3rem;
	}

	.goreleaser-section-inner {
		position: relative;
		z-index: 1;
		max-width: 64rem;
		margin: 0 auto;
	}

	.goreleaser-screenshot {
		text-align: center;
		margin-bottom: 4rem;
	}

	.goreleaser-screenshot img {
		max-width: 100%;
		border-radius: 8px;
	}

	.goreleaser-section-title {
		text-align: center;
		margin-bottom: 0.5rem;
		padding-top: 2rem;
	}

	.goreleaser-section-title h2 {
		font-size: 2rem;
		font-weight: 700;
	}

	.goreleaser-section-subtitle {
		text-align: center;
		margin-bottom: 2.5rem;
		color: #6b7280;
	}

	.dark .goreleaser-section-subtitle {
		color: #9ca3af;
	}

	.goreleaser-feature-grid {
		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
		gap: 1.5rem;
		margin-bottom: 4rem;
	}

	.goreleaser-feature-card {
		padding: 1.25rem;
		border-radius: 8px;
		border: 1px solid rgba(0, 0, 0, 0.08);
		background: rgba(0, 0, 0, 0.02);
	}

	.dark .goreleaser-feature-card {
		border-color: rgba(255, 255, 255, 0.08);
		background: rgba(255, 255, 255, 0.03);
	}

	.goreleaser-feature-card h3 {
		font-size: 1rem;
		font-weight: 600;
		margin-bottom: 0.5rem;
		display: flex;
		align-items: center;
		gap: 0.4rem;
	}

	.goreleaser-feature-card p {
		font-size: 0.9rem;
		color: #6b7280;
		margin: 0;
	}

	.dark .goreleaser-feature-card p {
		color: #9ca3af;
	}

	.goreleaser-cards-grid {
		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
		gap: 1rem;
		margin-bottom: 3rem;
	}

	.goreleaser-logos-marquee {
		overflow: hidden;
		margin-bottom: 3rem;
		-webkit-mask-image: linear-gradient(
			to right,
			transparent 0,
			#000 8%,
			#000 92%,
			transparent 100%
		);
		mask-image: linear-gradient(
			to right,
			transparent 0,
			#000 8%,
			#000 92%,
			transparent 100%
		);
	}

	.goreleaser-logos-marquee__track {
		display: flex;
		gap: 1rem;
		width: max-content;
		animation: goreleaser-logos-marquee 60s linear infinite;
	}

	.goreleaser-logos-marquee:hover .goreleaser-logos-marquee__track {
		animation-play-state: paused;
	}

	@keyframes goreleaser-logos-marquee {
		from {
			transform: translate3d(0, 0, 0);
		}
		to {
			transform: translate3d(-50%, 0, 0);
		}
	}

	@media (prefers-reduced-motion: reduce) {
		.goreleaser-logos-marquee__track {
			animation: none;
		}
	}

	.goreleaser-logos-marquee .goreleaser-logo-card {
		flex: 0 0 auto;
		width: 140px;
	}

	.goreleaser-logo-card {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 0.4rem;
		padding: 1rem;
		border-radius: 8px;
		border: 1px solid rgba(0, 0, 0, 0.08);
		font-size: 0.85rem;
		font-weight: 500;
		text-align: center;
	}

	.dark .goreleaser-logo-card {
		border-color: rgba(255, 255, 255, 0.08);
	}

	.goreleaser-logo-card img {
		width: 48px;
		height: 48px;
		border-radius: 8px;
	}

	.goreleaser-sponsors-tiers {
		margin-bottom: 1rem;
	}

	.goreleaser-sponsors-tier {
		margin-bottom: 2rem;
	}

	.goreleaser-sponsors-tier-label {
		text-align: center;
		font-size: 0.75rem;
		font-weight: 600;
		letter-spacing: 0.1em;
		text-transform: uppercase;
		color: #9ca3af;
		margin-bottom: 1rem;
	}

	.goreleaser-sponsors-grid {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 1.5rem;
	}

	.goreleaser-sponsor-item {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 0.5rem;
		font-size: 0.85rem;
		font-weight: 500;
		text-align: center;
		text-decoration: none;
		color: inherit;
	}

	.goreleaser-sponsor-item img {
		border-radius: 8px;
	}

	@media (max-width: 768px) {
		.goreleaser-hero {
			flex-direction: column;
			padding: 2rem 1.5rem 3rem;
		}
		.goreleaser-hero__image {
			display: none;
		}
		.goreleaser-hero h1 {
			font-size: 2rem;
		}
	}
</style>

<section id="content" class="goreleaser-hero-section">
	<div class="goreleaser-hero-stars" aria-hidden="true">
		{{ range seq 1 40 }}<span style="--i: {{ . }}"></span>{{ end }}
	</div>
	<div class="goreleaser-hero">
		<div class="goreleaser-hero__content">
			<h1 class="gradient-text">Release engineering, simplified.</h1>
			<p>
				We handle the complexities of releasing so you can focus on
				building what really matters:
				<strong class="gradient-text-2">your software</strong>.
			</p>
			<!-- prettier-ignore -->
			<div class="lang-icons">
				{{ range $icon := slice "go" "rust" "zig" "typescript" "python" }}
				{{ partial "utils/icon.html" (dict
					"name" $icon
					"attributes" `height=1.75em class="hx:inline-block hx:align-middle"`
				)}}
				{{ end }}
			</div>
			<!-- prettier-ignore -->
			<a href="/getting-started/intro/" class="goreleaser-btn goreleaser-btn--primary">
				{{ partial "utils/icon.html" (dict
					"name" "lightning-bolt"
					"attributes" `height=1em class="hx:inline-block hx:align-middle"`
				) }} Get started
			</a>
			<!-- prettier-ignore -->
			<a href="/pro/" class="goreleaser-btn goreleaser-btn--secondary">
				{{ partial "utils/icon.html" (dict
					"name" "sparkles"
					"attributes" `height=1em class="hx:inline-block hx:align-middle"`
				) }} Pro
			</a>
		</div>
		<div class="goreleaser-hero__image">
			<img
				src="/hero.png"
				width="480"
				alt="GoReleaser hero image"
				fetchpriority="high"
			/>
		</div>
	</div>
	<div class="goreleaser-section-inner">
		<div class="goreleaser-screenshot">
			<img
				src="/goreleaser.svg"
				alt="GoReleaser releasing an example project."
			/>
		</div>
	</div>
</section>

<section class="goreleaser-body-section">
	<div class="goreleaser-section-inner">
		<div class="goreleaser-section-title">
			<h2>Everything you need to release with confidence</h2>
		</div>
		<p class="goreleaser-section-subtitle">
			GoReleaser does everything you need to create a professional release
			process for Go, Rust, TypeScript, Zig, and Python projects.
		</p>

		<div class="goreleaser-feature-grid">
			<div class="goreleaser-feature-card">
				<!-- prettier-ignore -->
				<h3>
					{{ partial "utils/icon.html" (dict
						"name" "lightning-bolt"
						"attributes" `height=1.1em class="hx:inline-block hx:align-middle hx:mr-1"`
					) }}
					Fast &amp; Automated
				</h3>
				<p>
					From commit to a release in seconds &mdash; automate your
					entire workflow with a single command.
				</p>
			</div>
			<div class="goreleaser-feature-card">
				<!-- prettier-ignore -->
				<h3>
					{{ partial "utils/icon.html" (dict
						"name" "globe-alt"
						"attributes" `height=1.1em class="hx:inline-block hx:align-middle hx:mr-1"`
					) }}
					Multiple Languages
				</h3>
				<p>
					First-class support for Go, Rust, TypeScript, Python, and
					Zig projects.
				</p>
			</div>
			<div class="goreleaser-feature-card">
				<!-- prettier-ignore -->
				<h3>
					{{ partial "utils/icon.html" (dict
						"name" "desktop-computer"
						"attributes" `height=1.1em class="hx:inline-block hx:align-middle hx:mr-1"`
					) }}
					Cross-Platform
				</h3>
				<p>
					Build and release for multiple platforms and architectures.
				</p>
			</div>
			<div class="goreleaser-feature-card">
				<!-- prettier-ignore -->
				<h3>
					{{ partial "utils/icon.html" (dict
						"name" "cube"
						"attributes" `height=1.1em class="hx:inline-block hx:align-middle hx:mr-1"`)
					}}
					Multiple Formats
				</h3>
				<p>
					Package your software exactly how your users want it &mdash;
					from binaries to Docker images and system packages.
				</p>
			</div>
			<div class="goreleaser-feature-card">
				<!-- prettier-ignore -->
				<h3>
					{{ partial "utils/icon.html" (dict
						"name" "collection"
						"attributes" `height=1.1em class="hx:inline-block hx:align-middle hx:mr-1"`)
					}}
					Package Managers
				</h3>
				<p>
					Automatically publish to Homebrew, Scoop, Winget, AUR, Nix,
					and more.
				</p>
			</div>
			<div class="goreleaser-feature-card">
				<!-- prettier-ignore -->
				<h3>
					{{ partial "utils/icon.html" (dict
						"name" "shield-check"
						"attributes" `height=1.1em class="hx:inline-block hx:align-middle hx:mr-1"`)
					}}
					Security Made Easy
				</h3>
				<p>
					Release with confidence using built-in SBOM generation, code
					signing, and notarization.
				</p>
			</div>
			<div class="goreleaser-feature-card">
				<!-- prettier-ignore -->
				<h3>
					{{ partial "utils/icon.html" (dict
						"name" "terminal"
						"attributes" `height=1.1em class="hx:inline-block hx:align-middle hx:mr-1"`)
					}}
					GitHub Actions and beyond
				</h3>
				<p>
					Works seamlessly with GitHub Actions, GitLab CI, and other
					popular CI/CD platforms.
				</p>
			</div>
			<div class="goreleaser-feature-card">
				<!-- prettier-ignore -->
				<h3>
					{{ partial "utils/icon.html" (dict
						"name" "chip"
						"attributes" `height=1.1em class="hx:inline-block hx:align-middle hx:mr-1"`)
					}}
					AI Ready
				</h3>
				<p>
					Easily integrate with AI tools using the
					<a href="https://github.com/goreleaser/mcp"
						>GoReleaser MCP</a
					>.
				</p>
			</div>
			<div class="goreleaser-feature-card">
				<!-- prettier-ignore -->
				<h3>
					{{ partial "utils/icon.html" (dict
						"name" "speakerphone"
						"attributes" `height=1.1em class="hx:inline-block hx:align-middle hx:mr-1"`)
					}}
					Keep users informed
				</h3>
				<p>
					Generate customizable changelogs and announce releases to 𝕏,
					Slack, Discord, and more.
				</p>
			</div>
		</div>

		<div class="goreleaser-section-title">
			<h2>Supported by Amazing Sponsors</h2>
		</div>
		<p class="goreleaser-section-subtitle">
			These are some of the companies that help make GoReleaser possible.
			<a href="/sponsors/">Become a sponsor!</a>
		</p>

		<div class="goreleaser-sponsors-tiers">
			<!-- sponsors:begin -->
			<!-- this list is auto-generated by https://github.com/goreleaser/sponsors -->

			<div class="goreleaser-sponsors-tier">
				<div class="goreleaser-sponsors-tier-label">Diamond</div>
				<div class="goreleaser-sponsors-grid">
					<a
						class="goreleaser-sponsor-item"
						href="https://serpapi.com/?utm_source=goreleaser&utm_medium=sponsor&utm_campaign=homepage&utm_content=github"
						target="_blank"
						rel="noopener sponsored"
					>
						<img
							src="https://github.com/serpapi.png"
							alt="SerpApi"
							width="128"
							height="128"
						/>
						SerpApi
					</a>
				</div>
			</div>
			<div class="goreleaser-sponsors-tier">
				<div class="goreleaser-sponsors-tier-label">Gold</div>
				<div class="goreleaser-sponsors-grid">
					<a
						class="goreleaser-sponsor-item"
						href="https://resources.github.com/github-secure-open-source-fund/?utm_source=goreleaser&utm_medium=sponsor&utm_campaign=homepage&utm_content=github"
						target="_blank"
						rel="noopener sponsored"
					>
						<img
							src="https://avatars.githubusercontent.com/u/199005812?s=96&v=4"
							alt="GitHub SecureOSS Fund "
							width="96"
							height="96"
						/>
						GitHub SecureOSS Fund 
					</a>
					<a
						class="goreleaser-sponsor-item"
						href="https://nitric.io?utm_source=goreleaser&utm_medium=sponsor&utm_campaign=homepage&utm_content=github"
						target="_blank"
						rel="noopener sponsored"
					>
						<img
							src="https://avatars.githubusercontent.com/u/72055470?s=96&v=4"
							alt="nitric"
							width="96"
							height="96"
						/>
						nitric
					</a>
				</div>
			</div>
			<div class="goreleaser-sponsors-tier">
				<div class="goreleaser-sponsors-tier-label">Silver</div>
				<div class="goreleaser-sponsors-grid">
					<a
						class="goreleaser-sponsor-item"
						href="https://www.n-ix.com/?utm_source=goreleaser&utm_medium=sponsor&utm_campaign=homepage&utm_content=opencollective"
						target="_blank"
						rel="noopener sponsored"
					>
						<img
							src="https://images.opencollective.com/n-ix-ltd/575a7a5/logo.png?height=80"
							alt="N-iX Ltd"
							width="80"
							height="80"
						/>
						N-iX Ltd
					</a>
				</div>
			</div>
			<!-- sponsors:end -->
		</div>

		<div class="goreleaser-section-title">
			<h2>Trusted by Industry Leaders</h2>
		</div>
		<p class="goreleaser-section-subtitle">
			Join
			<a href="/resources/users/">
				thousands of developers and companies
			</a>
			who rely on GoReleaser for their mission-critical releases.
		</p>

		<div class="goreleaser-logos-marquee">
			<div class="goreleaser-logos-marquee__track">
			<div class="goreleaser-logo-card">
				<img
					src="https://github.com/google.png?s=48"
					alt="Google"
				/>
				Google
			</div>
			<div class="goreleaser-logo-card">
				<img
					src="https://github.com/microsoft.png?s=48"
					alt="Microsoft"
				/>
				Microsoft
			</div>
			<div class="goreleaser-logo-card">
				<img
					src="https://github.com/aws.png?s=48"
					alt="AWS"
				/>
				AWS
			</div>
			<div class="goreleaser-logo-card">
				<img
					src="https://github.com/ibm.png?s=48"
					alt="IBM"
				/>
				IBM
			</div>
			<div class="goreleaser-logo-card">
				<img
					src="https://github.com/github.png?s=48"
					alt="GitHub"
				/>
				GitHub
			</div>
			<div class="goreleaser-logo-card">
				<img
					src="https://github.com/kubernetes.png?s=48"
					alt="Kubernetes"
				/>
				Kubernetes
			</div>
			<div class="goreleaser-logo-card">
				<img
					src="https://github.com/vmware.png?s=48"
					alt="VMware"
				/>
				VMware
			</div>
			<div class="goreleaser-logo-card">
				<img
					src="https://github.com/hashicorp.png?s=48"
					alt="HashiCorp"
				/>
				HashiCorp
			</div>
			<div class="goreleaser-logo-card">
				<img
					src="https://github.com/shopify.png?s=48"
					alt="Shopify"
				/>
				Shopify
			</div>
			<div class="goreleaser-logo-card">
				<img
					src="https://github.com/uber.png?s=48"
					alt="Uber"
				/>
				Uber
			</div>
			<div class="goreleaser-logo-card">
				<img
					src="https://github.com/datadog.png?s=48"
					alt="Datadog"
				/>
				Datadog
			</div>
			<div class="goreleaser-logo-card">
				<img
					src="https://github.com/splunk.png?s=48"
					alt="Splunk"
				/>
				Splunk
			</div>
			<div class="goreleaser-logo-card">
				<img
					src="https://github.com/grafana.png?s=48"
					alt="Grafana"
				/>
				Grafana
			</div>
			<div class="goreleaser-logo-card">
				<img
					src="https://github.com/nginx.png?s=48"
					alt="NGINX"
				/>
				NGINX
			</div>
			<div class="goreleaser-logo-card">
				<img
					src="https://github.com/newrelic.png?s=48"
					alt="New Relic"
				/>
				New Relic
			</div>
			<div class="goreleaser-logo-card">
				<img
					src="https://github.com/pulumi.png?s=48"
					alt="Pulumi"
				/>
				Pulumi
			</div>
			<div class="goreleaser-logo-card">
				<img
					src="https://github.com/sourcegraph.png?s=48"
					alt="Sourcegraph"
				/>
				Sourcegraph
			</div>
			<div class="goreleaser-logo-card">
				<img
					src="https://github.com/planetscale.png?s=48"
					alt="PlanetScale"
				/>
				PlanetScale
			</div>
			<div class="goreleaser-logo-card">
				<img
					src="https://github.com/minio.png?s=48"
					alt="MinIO"
				/>
				MinIO
			</div>
			<div class="goreleaser-logo-card">
				<img
					src="https://github.com/nats-io.png?s=48"
					alt="NATS"
				/>
				NATS
			</div>
			<div class="goreleaser-logo-card">
				<img
					src="https://github.com/sigstore.png?s=48"
					alt="Sigstore"
				/>
				Sigstore
			</div>
			<div class="goreleaser-logo-card">
				<img
					src="https://github.com/lovablelabs.png?s=48"
					alt="Lovable"
				/>
				Lovable
			</div>
			</div>
		</div>

		<a
			rel="me"
			href="https://fosstodon.org/@goreleaser"
			style="display: none"
		></a>
	</div>
</section>
<script>
	(() => {
		const hero = document.querySelector(".goreleaser-hero-section");
		const stars = document.querySelectorAll(".goreleaser-hero-stars span");
		const reducedMotion = window.matchMedia(
			"(prefers-reduced-motion: reduce)",
		);

		if (!hero || !stars.length || reducedMotion.matches) {
			return;
		}

		let ticking = false;

		const updateStars = () => {
			ticking = false;

			const rect = hero.getBoundingClientRect();
			const offset = Math.min(Math.max(-rect.top, 0), rect.height);

			stars.forEach((star, index) => {
				const xDepth = 0.25 + ((index * 3) % 5) * 0.06;
				const yDepth = 0.10 + ((index * 7) % 10) * 0.03;

				star.style.setProperty(
					"--goreleaser-star-x",
					`${(offset * xDepth).toFixed(2)}px`,
				);
				star.style.setProperty(
					"--goreleaser-star-y",
					`${(offset * yDepth).toFixed(2)}px`,
				);
			});
		};

		const requestUpdate = () => {
			if (ticking) {
				return;
			}

			ticking = true;
			requestAnimationFrame(updateStars);
		};

		updateStars();
		window.addEventListener("scroll", requestUpdate, { passive: true });
		window.addEventListener("resize", requestUpdate);
	})();

	(() => {
		const track = document.querySelector(".goreleaser-logos-marquee__track");
		if (!track) return;
		Array.from(track.children).forEach((node) => {
			const clone = node.cloneNode(true);
			clone.setAttribute("aria-hidden", "true");
			track.appendChild(clone);
		});
	})();
</script>
{{ end }}
