A currency conversion app built with Astro and React that displays the latest exchange rates from the Czech National Bank and allows users to convert CZK to other currencies.
~74 gzip (+ ~48KB font)
- 📚 app
Only Few Dependencies:
- Astro
- React
- Linaria (like styled-components but static)
- Vitest (like jest but closer to vite ecosystem)
This application uses Astro's islands architecture to deliver a fast, mostly static site with targeted interactivity. The key components:
-
Static Components (Astro):
- Header and navigation
- Currency rate list
- Site layout and structure
-
Interactive Components (React):
- Currency converter form
-
Data Strategy:
- Fetch CNB data at build time
- Daily rebuild with GitHub Actions
-
Clone the repository:
git clone https://github.com/developer239/conversion-rate-app.git cd conversion-rate-app -
Install dependencies:
yarn install -
Start the development server:
npm run dev -
Open your browser at
http://localhost:4321
Additional commands:
npm run build- Build the applicationnpm run test- Run testsnpm run preview- Build and run production previewnpm run lint- Run ESLintnpm run typecheck- Run TypeScript type checking
npm run build
npm run test
The application is automatically deployed to Vercel through GitHub Actions:
- Merge changes to the main branch
- GitHub Actions will run tests and build
- If successful, you can manually deploy to Vercel using GitHub Actions
