LOCAL OPINIONS, USEFULLY APPLIED
A Civic Survey With a Real Result
This isn't a poll with a margin of error or a scientific sample. It's a community input tool — a lightweight way for Bedford residents to say which local places they think deserve recognition. Pick your favorites in each category, and we'll tally the responses.
After Election Day, the campaign will publish a Best of Bedford Community Picks list based on everything submitted. No winners are declared before then. Until the survey closes, results are provisional and will keep shifting as more responses come in.
You can vote once per category. The survey runs through Election Day, 2026. No account, no email, no sign-in required.
Cast Your Picks
Vote on Your Local Favorites
Choose one favorite in each category and submit your picks. Final results will be published after Election Day as a resident-powered Best of Bedford list.
Seven categories. One Bedford list.
Vote for local favorites and help build the resident-powered Best of Bedford Community Picks.
All Done
Thanks for Your Community Picks
Your responses have been recorded. The Best of Bedford Community Picks list will be published after Election Day.
How This Was Built
How This Was Built
This campaign is committed to showing its work, not just stating positions. When a tool or workflow helps clarify a local issue, it should be explained, shared, and made useful beyond the campaign. The instruction set used to build a public survey tool is published here in full.
Act as a civic survey designer, lightweight data architect, and front-end builder tasked with creating a public voting tool that turns community preferences into a transparent Best of list. The tool to build is: A Best of Bedford community picks survey that lets residents vote on local favorites during a campaign and publishes a final community-inputted list after Election Day. Objective: Create a public-facing voting page that feels simple, neighborly, and trustworthy. The page should collect lightweight community input, show provisional results when available, and make clear that final selections will not be published until after Election Day and all responses have been tallied. Design and maintain these priorities throughout the build: 1. Civic Framing Frame the survey as a participation tool, not a scientific poll or endorsement system. Explain that residents are helping shape a community-inputted Best of Bedford list. The tone should be fun, local, and transparent. 2. Structured Categories Build the survey around clear categories with fixed answer choices. Each category should be easy to understand at a glance, with one selected response per category. Keep the structure simple enough that another town could adapt it quickly. 3. Lightweight Voting Flow Let residents vote with minimal friction. A vote should visibly register, provide a confirmation, and avoid making the user feel trapped in a long form. If browser-based limits are used before backend validation exists, explain nothing publicly unless needed. Keep the experience smooth and respectful. 4. Google Sheets And Apps Script Integration Use Google Sheets as the lightweight database and Apps Script as the public endpoint. The website should submit votes to Apps Script, Apps Script should append or update rows in the sheet, and the page should retrieve aggregated results from the same source or a published JSON endpoint. 5. Data Model Track only what is necessary: category, selected answer, timestamp, optional hamlet if used, and a browser/session identifier if needed for basic duplicate prevention. Do not collect unnecessary personal data. Avoid names, emails, or addresses unless there is a clear reason. 6. Results And Leaderboards Display running results only when real response data exists. Results should be provisional and clearly described as community responses, not final winners. Empty states should look intentional and polished rather than broken or blank. 7. Final Tally Logic The final Best of Bedford list should be published only after Election Day. Until then, use language like "running responses" or "current community input." Do not imply that any category has been decided early. 8. Abuse Prevention Use lightweight guardrails such as localStorage, session IDs, timestamp checks, and server-side duplicate detection if available. Avoid heavy-handed authentication unless the project actually needs it. The goal is civic participation, not bureaucratic friction. 9. Visual Design Match the existing Uncampaign design system: cream backgrounds, moss and sage accents, restrained borders, editorial typography, and calm spacing. The survey should feel like a civic artifact, not a noisy contest platform. 10. Accessibility And Failure States Each category should be keyboard accessible. Buttons must have clear labels. If submission fails, show a useful message and allow retry. If results cannot load, the voting experience should still work locally and explain that results will refresh later. Build instructions: - Start with a hero and back link to Best of Bedford. - Present a short civic explanation. - Render each category as a clear voting card. - Submit each vote through the Apps Script endpoint. - Retrieve and display provisional results when available. - Avoid fake vote totals in production. - Keep the final list unresolved until after Election Day. - Include a reusable configuration object for categories and options. - Keep the code readable enough that another town can copy the pattern. Output format: 1. Civic framing 2. Survey architecture 3. Google Sheets and Apps Script data flow 4. Vote submission and duplicate prevention 5. Results and provisional leaderboard logic 6. Privacy and accessibility rules 7. Final implementation checklist