A simple web application for managing gift wishlists for families and friends, written in Go. Originally designed to help grandparents and other family members coordinate gift-giving for birthdays, Christmas, Easter, and other occasions.
Technology Stack:
- Backend: Go 1.25.5
- Database: SQLite (embedded)
- ORM: sqlc (type-safe SQL)
- Web Server: Standard library
net/http - Templates: Go
html/template - Testing: Hurl (HTTP testing tool)
Application Structure:
- CLI-based administration tool
- Simple web interface for end users
- Single-file SQLite database
- Stateless web server with cookie-based authentication
- Go 1.25.5 or later
- sqlc - https://sqlc.dev/
- make
- hurl (for testing) - https://hurl.dev
# Clone the repository
git clone <repository-url>
cd neliste
# Build the application
make neliste
# Run end-to-end tests
make testThe application supports the following environment variables:
NELISTE_DB- Database file path (default:neliste.db)NELISTE_URL- Base URL for the application (used for generating invite links and determining cookie security)
-
Setup Database
neliste setup -title "Christmas 2025" -
Add Items to Wishlist
neliste add -url "https://amazon.de/dp/XYZ123" -name "Wireless Headphones" neliste add -url "https://example.com/book" -name "Bestseller Book"
-
Invite Users
neliste invite -name "Grandma" neliste invite -name "Uncle John"
Output:
invite for 'Grandma' /invite/otp_abc123 -
Start Web Server
neliste serve -listen 127.0.0.1:4444
-
User Flow
- User visits
/invite/{otp}link - Confirms their identity
- Receives authentication cookie (14 days valid)
- Views wishlist and clicks items they plan to buy
- Clicks are tracked
- User visits
balazs4
MIT
a colloquial contraction of the German „ne Liste“ (short for „eine Liste“, “a list”).
Da wird jedes Mal (Geburtstag, Ostern, Weihnachten,…) ne Liste gemacht, an alle verteilt, jeder kann sich was aussuchen und dann muss man wieder schreiben wer was geklickt hat
Notice: AI generated documentation; the code —and any defects— were written entirely by hand.