Previously Twine used icon.horse to load the fav icons, but looks like that service has issues, which means the app no longer loads the images. That shows how brittle the system was.
So, rather than relying on just another favicon APIs cache APIs from Google or Duckduckgo. We are using Coil to load the favicon based on the given homepage link.
If a favicon is not found, only then we will fallback to Google favicons cache.
The reason why I went with this approach is mainly so that we can find the best possible size and also prioritise getting Apple touch icons from HTML metadata, since they are usually high quality.
Previously Twine used icon.horse to load the fav icons, but looks like that service has issues, which means the app no longer loads the images. That shows how brittle the system was.
So, rather than relying on just another favicon APIs cache APIs from Google or Duckduckgo. We are using Coil to load the favicon based on the given homepage link.
If a favicon is not found, only then we will fallback to Google favicons cache.
The reason why I went with this approach is mainly so that we can find the best possible size and also prioritise getting Apple touch icons from HTML metadata, since they are usually high quality.