No description
This repository has been archived on 2025-11-10. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
Find a file
ferrumboll d8469213c6 fix: redirect link share to collection instead of /wishlist
- Update ShareHandler to redirect to first selected collection after sharing
- Modify ItemForm onSuccess callback to pass collection IDs
- Update ItemFormModal to handle new onSuccess signature
- Update items-list.tsx to accept optional collectionIds parameter
- All TypeScript checks pass
2025-09-14 20:17:38 +02:00
.husky fix: husky with tests 2025-09-12 17:23:47 +02:00
backlog feat: edit and fulfill 2025-09-14 15:37:16 +02:00
docs desidero rename 2025-09-11 16:38:24 +02:00
public/favicons fix: delete static manifest 2025-09-12 22:02:00 +02:00
src fix: redirect link share to collection instead of /wishlist 2025-09-14 20:17:38 +02:00
.dockerignore postgres migration 2025-09-10 14:26:32 +02:00
.env.example sentry fix 2025-09-12 10:49:17 +02:00
.envrc init 2025-09-06 16:21:15 +02:00
.fast-commit.toml chore: add .fast-commit.toml config file with commit settings 2025-09-12 17:28:50 +02:00
.gitignore dev 2025-09-10 17:53:25 +02:00
AGENTS.md fix: husky with tests 2025-09-12 17:23:47 +02:00
astro.config.mjs icons 2025-09-12 16:21:18 +02:00
bun.lock fix: better user agent 2025-09-13 22:53:29 +02:00
commitlint.config.js feat: add commitlint with conventional commit validation 2025-09-12 17:05:05 +02:00
components.json head and sidebar 2025-09-06 19:30:10 +02:00
docker-compose.yml args for build 2025-09-12 15:03:15 +02:00
Dockerfile fix: ingnore scripts in dockerfile 2025-09-12 17:40:29 +02:00
drizzle.config.ts astro native env 2025-09-10 14:49:37 +02:00
env.d.ts magic link finish 2025-09-11 10:07:04 +02:00
flake.lock init 2025-09-06 16:21:15 +02:00
flake.nix shadcn button 2025-09-06 18:25:37 +02:00
opencode.json backlog 2025-09-08 17:59:45 +02:00
package.json fix: better user agent 2025-09-13 22:53:29 +02:00
README.md sentry 2025-09-12 07:48:40 +02:00
sentry.client.config.js client config 2025-09-12 10:49:17 +02:00
sentry.server.config.js sentry fix 2025-09-12 10:49:17 +02:00
tsconfig.json task-1 - collection edit 2025-09-08 20:45:09 +02:00
vitest.config.ts fix: husky with tests 2025-09-12 17:23:47 +02:00

Desidero

A wishlist webapp focused on simplicity, speed, and reliability. Manage your collections, wishlist items, and more with an intuitive interface.

Features

  • Collections Management: Organize your wishlist items into collections
  • Wishlist Items: Add, edit, and track items with status updates
  • Web Interface: Modern Astro-based web app with Tailwind CSS
  • Authentication: Secure user authentication and profiles
  • Real-time Updates: Live updates via tRPC
  • Database: PostgreSQL with Drizzle ORM for scalable data storage

Tech Stack

  • Frontend: Astro, React, Tailwind CSS, shadcn/ui
  • Backend: tRPC, Node.js
  • Database: PostgreSQL with Drizzle ORM
  • Runtime: Bun
  • Validation: Zod
  • Authentication: Better Auth with magic link emails
  • Email: Nodemailer with SMTP support

Installation

  1. Clone the repository:

    git clone <repository-url>
    cd desidero
    
  2. Install dependencies:

    bun install
    
  3. Set up the database:

    bun run db:push
    
  4. Configure environment variables:

    cp .env.example .env
    # Edit .env with your configuration
    
  5. Start the development server:

    bun run dev
    

Configuration

Environment Variables

Copy .env.example to .env and configure the following variables:

Required

  • DATABASE_URL: PostgreSQL connection string
  • AUTH_SECRET: Random secret key for authentication

Optional

  • DEFAULT_ADMIN_EMAIL: Email for default admin user (created on boot)
  • DEFAULT_ADMIN_NAME: Name for default admin user (defaults to "Admin")
  • DISABLE_SIGNUP: Disable user registration (set to "true" to disable)
  • SENTRY_DSN: Sentry DSN for error tracking (enables Sentry if provided)
  • SENTRY_AUTH_TOKEN: Sentry auth token for releases and source maps

Configure SMTP settings for sending magic link emails:

# SMTP Configuration
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_SECURE=false
SMTP_USER=your-email@gmail.com
SMTP_PASS=your-app-password
EMAIL_FROM=noreply@yourdomain.com

# Development mode (prints emails to console instead of sending)
EMAIL_PRINT_MODE=true

Supported SMTP Providers

  • Gmail: smtp.gmail.com:587 (use app password, not regular password)
  • SendGrid: smtp.sendgrid.net:587 (use API key as password)
  • Mailgun: smtp.mailgun.org:587
  • AWS SES: email-smtp.region.amazonaws.com:587
  • Custom SMTP: Any SMTP server that supports STARTTLS

Development Mode

Set EMAIL_PRINT_MODE=true to print emails to console instead of sending them. This is useful for development and testing.

Default Admin User

Configure the following environment variables to automatically create a default admin user when the application starts:

DEFAULT_ADMIN_EMAIL=admin@yourdomain.com
DEFAULT_ADMIN_NAME=Admin

If these variables are set, the application will:

  1. Check if an admin user with the specified email already exists
  2. Create the admin user if it doesn't exist
  3. Set the user's role to "admin"
  4. Log the creation status to the console

This is useful for:

  • Development environments
  • Initial deployment setup
  • Automated deployments where you need a known admin account

Sentry Error Tracking (Optional)

Configure Sentry for error tracking and performance monitoring:

SENTRY_DSN=https://your-sentry-dsn@sentry.io/project-id
SENTRY_AUTH_TOKEN=your-sentry-auth-token

If SENTRY_DSN is provided, Sentry will be automatically enabled with:

  • Error tracking for both client and server
  • Performance monitoring with traces
  • Session replay for debugging
  • Automatic source map uploads for production builds

The integration is completely optional - if SENTRY_DSN is not set, Sentry will not be loaded at all.

Usage

Web App

Visit http://localhost:4321 to access the web interface.

Development

Available Scripts

  • bun run dev - Start Astro dev server
  • bun run build - Build for production
  • bun run preview - Preview production build
  • bun check - TypeScript check
  • bun run db:push - Push database schema changes

Project Structure

src/
├── server/       # tRPC API and database
│   ├── api/routers/  # tRPC routers
│   └── db/       # Database schema and connections
└── web/          # Astro web application
    ├── components/  # React components
    ├── layouts/     # Astro layouts
    ├── pages/       # Astro pages
    └── styles/      # Global styles

Code Style

  • Use tabs for indentation
  • camelCase for variables and functions
  • Explicit return types for functions
  • Path mappings: ~/server/*, ~/web/*
  • Keep files under 200 lines
  • Follow existing patterns and conventions

Contributing

  1. Follow the development guidelines in docs/RULES.md
  2. Use the Backlog.md CLI for task management
  3. Keep changes atomic and focused
  4. Run tests and linting before committing
  5. Update documentation as needed

License

MIT License - see LICENSE file for details