What's going on everyone, its that time of the month again. Let's dive right in on what I've been up to over the past month both professionally and personally.
Refactoring Privacy Policy
Starting off the refactor of components and pages was the Privacy Policy page. One of the things I noticed during the compilation stage of my site for production was just how big the privacy policy page was, mostly because it was pulling on Apollo and other related things to load an article and I got to think about it and well there was no reason for it.
I mean how often does a privacy policy change? My initial refactor of this was to inline markdown but quickly realized the proper solution was a .md file and load that from the bundle, cutting down on size and making the page instant and most importantly offline capable.
SEO
One of the ongoing problems for me that I'm still working out how to fix correctly but having made a lot of progress over the last month is SEO. Some things weren't being filled out properly, getting undefined in quite a few places but there were many defaults also not being set that should have been and some defaults being set that shouldn't have. I also took the opportunity at that point to include in JSON-LD which is another method of having SEO that is google friendly for page rankings. I'm still researching this one and how to do it entirely properly so I'm sure it's going to need to be looked at again in the future but for now it's functioning.
Data Optimization
Another pain point on the site has been some of the data loading and how to filter that data and I spent a good part of the last month on this and cutting back on extraneous data when it's not even used on the page.
Doing all this resulted in page load speeds that are much much better and get content showing to the user so much faster, I don't exactly have empirical data to back it up but its easily been 5 seconds faster and I know network requests went from like 60KB to not even 6KB doing so... thats pretty good!
Context
I gained my first experience with the React Context API this month as well in the process of rebuilding the filtering system on the front-end of the model's page. Previously when the page loaded the select boxes were populated with data (which still is the behavior) and then when a user changes one it would force a full router redirect to the same page, but with new URL params that were then fed into the GraphQL query.
I also had to create a contorted URL builder that took the current params and the selected value and updated depending on it before the redirect happened. Now, this is handled with context, with the select boxes getting their own useState hook to update them and the context tracks this, so when one box changes it instantly passed to the GraphQL query and data is re-fetched without a page load.
The only downside is that the URL isn't updated with the params, something I'm actively looking into.
Overall Fixes/Tweaks
This leads me to the end of the month where I spent a great deal of time just refining layout by switching things to Grid versus using lists where appropriate, updating some icons, checking out some responsiveness issues on the contact page and even in some menus. There is and always be more work to do here but everything is coming along nicely.
What's On The Agenda
One of the things I'm going to be working on over this next month is pagination of the model's page, right now it only loads 20 results and I'm trying to figure out the best method to handle this. I don't think I want a next page button, so I'm considering a load more refetch. This will also apply to the articles if I like it enough. The next item will be the URL bar with filters for apollo queries, this again will be for models and articles as they both will benefit.
One thing i'd like to tackle in the coming month and I'm already working on somewhat is splitting out email into a standalone micro-service hosted on amazon AWS Lambda or maybe Netlify so that I can merely pass the MJML template and who its going to along with subject and be able to fire off an email from the site. From there the usual, package updates, CSS tweaks, maybe some new content?!
Personal Life
At the time of my writing this it's very rapidly approaching Christmas and I've got numerous projects in the works for family members for Christmas, none of which are nearing completion. My niece and nephew are receiving model aircraft based on the Thunderbirds and Blue Angels that I'm really hoping they like. My brother I'm building yet another fire engine and It's sad how far behind it is right now but I think I'll be able to make a pretty quick come back on it to get it finished.
Otherwise, It's, all the same, more or less. Work and sleep haha. Oh and board games! Can't forget those! Any recommendations hit me up!