Manually added frontend code from bryanbraun/petitions-newslink repo