---
layout: default
title: "OpenTally: Advanced online election counting"
---

<!-- Header-->
<header class="bg-dark py-5">
	<div class="container px-5">
		<div class="row gx-5 align-items-center justify-content-center">
			<div class="col-lg-8 col-xl-7 col-xxl-6">
				<div class="my-5 text-center text-xl-start">
					<h1 class="display-5 fw-bolder text-white mb-2">Advanced online election counting</h1>
					<p class="lead fw-normal text-white-50 mb-4">Count instant runoff and single transferable vote elections for free, no downloads or sign-up required</p>
					<div class="d-grid gap-3 d-sm-flex justify-content-sm-center justify-content-xl-start">
						<a class="btn btn-primary btn-lg px-4 me-sm-3" href="{{ site.baseurl }}/stv/">Launch OpenTally</a>
						<a class="btn btn-outline-light btn-lg px-4" href="{{ site.baseurl }}/docs/quick-start.html">Quick Start Guide</a>
					</div>
				</div>
			</div>
			<div class="col-lg-8 col-xl-5 col-xxl-6 d-block text-center"><img class="img-fluid rounded-3 my-5" src="{{ site.baseurl }}/assets/headerimg.png" alt="Screenshot of OpenTally" /></div>
		</div>
	</div>
</header>

<!-- Features section-->
<section class="py-5 bg-light" id="features">
	<div class="container px-5 my-5">
		<div class="row gx-5">
			<div class="col-lg-4 mb-5 mb-lg-0"><h2 class="fw-bolder mb-0">Key features</h2></div>
			<div class="col-lg-8">
				<div class="row gx-5 row-cols-1 row-cols-md-2">
					<div class="col mb-5 h-100">
						<h2 class="h5">Runs in your browser</h2>
						<p class="mb-0">No downloads or sign-ups are required. OpenTally counts are computed entirely inside your browser, and no data ever leaves your computer.</p>
					</div>
					<div class="col mb-5 h-100">
						<h2 class="h5">Wide range of STV systems</h2>
						<p class="mb-0">OpenTally supports Gregory (inclusive and exclusive, weighted and unweighted), Meek and Wright variants of the single transferable vote.</p>
					</div>
					<div class="col mb-5 mb-md-0 h-100">
						<h2 class="h5">Support for arbitrary constraints</h2>
						<p class="mb-0">OpenTally is the only publicly available election counting software to support arbitrary combinations of constraints, such as gender quotas and other affirmative action requirements.</p>
					</div>
					<div class="col h-100">
						<h2 class="h5">Free and open source</h2>
						<p class="mb-0">Source code for OpenTally is publicly available under the <a href="{{ site.git_url }}/tree/COPYING">GNU AGPLv3</a>.</p>
					</div>
				</div>
			</div>
		</div>
	</div>
</section>

<!-- Blog preview section-->
<section class="py-5">
	<div class="container px-5 my-5">
		<div class="row gx-5 justify-content-center">
			<div class="col-lg-8 col-xl-6">
				<div class="text-center">
					<h2 class="fw-bolder">From our blog</h2>
					<p class="lead fw-normal text-muted mb-5">Latest news and posts from the OpenTally blog</p>
				</div>
			</div>
		</div>
		<div class="row gx-5">
			{% include_relative _news.html %}
		</div>
		<div class="row gx-5 justify-content-center">
			<div class="col-8 text-center">
				<a class="btn btn-outline-primary btn-lg px-4" href="{{ site.url }}/blog/tag/opentally/">Read More</a>
			</div>
		</div>
	</div>
</section>
