CAMPAIGN WEBSITE
A full campaign website for a local school board candidate: bio, platform, events, voter info and ways to volunteer, donate and sign up, plus a custom lookup tool that maps a voter's address to their seat.
- ROLEFreelance designer & developer
- TIMELINEAug 2026 – present
- TOOLSWix · Figma · ChatGPT
- 661Sessions in the first period
- 506Unique visitors
- 21Form submissions, 11 of them volunteer sign-ups
THE PROBLEM
A local school board candidate needed one place online to reach voters: who they are, what they stand for, when and where to meet them, how to vote, and easy ways to volunteer, donate or stay in touch. The site also had to work on a phone, since that is where most voters would find it, and give each voter a quick way to find their own district instead of reading a static list.
THE PROCESS
Designed and launched a responsive, multi-page site in Wix and Figma: home, meet the candidate, priorities, experience, voter info, events and contact, with a Donate button always in the navigation. Built the supporter forms (email signup, volunteer, contact, donation support) and connected them to the campaign's social channels. Gave the whole site one look: a blue, cream and orange palette with a serif heading type, so it reads as one campaign on every page. The one custom-built piece is the district lookup tool, embedded in the voter info page. For it, I researched the official boundary map, which was only available as a PDF, extracted its vector shapes into georeferenced GeoJSON, and matched an address's coordinates (from the U.S. Census Geocoder) against the five district polygons. I led the research, direction, interface design, debugging and testing, working with ChatGPT as an AI-assisted development partner, and iterated the tool through about 25 versions.
- ADDRESS
- GEOCODING
- COORDINATES
- DISTRICT POLYGON MATCH
- SEAT RESULT
THE HARD PARTS · DISTRICT LOOKUP
- Getting usable geometry: the source was an official PDF map, not a GIS dataset, so the district shapes had to be extracted, rebuilt and georeferenced.
- Address accuracy: ZIP code or city matching is not precise enough, so the lookup uses coordinates. Edge-case addresses are a known limit, so this is not claimed to cover every address.
- Browser and service limits: cross-origin rules shaped which services were practical, and a public map tile endpoint was dropped after an access problem.
- Responsive layout: the map notice needed repeated adjustment so text stayed readable and left-aligned at every width.
THE DECISIONS
- 1Organized the site around what a voter needs to do: learn about the candidate, check how to vote, and take action, with forms and a Donate button reachable from every page.
- 2Built the district lookup as an interactive embedded tool rather than a static info page, so each voter gets a personalized answer.
- 3Matched on coordinates and district polygons instead of ZIP code or neighborhood, because streets next to each other can sit in different seats.
- 4Added an outside-boundaries message so an address that falls outside all five seats gets an honest answer instead of a made-up one.
- 5Kept the result short and added a beta note pointing people to official county resources to verify, since wrong district information could mislead voters.
- 6Prioritized a mobile-first layout, since traffic skewed mobile and organic Facebook.
THE OUTCOME
661 sessions from 506 unique visitors in the site's first period, primarily mobile and organic Facebook traffic. 21 form submissions, including 11 volunteer sign-ups. The lookup tool is a campaign aid, not an official government service, and it does not determine voter eligibility.
THE PAGES HOME MEET THE CANDIDATE PRIORITIES EXPERIENCE VOTER INFO EVENTS CONTACT THE WAYS TO HELP EMAIL SIGNUP VOLUNTEER CONTACT DONATION SUPPORT DONATE + DISTRICT LOOKUP TOOL THE SITE, PAGE BY PAGEAn illustration of the site's structure: its pages and the ways visitors can help. Page names only, no real content.
MEET GET INVOLVED FIND YOUR SEAT BUILT FOR PHONESAn illustration of the mobile layout: simple header, one clear message, two actions, and the district lookup within reach.
Find Your School Board District Enter your address to see your school board district, trustee, and 2026 election information. Enter your address here... Find My District Seat 1 Seat 2 Seat 3 Seat 4 Seat 5 School District boundaries This service is in beta testing. Please verify your district information at your county elections website. SCHOOL DISTRICT Enter an address THE LOOKUP TOOL, LATESTThe lookup tool in its later version: blue, cream and orange, with a serif heading. Redrawn in code from the prototype, with sample text.
Find Your School Board District Enter your address to see your school board district, trustee, and 2026 election information. Enter your address here... Find My District District 1 District 2 District 3 District 4 District 5 School District boundaries This service is in beta testing. Please verify your district information at your county elections website. SCHOOL DISTRICT Enter an address THE LOOKUP TOOL, EARLYAn early version: address field, boundary map and result panel. Redrawn in code, with sample text.
SEAT 1 SEAT 2 SEAT 3 SEAT 4 SEAT 5 THE EXTRACTED SEATSThe five district shapes rebuilt from the official PDF map and converted to GeoJSON.
Find Your School Board District Enter your address to see your school board district, trustee, and 2026 election information. 123 Example Road Find My District The address was found, but it falls outside the five School Board Districts. Seat 1 Seat 2 Seat 3 Seat 4 Seat 5 School District boundaries This service is in beta testing. Please verify your district information at your county elections website. SCHOOL DISTRICT Enter an address OUTSIDE BOUNDARIES (STAGED)An illustrated example of the error state, staged for documentation. It is not a recording of a live session.