A community-driven platform for Vermonters to surface local challenges, share resources, and build solutions together through open source technology.
Live site: verso-uvm.github.io/Open-Vermont
Open Vermont helps communities identify problems worth solving and connects people with the existing resources — organizations, tools, funding, and skills — already available to address them. The platform is built around three activities:
- Opportunities — Community members submit challenges they want to see addressed. Others vote to signal priority. Voting uses GitHub reactions (👍) so everything stays transparent and tied to real accounts.
- Events — A calendar of maker meetups, open hours, hackathons, and skillshares happening across Vermont.
- Resources — A directory of local libraries, makerspaces, UVM Extension offices, and open source references organized by all 14 Vermont counties.
The site is a static HTML/CSS site deployed via GitHub Pages. No framework, no build step — just files.
Open-Vermont/
├── index.html # Homepage with mission statement and code of conduct
├── opportunities.html # Community opportunity cards with live vote counts
├── events.html # Upcoming events calendar
├── resources.html # Resources by Vermont county + open source topics
├── contact.html # Contact form (Formspree) and GitHub links
├── discussions.html # Community discussion threads (currently unlinked)
├── styles.css # Full design system — edit this for all visual changes
├── img/
│ └── hero.jpg # Homepage hero image
└── .github/
└── workflows/
└── static.yml # GitHub Pages deployment workflow
No build tools required. Open any HTML file directly in a browser, or serve with any static file server:
# Python
python -m http.server 8000
# Node
npx serve .Then visit http://localhost:8000.
Opportunities are tracked as GitHub Issues with the opportunity label.
- Open a new issue using the opportunity template
- Add the label
opportunity - Note the issue number GitHub assigns (shown in the URL as
/issues/N) - A maintainer reviews the submission (see criteria below) and, if approved, edits
opportunities.htmlto add a new.problemcard withdata-issue="N"
The page JavaScript will automatically fetch the 👍 reaction count from GitHub and display it as the vote total. Cards are re-sorted by vote count on page load.
Voting: Any GitHub user can open the issue and click 👍 to vote. No extra infrastructure required.
Good opportunities:
- Describe a real community challenge relevant to Vermonters
- Identify existing resources — organizations, tools, or funding — already available to help address it
- Are framed as challenges to solve collaboratively, not policy demands or partisan positions
- Follow the Code of Conduct
Maintainers aim to respond within 7 days. Submissions may be approved as-is, returned for edits, or declined with a brief explanation.
Events are static HTML in events.html. To add one:
- Copy an existing
.eventblock - Update the date badge, title, location, and description
- Submit a pull request, or use the contact form to send the details and a maintainer will add it
Resources are organized by Vermont county in resources.html. To add a library, makerspace, or organization:
- Find the appropriate
<div class="resource-section" id="[county]">block - Add a
.resource-itemwith the organization name, address, and website - Submit a pull request
The contact form in contact.html posts to Formspree. To activate it:
- Create a free Formspree account
- Create a new form and copy the form ID (looks like
xabcdefg) - In
contact.html, replaceYOUR_FORM_IDin the formactionattribute:<form action="https://formspree.io/f/YOUR_FORM_ID" method="POST">
The site deploys automatically to GitHub Pages on every push to main via the workflow in .github/workflows/static.yml. No manual steps needed.
Contributions are welcome — bug fixes, new resources, new opportunities, design improvements.
- Fork the repository
- Create a branch:
git checkout -b your-branch-name - Make your changes
- Open a pull request with a clear description of what changed and why
Please review the Code of Conduct before contributing. Key points: be respectful, focus on community problem-solving (not partisan framing), and assume positive intent.
Open Vermont is a project of VERSO at the University of Vermont. Views expressed by community contributors do not represent the University of Vermont.
MIT License — Copyright (c) 2025 Kendall Fortney. See LICENSE for details.