About Lunara

Lunara was inspired by the idea that gifting should feel personal, intentional, and unforgettable, not rushed or generic. Many people want to celebrate birthdays, anniversaries, proposals, and major milestones beautifully, but they struggle to choose the right gift, plan the right surprise, coordinate vendors, and stay within budget. Lunara brings all of those pieces into one luxury-focused platform.

The project is an AI-powered gifting and surprise-planning experience. Users can browse premium gifts, build custom gift boxes, book surprise experiences, schedule romantic room decor, and use AI tools to generate gift recommendations, card messages, event itineraries, memory narratives, and relationship-based gifting forecasts.

## What We Built

Lunara includes:

  • A premium gift marketplace with search, filtering, sorting, reviews, wishlist support, cart actions, and instant checkout.
  • A curated gift box builder where users choose a box size, theme, luxury items, and optional AI-generated card messages.
  • Surprise experiences and room decor booking flows.
  • A cart and checkout drawer with delivery scheduling and order creation.
  • An admin dashboard for managing orders, bookings, users, products, vendors, recipients, occasions, and wishlist data.
  • A memory vault for preserving special moments and generating polished AI-written narratives.
  • An AI concierge named Amber for gifting guidance.
  • AI support through OpenAI by default, with Gemini available as an optional provider.

## How We Built It

The frontend was built with React, TypeScript, Vite, Tailwind CSS, Lucide icons, and Motion animations. The app is structured as a single-page experience where the main App.tsx file manages navigation, cart state, user/admin state, and shared data.

The backend is a lightweight Express server. It serves the Vite app during development and exposes API routes for AI features. The AI layer supports both OpenAI and Gemini:

  • OpenAI is the default provider.
  • Gemini can be selected as a secondary provider.
  • If no API key is configured, the app still works with fallback responses.

Most app data is stored in browser localStorage, which made it possible to prototype quickly without requiring a database. Orders, bookings, products, vendors, recipients, occasions, memories, and wishlist items all persist locally for demo purposes.

## What We Learned

Building Lunara taught us how important it is to design AI features around real user workflows instead of adding AI as a novelty. The AI tools are tied directly to useful actions: matching gifts, writing cards, planning itineraries, forecasting occasions, and preserving memories.

We also learned how to design a flexible AI provider layer. Instead of locking the project into one model provider, Lunara can now use OpenAI by default while still supporting Gemini as another option. This makes the project easier to adapt, test, and deploy in different environments.

From a frontend perspective, we learned how much state coordination is required in a commerce-like experience. Cart items, checkout, orders, bookings, admin edits, product reviews, wishlists, and saved profiles all need to stay consistent across many screens.

## Challenges We Faced

One major challenge was keeping the project usable even when external AI services are unavailable. To solve this, every AI route includes fallback behavior so the app can still run locally without an API key.

Another challenge was balancing luxury design with practical usability. Lunara needed to feel premium, but it also needed clear flows for browsing, building, booking, checking out, and managing admin data.

State management was also challenging because the app currently uses localStorage instead of a real database. This works well for a prototype, but it required careful synchronization between React state and stored browser data.

Finally, supporting both OpenAI and Gemini required designing the backend so the frontend did not need to know which provider was active. The client calls the same Lunara API routes, and the server decides which AI provider to use.

## What Makes Lunara Different

Lunara is not just a gift shop. It combines commerce, event planning, relationship memory, vendor coordination, and AI-powered personalization into one experience.

The goal is simple:

$$ \text{Better Gifting} = \text{Personal Context} + \text{Beautiful Curation} + \text{Reliable Execution} $$

Lunara helps users move from “I need to get something” to “I created a moment they will remember.”

Built With

Share this project:

Updates

Submission history