A single-page, client-only React prototype of EUmove, an AI-assisted cross-border migration companion for EU citizens. This demo follows a sample user (Sophie van der Berg) moving from the Netherlands to Germany, and shows personalised tasks, opportunities, a profile, and an assistant chat.
The whole app lives inside index.html:
- React 18 + Babel Standalone via CDN (no build step)
- Fraunces + Inter web fonts
- All state is in-memory (ticks, notes, and profile edits are lost on refresh — by design, no backend)
Just open index.html in a browser. Or serve it with any static file server:
npx serve .
# or
python3 -m http.server 8000Then visit http://localhost:8000.
npm i -g vercel
vercel # first deploy (preview)
vercel --prod # production deployAccept the defaults. Vercel auto-detects it as a static site; no framework preset needed.
- Create a new repository on GitHub and push this folder:
git remote add origin https://github.com/<your-user>/eumove-demo.git git push -u origin main
- Go to vercel.com/new and import the repo.
- Leave all build settings empty (it's a pure static site).
- Click Deploy. Vercel gives you a free
*.vercel.appURL.
Subsequent pushes to main auto-deploy.
Go to vercel.com/new, pick "Deploy a template / upload a folder", and drop this folder.
.
├── index.html # entire app (React via CDN)
├── vercel.json # static-site routing config
├── .gitignore
└── README.md
This is a demo, so:
- No persistence — refreshing resets completed tasks, notes, and profile edits.
- The Profile "Save changes" button is cosmetic; fields already update live.
- The assistant has 4 canned answers plus a generic fallback (see the
AIobject inindex.html). departureDateanddaysLeftaren't linked; the "19 days" count is hard-coded.
If this prototype graduates to a real product, the natural next steps would be: a small backend or edge KV for persistence, real EUDIW integration, and a proper markdown renderer for assistant answers.