nowfound

Life & fun · September 18, 2024

BB

Bite Ballot – Vote on where to eat

This is a web app for quickly settling on where to eat as a group. (Feel free to critique the landing page.) Unique features compared to other polling apps: - No sign-up step. - Enhanced Approval Voting: veto/ok/prefer. You may vote for multiple restaurant options. - Real-time ballot updates so new candidates can be seen and voted on immediately. - Ties are always broken randomly. - Implemented with HTMx + hyperscript + jinja, enabling SSR and HATEOAS. If you want to test the functionality by yourself, you can start a ballot, then copy the join link and open it in a different…

What it does

In the maker’s words, at launch

This is a web app for quickly settling on where to eat as a group. (Feel free to critique the landing page.) Unique features compared to other polling apps: - No sign-up step. - Enhanced Approval Voting: veto/ok/prefer. You may vote for multiple restaurant options. - Real-time ballot updates so new candidates can be seen and voted on immediately. - Ties are always broken randomly. - Implemented with HTMx + hyperscript + jinja, enabling SSR and HATEOAS. If you want to test the functionality by yourself, you can start a ballot, then copy the join link and open it in a different browser (or device). Each browser will be recognized as a separate user. But give it a try in an actual group if you're able to. I find it nice and satisfying to use. You can just trust that the ballot result has picked the best place to eat for your group. Let me know if you feel the same way. Aside from designing and implementing a new voting system, the other part I'm most proud of is the join-ballot flow. The intersection of possible states creates a plethora of cases that need to be handled differently: - The joiner may not have a user (name) -> ask for name. - The joiner may already be in an active ballot -> confirm abandoning the current ballot to join the new one. - The joiner may be in a completed ballot -> let them join without confirmation. - The joiner may be trying to join the ballot they're already in -> tell them, and let them return to their ballot. - The joiner may have clicked their own join link as a way to get back to the ballot -> warn them to check if it has opened in a different browser. - The ballot they're trying to join may be completely abandoned or already finished -> tell them, then let them create a new ballot or return to their current ballot if they have one. Just handling all these different cases was hard enough, but I think I was able to simplify the code down enough to keep it maintainable. If I can get enough users and monetize this, maybe I can afford to add more features like maps, yelp stars, or menus by paying for Google Maps and/or Yelp Fusion API access. In the meantime, the next big feature would be persistent user accounts/logins so that a single user can sign in on different browsers/devices and have their restaurants and restaurant info (like links to Yelp pages) saved and synced -- while still supporting the original minimal sign-up flow (just name). But let me know if you can think of other good features to add.

Does the same job

all alternatives →

More life & fun this month

the category →
  • TL

    Life & fun · 10d ago · louisabraham.github.io

  • Photosynthesis fires two of your iPhone

    Life & fun · 28d ago · photosynthesis.camera

  • SoloUno310

    Take control of hair pulling, nail biting & skin picking

    Life & fun · 28d ago · solouno.io

  • Scroll through all 43,252,003,274,489,856,000 reachable Rubik's Cube permutations.

    Life & fun · 26d ago · everycube.alen.is

  • The Interactive 3D Encyclopedia

    Life & fun · 21d ago · expeditione.fun

  • Hi HN, I built Eigendrum, a web tool that solves the 2D wave equation for arbitrary shapes so you can hear what they sound like as drums. How it works: * Solves -∇²u = λu using finite element analysis (Kφ = λMφ) on a triangle mesh. * Validated to <0.1% error against closed-form solutions for circles (Bessel zeros) and rectangles. * Sound model factors in strike location, Rayleigh damping, and mallet width. * Includes Kac drums I & II to demonstrate identical sound spectra from different geometries. * No frameworks, build steps, or dependencies. Repo and tests:…

    Life & fun · 27d ago · baselashraf81.github.io

Launched alongside, September 2024

the whole month →
  • Wispr Flow2,737

    Speak naturally, write perfectly & 3x faster in every app

    AI · 2024 · wisprflow.ai

  • Pathway1,335

    Get user insights 10x faster

    Work · 2024 · wynde.io

  • Personalized AI daily planning that suits your life

    AI · 2024 · beforesunset.ai

  • Osmos1,194

    Match with like-minded professionals for 1:1 conversations

    Growth · 2024

  • Polar1,169

    An open source monetization platform for developers

    Dev tools · 2024 · polar.sh

  • Carrot Care1,167

    Understand & optimise your bloodwork

    Life & fun · 2024 · carrotcare.health