Built for Africa

Win every vote,
protect every count.

One place to run the whole campaign. Reach voters in the field, then count the vote yourself on election night. The app works with no signal, so nothing waits for a connection.

A woman in a headscarf raises her ballot paper above her head with both hands at a polling station under a tin roof, smiling, while others wait behind her.
Photo: Annie Spratt
Built on solid groundGo monorepoNATS JetStreamSupabase RLSES256 / JWKS

Win the vote. Protect the count.

Most campaigns run the ground game in one set of group chats and the count in another. Election Edge puts both in one place. We built it for the people who do the work under pressure.

Mobilization

Win the vote. from the ground up.

An app for the mobilizer in the field, and it works with no signal. Log who you meet and where they stand. Build a support map you can trust, record the issues people raise, and plan the follow-ups that turn into votes.

  • Log every voter you meet, even with no signal
  • A support map - one record per voter, no double counting
  • Capture the issues people raise on the ground
  • Plan follow-ups and turnout readiness, team by team
  • Team performance, so you know which teams deliver
  • Area leaders on record, even without the app
Explore Mobilization
People crossing a busy street in a Nairobi neighbourhood, with shopfronts, motorbikes and a billboard behind them.
Photo: Nicholas Gray
Vote Protection

Protect the count, to the declaration.

Your agents photograph the results form at each station and key in the figures, with or without signal. Election Edge runs your own count for every race and flags any number that looks wrong. Every figure keeps its photo, its agent and its time, so no one can change it without a trace.

  • Snap the results form at each station, signal or not
  • An independent parallel tally, per race
  • Strange numbers and clashes flagged for a second look
  • A record no one can change without a trace
  • Every race and every statutory results form, from president down to the local seat
  • Your last-election baseline and vote targets, on the map
Explore Vote Protection

How a result travels

  1. 1.

    Capture. Your agent photographs the results form and types in the figures - on a phone that works with no signal.

  2. 2.

    Sync. When a connection returns, the phone uploads. The network can drop at the worst time and you lose nothing.

  3. 3.

    Verify. Someone on your team checks each result against the photo, then confirms or flags it. No automated guess enters the count. A person signs off on every figure.

  4. 4.

    Add it up. Confirmed results go into your live count at once, race by race, as stations report in.

  5. 5.

    Prove it. Every number leads back to its photo and to the agent who sent it. You can show that trail to anyone.

Before the count

Know the ground before the first form goes up.

A results night only makes sense against what you expected. Load the polls, the last result and your targets, so every incoming figure lands with context.

  • Opinion polls

    Upload the polls you commission or collect. See the trend and the average per race. On results night, lay your own count over them.

  • Your last-election baseline

    Load last cycle's results station by station. We flag turnout that drifts from the baseline, and the map shows the swing.

  • Vote targets

    Set a target for every polling station. The map shows where you are ahead of it and where the ground team needs to go next.

Polls and baselines are yours to upload. Election Edge never supplies polling data or official results.

See how it fits the count
Command center

One screen for the whole campaign.

Coverage, incoming results, clashes and odd numbers sit on one screen. You zoom from the whole country to a single station and keep your place. You get an answer in two clicks, not eleven tabs.

  • The ground game and the count, side by side on one screen
  • Zoom from the whole country down to a single polling station
  • Each person sees the view that fits their job
  • Sort out clashes and odd numbers right where you spot them
  • The person who captures a result is never the one who confirms it
The Nairobi skyline lit up at night under a dark sky.
Photo: imsogabriel stock
Verification

One person checks each figure before it counts.

On election night, speed matters. Your reviewer sees the photo and the typed figures side by side and confirms each result in seconds, from the keyboard. A person signs off on every number, and only then does it count.

  • J / Knext · previous
  • confirm result
  • Eedit a figure
  • Fflag conflict
The photo of the form
Form 34A
Presidential election results at the polling station
Polling station
Eastfield Social Hall
Registered voters
1,204
Name of candidateVotes
Candidate A412
Candidate B338
Candidate C97
Rejected ballot papers
11
Total votes cast
858
Presiding officerDate and stamp
Agent-enteredunder review
Candidate A412matches
Candidate B338matches
Candidate C97edited
Rejected ballot papers11matches
Total votes cast868check

Total cast is typed as 868. The form reads 858, and the four lines above add up to 858. The reviewer sends it back to be rechecked against the paper before it counts.

FlagConfirm
Illustration. The station, the candidates and the figures are made up. The form shown is Kenya's Form 34A; your country's results form works the same way.
Principles

The rules we do not bend, in the field or at the count.

In region
Your data stays in the region.
We host in the region and keep a clear trail behind every confirmed number, so your record stays with the election it belongs to.
Separation
No one person controls the count.
The person who captures a result never confirms it, and never exports it. We built that separation into the system, so no setting can switch it off.
Works offline
The phone keeps working.
Captures wait on the device and upload when a connection returns, so bad signal never costs you a result.
Provable
Numbers you can defend.
Every confirmed result leads back to its photo and to the agent who sent it, and no one can change it without a trace.
Under the hood

What runs the platform.

For the engineers on your team, this is what runs the platform today. It is live, and we built it for election-night load.

Backend
Go monorepo · single binary · ~80 endpoints
Realtime
NATS JetStream · Postgres LISTEN/NOTIFY fallback · WS + SSE
Data
Supabase Postgres · RLS per campaign · S3 presigned & resumable
Auth
Supabase ES256/JWKS · HS256 agent-session JWTs · capability roles
Web
Next.js · Tailwind v4 · shadcn · Inter / JetBrains Mono
Mobile
React Native · Expo · SQLite offline queue
Now onboarding

Protect every vote,
from the doorstep to the declaration.

We take on a small number of campaigns and parties each cycle, so access is by invitation. Tell us about your race. We set up a short call, show you the platform live, and get you running if it is a fit.

Request access

Approved teams get a sign-in link after a short qualification call.

What happens next
  1. 01
    Tell us about your race
    A two-minute form: country, race, and rough scale.
  2. 02
    See it live
    A short call and a walkthrough of the real platform.
  3. 03
    You're set up
    Approved teams get a sign-in link and onboarding.