This website is the epitome of user-generated content, of “web 2.0,” of social media. Everything on this website can be created, removed, or altered by any user, especially the site itself. All that you, the user, have to do in order to change or add something, is to create an account and then go to the GitHub page for this website (linked at the bottom of the homepage), fork the project, and submit a pull request. A bill will automatically be created which you can see on the site. After that, it is up to your fellow users to vote on your proposed changes. If the majority of votes agree with you, the change will be automatically accepted and deployed to the live site. If they don’t, the pull request will be closed and you will have to try again. Anyone, regardless of technical knowledge and experience, can vote on these changes, and anyone who knows how to write Python can propose changes. This is the ultimate democratic technology, the only website where the site itself is user-generated. You, user, are invited to make this experiment into anything you like.
Not everything can be decided by a simple majority. There are some changes that I consider so significant that they need more than half of the user base to support them before they are added. Code that, if changed, would radically alter the nature of the site is identified in a file in the root of the repository called "constitution.json". Any proposals that change any of the lines protected by the Constitution, which includes the Constitution itself, require at least a 2/3rds majority of votes cast in favor in order to pass. Like other legal constitutions, this document will ideally prevent controversial total overhauls or radical changes from occurring lightly or quickly. Any proposal is welcome to add or remove constitutional status from any file, but bear in mind that doing so is, by definition, a constitutional amendment, and will therefore trigger the supermajority requirement in order to pass. This means that guarding your own changes with the constitution will not be easy, and new changes are intentionally not as difficult to revert as major or core features of the website. This policy reinforces the idea of "lock-in," where the core basis of a piece of technology or a group of technologies becomes much harder to change than later additions. This clearly has downsides, and my code is far from perfect and could benefit from other people editing it, but I deemed protecting the core functionality and purpose of the site and encouraging new additions more important.
Users will not have access to the accounts or information of any other user through this site. This is part of the reason only third-party logins are enabled; the site stores no passwords or sensitive information, only login keys which are configured solely for this site. Obviously, certain proposed changes could expose that or other information, such as email addresses, or otherwise harm the security of the site or its users. As the creator and webmaster of this website, I reserve the right to block, revert, or add any change to the site at any time for any reason. This unfortunately flies in the face of democracy and the intended purpose of the site. Ideally you, the users, will work to prevent any malicious actors from carrying out damage. However, it is ultimately my responsibility to ensure the safety of all accounts. If, despite my best efforts and my power over this website, harmful changes are continually proposed or are ever deployed, I will shut down the website.
This website is inspired by the ideas of democratic governance, or government "by the people." In particular, it serves as a direct democracy, where every proposed law or policy change is put to a popular referendum, or “plebiscite”, letting the “citizens” (aka users) make every decision about how the site will be governed. The difference between this website and a real country is that the governance, the day-to-day running of the institutions, is done automatically by whatever code is deployed to the server. Code obviously cannot intentionally subvert the intentions of the users who approve that code, as opposed to the myriad of people required to maintain a nation, with varying degrees of power and each with their own goals and agendas. Despite this major caveat, this website was inspired by real governments, and I hope it can serve as a real-world analogue to inspire governments in exchange.
The use of distributed version control software, namely Git, has been immensely powerful for “open-source,” or community developed, software, by simplifying the process for maintainers to review and include contributions by the community. This website replaces the step of approval by a maintainer, or any central authority figure, with approval by the user base. Real law codes could undergo a similar shift with tools made possible by the internet. Already several local and state governments have begun experimenting with publishing their legal codes as Git repositories, and Washington DC even lets the public submit proposals through Github. These places are just beginning to understand the potential that these tools create, and I hope that this project can help to further demonstrate that potential. Git seems especially powerful for the process of “codification,” or combining all the pieces of legislation passed into a unified code of laws which can be used as a general reference. This is usually undertaken by unelected government officials, who can and have made mistakes. Git allows anyone to propose fixes or additions to such a code, as well as including tools such as blame to let everyone see who changed any part of the code. Tools like this one could facilitate the next generation of government transparency, encouraging public participation and political accountability.
If a bill is an amendment to the constitution, it will say so here.
If the time to vote on a bill has passed, the result will be shown here.