Skip to content

Fix exchange rates: migrate from frankfurter.app to frankfurter.dev#515

Open
stefantaubert wants to merge 1 commit into
spliit-app:mainfrom
stefantaubert:fix/update-frankfurter-api-url
Open

Fix exchange rates: migrate from frankfurter.app to frankfurter.dev#515
stefantaubert wants to merge 1 commit into
spliit-app:mainfrom
stefantaubert:fix/update-frankfurter-api-url

Conversation

@stefantaubert

Copy link
Copy Markdown

Summary

Fixes #514

The Frankfurter API has moved from api.frankfurter.app to api.frankfurter.dev.
The old domain returns a 301 redirect without CORS headers, which causes the browser
to block exchange rate requests.

Problem

  • https://api.frankfurter.app/2026-04-05?base=CNY → 301 redirect to api.frankfurter.dev
  • The 301 response is missing the Access-Control-Allow-Origin header
  • Browser blocks the request due to CORS policy

Fix

Replace api.frankfurter.app with api.frankfurter.dev/v1 in the exchange rate client.

Note: frankfurter.dev also offers a v2 API, but it has a different response schema.
This PR intentionally uses /v1/ to maintain compatibility without requiring
additional changes to the response parsing logic.

Test plan

  • Open a group
  • Verify exchange rates load without CORS errors

BastiOfBerlin pushed a commit to BastiOfBerlin/spliit that referenced this pull request Jun 11, 2026
Port several improvements from upstream spliit-app/spliit:

- Exchange rates: migrate from api.frankfurter.app to api.frankfurter.dev/v1,
  fixing broken foreign-currency conversion (upstream spliit-app#515 / bugs spliit-app#513, spliit-app#514).
- Selectors: wrap category and currency lists in cmdk's CommandList so keyboard
  (arrow-key) navigation works again (upstream spliit-app#491).
- Group sharing: render a scannable QR code of the invite link in the share
  popover via qrcode.react (upstream spliit-app#500).
- Currencies: add COP, VND, MKD, and MYR to the supported list and regenerate
  the per-locale currency data (upstream spliit-app#486, spliit-app#507, spliit-app#516, spliit-app#521).
- React Compiler: enable Next.js 16's stable reactCompiler for automatic
  memoization, adding the babel-plugin-react-compiler dev dependency
  (upstream spliit-app#503).
- Docker build: parse package.json name/version with POSIX tools instead of
  `node -p`, so the image can be built on hosts without Node.js (upstream spliit-app#219).
- Docs: document the Docker Compose workflow and stack in the README
  (upstream spliit-app#505).
BastiOfBerlin pushed a commit to BastiOfBerlin/spliit that referenced this pull request Jun 11, 2026
Port several improvements from upstream spliit-app/spliit:

- Exchange rates: migrate from api.frankfurter.app to api.frankfurter.dev/v1,
  fixing broken foreign-currency conversion (upstream spliit-app#515 / bugs spliit-app#513, spliit-app#514).
- Selectors: wrap category and currency lists in cmdk's CommandList so keyboard
  (arrow-key) navigation works again (upstream spliit-app#491).
- Group sharing: render a scannable QR code of the invite link in the share
  popover via qrcode.react (upstream spliit-app#500).
- Currencies: add COP, VND, MKD, and MYR to the supported list and regenerate
  the per-locale currency data (upstream spliit-app#486, spliit-app#507, spliit-app#516, spliit-app#521).
- React Compiler: enable Next.js 16's stable reactCompiler for automatic
  memoization, adding the babel-plugin-react-compiler dev dependency
  (upstream spliit-app#503).
- Docker build: parse package.json name/version with POSIX tools instead of
  `node -p`, so the image can be built on hosts without Node.js (upstream spliit-app#219).
- Docs: document the Docker Compose workflow and stack in the README
  (upstream spliit-app#505).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Exchange rates broken: api.frankfurter.app redirects with missing CORS headers

1 participant