One survey, one question at a time.

A small survey app you run yourself. Every answer lands in one file you own.

2,200 lines of TypeScript · 4 dependencies · one SQLite file · MIT

This is the real app. Go ahead, answer it. You're in the results below

See how everyone answered.

The demo's results are public. Answer the survey above and watch your vote land.

Open full results
survay-b3zbd.sprites.app/results Live
Text answers stay off the public page.

Write your survey in the dashboard.

Multiple choice, checkboxes, a rating or text. Write the prompt, then move it up or down.

survay-b3zbd.sprites.app/admin/tryTry it. Nothing here is saved.

One survey per copy. That's the point.

Your copy is a folder on your computer. One file in it, data/survay.db, holds every answer.

  1. Make a copy and start it.

    You need Bun.

    gh repo create my-survay --template AVGVSTVS96/survay --private --clone

    cd my-survay && bun install && bun survay

    survay is running
    
      survey     http://localhost:3000
      dashboard  http://localhost:3000/admin
      password   cZl55Bb04XuHZGp1z23UxjYJ  (saved in data/password)
      answers    data/survay.db  (starts with the demo survey)
  2. Put it online.

    A Sprite sleeps when nobody's answering and wakes on the next visit. Any computer with a disk works too.

    deploy/sprite.sh my-survay

    survay is online
    
      survey     https://my-survay-abc12.sprites.app
      dashboard  https://my-survay-abc12.sprites.app/admin
      password   IIFskbOjGJnn8zflfJbf_avo
    
      from here  sprite exec -s my-survay -- survay results
  3. Read the answers anywhere.

    sprite exec -s my-survay -- survay results

    Waiting for the demo's results