Wish lists that get gathered together

Create a list and send the link — friends pick gifts and reserve them under their names. No duplicate gifts, no guest accounts.

Who Spisok is for

Birthdays and holidays

For kids, colleagues and yourself. Drop the link into the group chat — everyone picks what to buy, nobody asks "what should we get you?".

Weddings

A shared list for the couple: family and friends reserve gifts in advance — no duplicate kettles and no "anything you like" gift cards.

Group gifts

A team, a club, a community: everyone sees what is already reserved and chips in by name — the last dollars go exactly where needed.

One list. Zero duplicate gifts.

The public /s/… page opens without sign-up. Friends pick gifts and reserve under their names — you see what is already claimed, in real time.

Drop a link — the rest is automatic

Title, price and image are pulled from the product page. A wish is in the list in two seconds, no copy-paste.

The app in your pocket

A PWA installs to the home screen and works offline. “Share” from a product page — and the gift is already in your list.

Lives on your server

One binary, one SQLite file, one command. No clouds, no separate database, no queues.

docker run -p 8080:8080 rpashav/spisok
17MB
RAM at idle
20ms
page TTFB
1
static binary
0
Node.js dependencies

Frequently asked questions

Do guests need an account to reserve a gift?
No. A guest types their name when reserving — that's all. The browser remembers the guest in a signed cookie, so repeat reservations happen automatically, no forms.
What is stored and can it be moved?
Everything lives in a single SQLite file: accounts, lists, wishes, reservations, images. Moving it is a file copy; a backup is one command — spisok backup.
Can a Raspberry Pi handle it?
Yes: the binary is static, CGO-free, and uses about 17 MB of RAM at idle. On a Pi 4 it is a years-long background service, not an experiment.
How does double-buying protection work technically?
A unique index in the database: one guest — one reservation per wish, quantities are capped by triggers. A conflict is a polite 409, not a silent double-booking.
Can I use my own domain and SSL?
Yes, it is a regular HTTP server: put nginx or caddy in front, add a certificate — and your spisok.example.com is ready. No specific hosting required.

Start with your own list