← My work

Mobile product · AI workspace

Viya

Viya is a mobile travel workspace for itineraries, budgets, documents, bookings, and trip readiness, with AI-assisted changes that travelers review before saving.

Contribution
Designed and built independently
Current state
Mobile prototype · Source available
Built with
TypeScript · React Native · Expo · Convex · Clerk · Zod · Turborepo

Product showcase

Inside Viya

Selected product surfaces from the live experience, presented without simulated chrome or scroll-driven effects.

Problem and response

The problem

Travel plans are fragmented across messages, booking apps, receipts, maps, notes, and spreadsheets. Most AI travel tools stop after generating an itinerary.

The approach

Each trip has structured records for itinerary, budget, documents, bookings, readiness, and risks. The assistant can draft changes across those records, explain them, and wait for the traveler to approve them.

Architecture

The mobile app, Convex backend, and AI provider layer share TypeScript and Zod contracts. Each layer can be tested or replaced without moving product rules into the interface.

  1. Mobile application

    Expo Router and React Native organize authentication, trip workspaces, Vault, budget, and readiness flows.

  2. Shared TypeScript contracts

    Pure TypeScript logic and Zod schemas keep the mobile application, backend functions, and generated output aligned.

  3. Convex backend

    Queries, mutations, storage, and user-owned trip records sit behind Clerk-backed identity checks.

  4. AI provider boundary

    Provider selection, structured generation, trip context, and deterministic fallbacks are kept behind one interface.

Key product and engineering decisions

These decisions affect what users can do, where product rules live, and how the system handles failure or change.

A workspace, not an itinerary generator

Itinerary, budget, documents, bookings, readiness, and risks share one trip-scoped model.

AI proposes; the traveler decides

Generated changes are checked against shared schemas, explained to the traveler, and saved only after approval.

Demo reliability without fake success

Deterministic fixtures and fallbacks keep critical flows testable when a model or provider is unavailable.

What you can inspect

The live product and public repository provide concrete evidence of the implemented features, architecture, tests, and documentation.