Back to project cabinet

Software / Case study

Donelle

A live wishlist app for collecting gift ideas, sharing them with the right people, and coordinating reservations.

Donelle’s wordmark on a warm cream background
Donelle, a live personal wishlist app.
My focus
Product design & full-stack development
Tools & scope
JavaScript · Node.js · PostgreSQL
Project
Live web app

01 / The idea

From a gift idea to a shared wishlist

Donelle gives people a place to collect gift ideas, share a list, and coordinate what to give. The list owner and the gift-giver each get a view suited to their part of the process.

The experience brings together product links, occasions, sharing controls, and reservations while keeping the surprise for the person receiving the gift.

02 / Experience

Collect, share, and reserve

Collecting an idea, choosing an audience, and reserving a gift form one connected flow.

  1. Collect an idea

    Paste a product link to look up its details. Edit the proposed title, image, and price, then organize the idea by occasion.

  2. Choose who can see it

    Share a wishlist publicly, keep it for approved friends, or make it invitation-only. Each list has its own audience.

  3. Give with a little certainty

    Guests can browse a shared list and sign in when they want to reserve a gift. Availability and quantity help people coordinate.

03 / Product decisions

Sharing and reservation choices

Keep reservation details in the right view

The owner view hides reservation details by default. Gift-givers can see what is available, while the owner can choose whether to show a summary.

Make product previews editable

Retailer pages vary. Imported information stays editable, and the manual form remains available when a site blocks the preview.

Let language follow the person

The interface supports English and Spanish. It follows the browser language initially and lets signed-in users save their preference.

04 / Engineering

A service behind the wishlist

A Node.js service supports PostgreSQL persistence for profiles, wishlists, reservations, and sharing relationships. Transactions and revision checks protect writes when requests overlap.

Separate development, staging, and production configuration keeps local previews distinct from the deployed service. Server-side product lookup extracts metadata before the person chooses what to save.