Vote Out Covid: community spotlight
GFSC's community Discord supports people using technology to futher their social campaigns. Kim caught up with Dave to chat about his Vote Out Covid campaign's goals for the 1st May UK elections, their Django webapp, and building Corsi-Rosenthal boxes.

Tell me a bit about you and the Vote Out Covid group. Is this an existing campaign you joined, or is it something you started yourself?
At the start of the ongoing pandemic, I got very interested in what interventions were useful, having previously worked tangentially as a computer nerd in the field of epidemiology. When the restrictions were lifted, me and some other friends found ourselves rather isolated: either we have immune-compromised friends and family, or we're the main providers for our families and can't risk contracting Long Covid.
Now we're 5 years into the pandemic and dozens of people are still dying from Covid-19 every week while millions of people are affected by Long Covid. There are tried and tested interventions out there which aren't particularly expensive, but there's no political will to implement them. Even nominally leftist or pro-science spaces have abandoned risk mitigations.
Between us we've tried to do a few things; I came up with the idea of lobbying candidates for the General Election in 2024 and Vote Out Covid was the brand name I ended up using for that.
I've set up a super simple tool to help people do that, you can view it here: https://voteoutcovid.org.uk/.
Why are air filters so important? What kind of boxes are you advocating people to get, and how much do they cost?
There's a lot of research that shows that air ventilation or filtration is one of the most cost effective public health interventions you can make, particularly where people are meeting from a wide area like schools, hospitals, bars and restaurants. The CDC recommend changing or filtering the air in a room five times per hour. The Class-ACT study suggests that filtering air in classroom can reduce respiratory disease rates, improving education outcomes. We know that air filters are effective in hospitals.
Commercial air filters can be expensive, but home-made Corsi-Rosenthal boxes can be really effective. I've made a couple myself which are each capable of filtering a 12m x 12m room for about £60. The filters don't need to be HEPA-grade (which can block free-floating viral particles) – COVID is typically carried in water droplets in exhaled air, and a MERV13 filter or better will capture the droplets.
How can people who run spaces or groups get an air filter?
There are community groups like ‘mask blocs’ and Breathe Easy who might help provide filters. I was hoping the Corsi-Rosenthal Trust UK might be a source but they seem to be concentrating on lobbying. Making your own is pretty simple and fun, even if the UK doesn't seem to have the convenient, rectangular ‘box fans’ which are common in the US.
The concept is pretty simple: just make a cube with filters on each side, cardboard on the bottom and a fan on the top. Duct tape it together so the air has to go through the filters to get blown out the top by the fan. I used a Pro-Elec 20” fan, removed the stand, and mounted it in a cardboard shim to make it square. I picked up MERV-13 filters from Temu which took a while to arrive.
My next project after Vote Out Covid will involve working with LGBT+ spaces in Manchester to help improve their air quality with both guidance and Corsi-Rosenthal boxes. Mostly because that's where I live and that's the community I most miss, selfishly enough!



A DIY Corsi-Rosenthal box. L-R: in parts, mid construction, and a different filter in situ in a community venue.
What's the goal of the webapp? What real world impact are you hoping to have?
It was alarming to see no mention of the ongoing Covid pandemic in the political party manifestos last year - that's what spurred me to start Vote Out Covid in the first place. There's just no political will to even recognise it exists at that kind of party policy level. I don't think that's a realistic goal for us at the moment.
I think that's because the wider societal ramifications are huge at that national level. The previous Government let the pandemic rip through the country and the Opposition let them, and continued that policy since they came to power. The NHS crisis is caused, in part, by huge staffing shortages caused by a massive spike in long-term sickness since the start of the pandemic. Nobody is going to stand up and take responsibility for this, and even if they did the public mood post-Partygate is to bury heads in the sand.
Politicians at various levels have both a duty and power to advocate for public health. I want to get public health interventions in place, even in a piecemeal manner, by politicians who don't get on Question Time.
I worked with Parliamentary candidates last year to come up with the three pledges for potential MPs, and I've had advice from a Councillor friend for this year's pledges: I wanted to be sure they were things candidates could actually do if elected.
I see the goal of the webapp to be a combination of education and pressure. It's about letting candidates know there's still a problem, that voters care about it, that they can do something about it, and most importantly that it doesn't cost very much and isn't very intrusive. And it's about letting voters know they're not alone, that they're not the only ones who still care about this issue.
Tell us a little bit about how you made it. Did you use something off the shelf or custom? Is it adaptable for other pressure groups?
I pretty much started from scratch with this one. I work in Infosec management these days, rather than coding or sysadmin, and I've never done frontend web development. I picked Python as a language and Django as a framework, simply because I was reasonably familiar with the former, and the latter seemed to be widely used which might make it easier to find contributors.
I've been familiar with the work of Democracy Club for a long time, and was very happy to use their new developer API for mapping postcodes to elections and candidates. Last year's edition of the site didn't deal with addresses split across boundaries at all, mostly due to my own laziness, but I've fixed that for this year. I do some cacheing locally to take some load off the API, because I want to be considerate!
The site uses an SQLite database which is fine for the load it gets. At the moment, I just build a single container which runs the Python application in gunicorn
, and I deploy that behind Traefik on an isolated Docker network. One of the enhancement issues is about properly serving static content using a parallel webserver, probably just lighttpd
. Dynamic scaling and load balancing is the sort of problem I'd love to have!
I started last year with a minimum viable project I cobbled together and threw online. This year's iteration is getting a bit more friendly for both users and developers. It'd be possible to adapt for other groups without too much work.
However, I can see a path towards something almost completely white label that other projects can use – just set the polling date, the type of elections you're interested in, and provide your own Django templates.
How can people support you or the campaign?
Right now, with the local elections looming on 1st May, the best way people can help is to spread awareness of the campaign. We have social media profiles on Fedi, Bluesky and Facebook. Share our posts, or a direct link to our website anywhere you think it might be welcome. Even if people don't have elections this year, they can sign up to stay informed which will help us build momentum.
In future, we have a number of open issues on our Gitlab project page that it'd be great to have a little help with! I've had a couple of merge requests already to improve the look of the site which is enormously helpful.
Finally: whether or not you're a candidate, see if community spaces near you could benefit from a Corsi-Rosenthal box!
Thanks so much to Dave for the interview. You can also chat to us on the GFSC Discord. Want us to cover your DIY campaign? Pop in and say hi, or let us know in the comments!
Comments ()