fv
=
[
,
]
--

Welcome to Functional Vote! This website lets you create and share free online polls that use ranked-choice voting. Create a new poll by entering a question, providing choices, and selecting security options.

poll

=
{

Question

=
"
"
,

Choices

=
["
"
,"
"
],

Options

=
[(
,"
Prevent multiple votes from the same IP address
")
(
,"
Use reCAPTCHA verification
")
]}
--
--

Check out a few of our example polls to see how our voting process works. Click a question and vote for your favorite preferences.

examples
=
]
--
{-

Why Ranked-Choice?

In a traditional single vote system, voters may only select one out of many options. Ranked-choice voting, instead, allows voters to rank multiple options in order of preference. If a voter's first preferred option does not gain enough collective votes to pass a threshold, that voter's second choice is counted instead, then third, and so forth.

Ranked-choice voting is typically fairer than traditional voting because preferential ranking is more flexible than casting a single vote in stone. Voters are incentivized to vote for their preferred options rather than for popular choices.

There are many resources online that explain ranked-choice voting in greater detail. We particularly like CGP Grey's video on this topic since that's how we were first introduced to the concept:

--

Why Functional Vote?

Functional Vote was started by us (Max and Aaron) when we couldn't easily find an online resource to make ranked-choice polls. We like working on software projects in our free time, so naturally, we tried to solve our own problem. We added a little educational twist, using only functional programming languages, and with Elm and Elixir in tow, we began Functional Vote.

-}