jahed.dev

FrontierNav Weekly: 25th May 2020

Progress Report

Changes

Support the project

This week, FrontierNav has 1 new anonymous patron!

If you would like to support FrontierNav, please consider donating on Patreon. Doing so helps fund development and keeps the project going. Thank you.

Xenoblade Chronicles: Definitive Edition

Xenoblade released today on Switch. I played through Future Connected; the bonus side story. It's short and they made a lot of improvements to the map system so you know exactly where to go for quests. There's some non-quest related data that would be useful to have like Gem drops from Mining Spots. I'll be working on that.

I haven't re-played the full game yet but I'm planning to start once I get the time. It doesn't look like they changed much, so I can get started on adding data for it soon too.

CSV Importing

Most of Xenoblade's data is already available. I could do what I've done in the past and write scripts to convert the spreadsheets to FrontierNav commands. However, I think it's time to make that process faster and less manual.

The import process itself will be a lot like SQL commands but with a friendly interface. Pick a table, map your columns, etc.

Link Previews

Link Previews are what you see when you post a link on Twitter or Discord. The title, description and image that appears. FrontierNav, being JavaScript-only doesn't support that since services require you to include those details in the HTML response of a URL.

So, I started working on a way to generate those details using pre-rendering to snapshot the HTML after running FrontierNav through a browser. With this I'd have a page ready faster for search engines to pickup without executing JavaScript.

It worked, but there are a lot of downsides that I felt it wasn't really worth it from an end user perspective.

The HTML file when people visit FrontierNav will be a lot larger since it has to contain pre-rendered content. Then the JavaScript needs to come in and make it interactive. For people running JavaScript, that adds more steps and delays for exactly the same result as before. For those not running JavaScript, they actually see a normal page rather than a blank one, but FrontierNav doesn't really behave correctly since it needs dynamic elements to fit everything on the screen like the sidebar (especially on mobile).

On top of that, the pre-rendered HTML needs to be re-rendered and cached whenever the page changes (i.e. data or layout change) so there's more maintainenance. Running an entire web browser is heavy work so doing it for thousands of pages can get expensive.

I haven't given up completely with Link Previews. I think they're required for FrontierNav to work "correctly" with other apps. Next time I touch this area, I'll likely take an approach similar to how I implemented sitemaps so that both sitemaps and link previews can be refreshed together without a browser, reducing maintenance and keeping the HTML relatively small.

Next Up

Thanks for reading.