尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
Built for the "Into the Skies" hackathon.
When a flight is delayed or cancelled, travelers juggle an airline app, confirmation
emails and a hotel booking, while someone waits for news. Layover keeps the
trip in one place. When a flight changes (in this demo, from a simulated airline feed), it
shows what is now at risk downstream, gives you a checklist of what to do, and writes an
update for the people waiting on you.查看完整 README ↗Built for the "Into the Skies" hackathon.
When a flight is delayed or cancelled, travelers juggle an airline app, confirmation emails and a hotel booking, while someone waits for news. Layover keeps the trip in one place. When a flight changes (in this demo, from a simulated airline feed), it shows what is now at risk downstream, gives you a checklist of what to do, and writes an update for the people waiting on you.
The trip drives the checklist, and both drive the update. Trips stay on the device: there is no database, and sign-in is a demo profile kept on the phone (or continue as a guest). A shared update travels inside the link itself. Two optional extras use a server route: importing bookings from pasted text (Anthropic) and the spoken summary (ElevenLabs).
The demo on a phone: the trip is on track, the airline changes a flight, the plan rebuilds itself, and the update is ready to send to the person waiting.
| On track | New plan | Share it | What they see |
|---|---|---|---|
A 20-second cut (music, no voiceover; click the image to play):
The airline feed in the video is simulated, as it is in the demo.
Live: https://layoverapp.vercel.app/login (open it on a phone, tap Continue as guest, then Try the sample trip).
You need Node.js 20 or newer and pnpm.
pnpm install
pnpm dev
Optional: copy .env.example to .env.local and add ANTHROPIC_API_KEY (import from
text) and ELEVENLABS_API_KEY (Listen). Without them, import says it is not
available and Listen uses the phone's built-in voice; everything else works.
Open http://localhost:3000, tap Continue as guest, then Try the sample trip (or Add your trip to enter your own). It is designed for a phone, so use a narrow window or your browser's device mode.
Other commands:
pnpm test # unit tests (Vitest)
pnpm lint # ESLint
pnpm build # production build
To replay it, open the menu (top right) and choose Restart the demo trip (then confirm).
Live flight watching is simulated. There is no flight-data feed: a scripted change is pushed a few seconds after the trip loads. "Handled for you" is simulated too: no message reaches a hotel or driver. Everything after the change (risks, checklist, shared update) is computed from the trip by the app's own logic.
The full walk-through is in docs/demo-script.md, and the spoken pitch is in docs/pitch.md.
| Route | What it is |
|---|---|
/ | The trip: on-track view, then the change, the checklist, share and listen; saved trips when no trip is open |
/trip | Add or edit flights, hotels and rides, or import them from pasted text |
/login | Demo sign-in kept on the phone, or continue as a guest |
/settings | Profile, what Layover may do by itself, alerts, theme |
/share/[id] | Per-person messages to send, and the update to copy |
/s | Read-only shared update, with the data in the URL fragment |
Next.js (App Router), TypeScript, Tailwind, Zustand persisted to localStorage, Zod,
Vitest and lz-string. The logic is pure functions in src/lib/domain/. All times are
local wall-clock strings with no timezone, because every comparison happens at a single
airport or city.
CLAUDE.md is the contract for contributors: the data model, the store, the domain functions and who owns which files.
Four people in a 24-hour hackathon.
| Who | What they built |
|---|---|
| Namish | Head coder |
| Boris | Code and logic: the connection, checklist and message |
| Will Kim | Frontend design: the screens and the look |
| Sebastian | Presenter: the pitch and the demo, and the Solana "Send help" button |