Personal project / Product engineering

Moveler

From the screen to a real place. A map-first product for discovering filming locations and planning cinematic journeys.

Visit Moveler
Next.jsReactTypeScriptNestJSPostgreSQLPrismaStripeGemini

The problem

Connect the discovery of real filming locations with a usable travel-planning experience, bringing the interface, relational data, AI-generated itineraries and subscriptions into one personal product.

Architecture & flow

The product foundation

Application components and their responsibilities; infrastructure details are intentionally omitted.

  1. Next.js / React

    Map-first discovery, filtering and the user-facing planning experience.

  2. NestJS API

    Backend supporting the product experience and its data.

  3. PostgreSQL / Prisma

    Relational data linking titles, filming locations and user journeys.

Inside the itinerary feature

Feature-level flow using stored locations as context, with normalization and fallback behavior.

  1. Selected locations

    Use locations selected from the database as planning context.

  2. Gemini

    Generate an itinerary using that location context.

  3. Normalize & handle fallbacks

    Prepare generated output for the planning experience, with fallback behavior.

  4. Travel suggestions

    Present an itinerary and generated suggestions, not live inventory.

Decisions & trade-offs

Location data supplies the context
The itinerary feature uses locations selected from the database. The relational model and the generated itinerary have different responsibilities: stored places provide context; Gemini generates a plan.
Treat generation as a product boundary
Normalization and fallback behavior are part of the implementation. Generated flights and hotels are suggestions, not verified availability or a booking service.
Include the paid-product surface
Stripe checkout and subscription integration sit alongside discovery and planning. Building the product end to end also meant implementing the frontend, backend and database.

The result

An end-to-end personal product combining map-based discovery, AI itinerary generation and Stripe subscriptions, with frontend, backend and data modeling built together.

Simplified view based on the documented implementation. Generated travel suggestions are not verified live inventory.