Deseo is a modern, elegant wishlist management application that makes it easy to create, share, and manage gift lists with friends and family. Built with Next.js and designed for simplicity and user experience.
- Create Wishlists - Build personalized wishlists with items, descriptions, and prices
- Easy Sharing - Share wishlists via short links or direct sharing
- Item Reservations - Reserve items from shared wishlists to avoid duplicates
- Passwordless Auth - Secure magic link authentication via email
- Multi-Currency Support - Support for multiple currencies
- Collaborative Lists - Share wishlists with others and allow collaborative editing
- Privacy Controls - Create public or private wishlists
- Responsive Design - Works seamlessly on desktop, tablet, and mobile devices
- Modern UI - Beautiful interface built with Tailwind CSS and shadcn/ui
- Framework: Next.js 15.2.8 (App Router)
- Runtime: React 19
- Language: TypeScript
- Database: MongoDB
- Styling: Tailwind CSS 4.0
- UI Components: shadcn/ui (Radix UI)
- Authentication: JWT-based magic links
- Email: Nodemailer
- Node.js 18+ and npm/yarn/pnpm/bun
- MongoDB database (local or cloud instance like MongoDB Atlas)
- SMTP server for sending emails (e.g., SendGrid, Mailgun, or your own SMTP server)
- Clone the repository:
git clone https://github.com/xyberty/deseo.git
cd deseo- Install dependencies:
npm install
# or
yarn install
# or
pnpm install- Create a
.env.localfile in the root directory copying from.env.exampleand setting proper values.
Consider removing Google Analytics calls if analytics is not required.
- Run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev- Open http://localhost:3000 in your browser.
| Variable | Required | Description |
|---|---|---|
MONGODB_URI |
Yes | MongoDB connection string |
MONGODB_DB |
No | Database name (defaults to 'deseo') |
JWT_SECRET |
Yes | Secret key for JWT token signing |
SMTP_HOST |
Yes | SMTP server hostname |
SMTP_PORT |
Yes | SMTP server port (typically 587 or 465) |
SMTP_SECURE |
Yes | Use TLS/SSL ('true' for port 465, 'false' for port 587) |
SMTP_USER |
Yes | SMTP authentication username |
SMTP_PASS |
Yes | SMTP authentication password |
EMAIL_FROM_NAME |
Yes | Display name for sent emails |
EMAIL_FROM_ADDRESS |
Yes | Email address for sent emails |
NEXT_PUBLIC_BASE_URL |
No | Base URL for the application (auto-detected in dev) |
You can generate a secure JWT secret using:
openssl rand -base64 32Deseo is Vercel-ready and can be deployed with minimal configuration:
- Push your code to GitHub, GitLab, or Bitbucket
- Import your repository in Vercel
- Add all environment variables in the Vercel dashboard
- Deploy!
Vercel will automatically:
- Detect Next.js
- Run the build command
- Optimize the application
- Provide HTTPS and CDN
Deseo can be deployed to any platform that supports Next.js:
- Build the application:
npm run build- Start the production server:
npm startMake sure to set all required environment variables in your hosting platform's configuration.
When deploying, ensure all environment variables are set in your hosting platform. For Vercel:
- Go to your project settings
- Navigate to "Environment Variables"
- Add all variables from your env file
Important: Never commit .env.local or .env to version control. It's already included in .gitignore.
For issues, questions, or contributions, please visit the GitHub repository.
Made for sharing wishes and making gift-giving easier.