by travel-itinerary (LX AI)
travel-itinerary — travel-itinerary helps you draft and review work in a three-step workflow with an honest demo mode. Use it as decision-support: demo mode works without a live key; live runs require configuration. No fabricated metrics, and no claims for SSO/CSV/Slack unless that surface is actually shipped.
Decision-support only — confirm before you publish or act.
You start by typing three pieces of information: a destination city, the number of days you plan to stay, and a short vibe description such as “relaxed”, “adventure”, or “culture”. The UI accepts free‑form text for each field and validates that the city name is not empty and the day count is a positive integer. If any field is missing the form shows an inline hint and disables the next button.
When you press “Create draft”, the tool sends the inputs to the language model. In demo mode the request is routed to a local stub that returns a canned response; in live mode the request goes to the configured model endpoint. The model produces a day‑by‑day outline where each day contains a headline activity, a suggested time block, and a one‑sentence rationale tied to the vibe you supplied. The output is plain text wrapped in <pre> tags for easy copying.
The draft appears below the form. You can scroll through each day, edit any line directly in the browser, or copy the whole block to your notes app. Because the tool is decision‑support only, it never publishes or books anything for you. You must manually verify that the suggestions match your travel constraints, budget, and local regulations before acting on them.
Demo mode runs without any external API key. It loads a small JSON fixture that contains a pre‑written itinerary for a handful of common city‑day‑vibe combos. When you submit the form the fixture is looked up; if an exact match is not found the system falls back to a generic template that inserts your city name and day count into placeholder sentences. This lets you see the shape of the output and test the editing flow.
Use demo mode when you are evaluating the product on a device that has no internet connection, when you want to avoid any accidental charges, or when you are showing the tool to a teammate who does not have access to the model credentials. The demo does not store any of your inputs beyond the current page session; refreshing the tab clears the temporary data.
The demo cannot model real‑time factors such as opening hours, seasonal events, or price fluctuations. Its sentences are static and may repeat phrasing across different inputs. Treat the demo output as a sketch, not a final plan.
To switch to live mode you must add a valid API key for the language model you intend to use. The key is entered in the settings panel and saved to the browser’s local storage under the key travel-itinerary-live-key. No server‑side component sees the key; all requests are made directly from the browser to the model provider’s endpoint.
When live mode is active each request travels over HTTPS to the model host. The request payload includes your city, day count, and vibe text. No personally identifying information is sent unless you include it in the vibe field. Review the provider’s privacy policy to understand how they log prompts. The product itself does not retain prompts after the response is rendered.
If the model returns an error or the request times out the UI shows a toast message with the status code and suggests you check your key or network. You can retry the request or fall back to demo mode to continue working.
The tool does not interact with airlines, hotels, or reservation systems. It never sends payment details, never creates a reservation, and never confirms availability. You must use a separate service to book flights or lodging.
Outputs are suggestions based on the model’s training data. They may omit local holidays, overlook seasonal closures, or suggest activities that require permits you do not have. Always cross‑check with official sources before committing to a plan.
Because the tool is decision‑support only, it does not assert that any output is optimal for your taste, budget, or mobility needs. You remain the final authority on what to include, exclude, or modify.
Current builds do not include single sign‑on, Slack notifications, or bulk CSV export. If those surfaces appear in a future release they will be documented in the changelog; do not assume they exist based on marketing copy.
You have a weekend free and want to see what a two‑day art‑focused visit to Lisbon could look like. Enter “Lisbon”, “2”, “art” and receive a draft that lists a morning museum visit, an afternoon tile workshop, and an evening fado suggestion. You adjust the times to match your train schedule and copy the list into your travel notebook.
You are deciding between Barcelona and Valencia for a five‑day family trip. Run the tool twice, once with each city, keeping the vibe “relaxed”. Compare the two day‑by‑day outlines side by side to see which city offers more beach time versus cultural sites. Use the differences to inform your final choice.
Before a long‑haul flight you need a packing and pre‑flight checklist. Specify your destination, the number of days you will be away, and the vibe “efficient”. The draft includes items such as “check visa validity”, “order local currency”, and “download offline maps”. You then move those items into a dedicated checklist app.
As a travel blogger you need a starting point for a guide article. Input the target city, length of stay, and vibe “foodie”. The output gives you a sequence of meals, markets, and cooking classes that you can expand with personal photos and notes.
When you type into the form the values are kept in the component’s state. They are not written to disk or sent to any server unless you activate live mode. In demo mode the state is used only to look up a fixture; after the response is shown the state may be cleared on navigation.
The generated text is inserted into the DOM as a child of a <div> with class output. It is not copied to the clipboard automatically; you must use the browser’s copy command or the provided copy button. The text remains in the page until you reload or navigate away.
In live mode each request and response is temporarily held in the browser’s memory for the duration of the tab session. The product does not write these logs to localStorage, IndexedDB, or any external endpoint. If you open the developer tools you can see the network calls, but no persistent record is kept after you close the tab.
We follow the guidance from the OWASP Top 10 for Large Language Model Applications https://owasp.org/www-project-top-10-for-large-language-model-applications and the NIST AI Risk Management Framework https://www.nist.gov/itl/ai-risk-management-framework. These documents help us shape input validation, output sanitisation, and model‑usage policies.
| Stage | Data stored? | Where | Retention |
|---|---|---|---|
| Form input | Yes (state) | Browser memory | Until navigation or page reload |
| Demo lookup | No persistent storage | Fixture JSON (bundled) | N/A |
| Live request | Transient | Browser memory (request/response objects) | Until response rendered |
| Output text | Yes (DOM) | Page div.output |
Until page reload or manual clear |
travel-itinerary helps you draft and review work in a three-step workflow with an honest demo mode.
Operators and builders who need a fast first draft or checklist from travel-itinerary.
Yes in explicit Demo mode. Live AI requires a configured key.
No. Outputs are decision-support; you still review before publishing or acting.
Only if those features are implemented in this product build — do not assume them from marketing copy.
Runs may be stored locally under the product's .data/ boundary; treat demos as ephemeral.