- Increased base body font size from 16px to 18px in skeleton.css
- Added global table cell font size of 1.2rem in skeleton.css
- Increased table font sizes in main.css (tbody: 18px, thead: 20px, tfoot: 18px)
- Increased base table font sizes in mobile.css from 1rem to 1.2rem
- Updated mobile breakpoint font sizes proportionally to maintain readability
The background pattern image was not scaling appropriately on mobile screens,
causing only a portion of the banknote to be visible in the pattern tiles.
Changes:
- Added responsive scaling logic for background pattern image
- Mobile devices (<768px) now use proportional scaling based on viewport width
- Tablet devices (768-1200px) use 70% scaling
- Desktop devices maintain full-size image
- Uses temporary canvas to create scaled pattern for optimal display
This ensures the entire banknote is visible in pattern tiles across all device sizes.
Added a new section under the historical price table featuring quotes from ECB officials about Bitcoin, organized chronologically from November 2018 to January 2025. Each quote includes:
- Date and attribution to the ECB official
- Full quote text
- Links to original sources
The quotes demonstrate the ECB's evolving skepticism of Bitcoin over the years.
- Created mobile.css with responsive styles for all screen sizes
- Updated table headers to use responsive font sizes (removed 2rem inline styles)
- Fixed text-align from non-standard -webkit-left to standard left/right values
- Made chart configuration mobile-aware with smaller fonts and fewer ticks on mobile
- Optimized chart annotations and labels for mobile screens
- Added responsive breakpoints for tablets (768px) and phones (480px)
- Improved touch targets for mobile devices
- Added landscape orientation optimizations
- Enhanced dark mode toggle positioning for small screens
The website now properly fits mobile screens and provides an optimal viewing experience across all device sizes.
- Calculate min/max values dynamically from data instead of hardcoding
- Remove hardcoded max value of 1 billion which created excessive empty space
- Add appropriate padding (2x multiplier) for logarithmic scale visualization
- Chart now properly scales to show the actual data range (1k-1M sats)
The price table was not displaying because of two issues:
1. The Bitfinex API was returning 403 errors, causing the entire get10yr() function to fail
2. The code was looking for exact date matches in weekly historical data
Changes:
- Add try-catch around API call with fallback to latest historical data
- Replace exact date matching with closest-date algorithm to handle weekly data
- Table now shows 10 years of historical price data with percent changes
- Reduced historical data from 4,442 daily entries to 636 weekly entries
- This improves chart rendering performance and ensures all data up to current date is displayed
- Updated btcpoll.js to handle weekly data updates (updates same week or adds new week)
- Added aggregate-weekly.js script for future data aggregation needs
- Data now properly displays from 2013-09-15 to 2025-11-09
Resolved conflicts:
- Removed convert_btcticker.js (deleted in main, generated data already)
- Kept EUR banknote background in views/sats.hbs for EUR branding
- Merged in all EU language support from main branch
- Restored btceur-kraken-historical.csv from git history to archive folder
- Updated eurrate() function to parse Kraken CSV data directly
- Replaced USD-to-EUR conversion with actual BTC/EUR exchange rates from Kraken
- Historical data now contains 4,442 entries from Sept 2013 to Nov 2025
- More accurate EUR pricing for the graph visualization
- Added eurrate() function to convert_btcticker.js to convert USD historical data to EUR format
- Populated public/historical file with 4,240 entries of EUR exchange rate data
- Each entry now includes sateur_rate and btceur_rate fields required by the graph
- Fixes the MetricsGraphics "No data was supplied" error on the en-eur page
- Removed all references to HKD and satshkd from codebase
- Updated README, package.json, documentation to focus on EUR/sats
- Removed HKD-specific files (convert_btcticker.js, archive/hkd_historical)
- Updated all titles from SatsHKD/HKDSAT to SatsEUR/EURSAT
- Removed HKD image reference from sats.hbs
- Updated Python scripts to use 'historical' instead of 'hkd_historical'
- Added all 16 missing EU official languages with translations:
* Bulgarian (bg), Croatian (hr), Czech (cs), Danish (da)
* Estonian (et), Finnish (fi), Greek (el), Hungarian (hu)
* Irish (ga), Latvian (lv), Lithuanian (lt), Maltese (mt)
* Romanian (ro), Slovak (sk), Slovenian (sl), Swedish (sv)
- Now supports all 24 EU official languages