+ HAVE MORE+ ASK FOR MORE
RODNEY LAB NEWS
  • Newsletter
  • Tutorials
  • Blog
RODNEY LAB NEWS
  • Newsletter
  • Tutorials
  • Blog

Subscribe to the newsletter

By subscribing, you agree with our Terms of Use and Privacy Policy.
READING TIME: 4 MINUTES

Rodney Lab Newsletter — January 2023Rodney Lab Newsletter — January 2023

blurry low resolution placeholder imageRodney Lab Newsletter

Font spacing

Font size

🍋 Pick of the Month — Deno Fresh #

I quite like the Deno Fresh framework. It creates SSRServer-Side Rendered sites with fantastic DXDeveloper Experience and embraces the resurgent “use the platform” pattern. What I have appreciated most recently is how quickly you can optimize a Deno Fresh site. Hosting on Deno deploy, you get instant builds. As soon as I hit Enter to push local changes to GitHub, I can refresh the browser and see that the changes I just made are already live on Deno Deploy. Such a short feedback loop makes optimizing sites a whole lot faster. You can run PageSpeed Insights or other tools on the live site and immediately see the impact of the latest changes.

Deno Fresh also gives you, the developer, more control over your sites. Although you get a lot of convenience from any modern framework, some have a trade-off of less control. In fact, I noticed Adam Argyle has moved his personal site to Deno Fresh and mentioned Fresh not making decisions, which he did not want to make as a reason for his choice.

Personally, I found implementing the tips which PageSpeed Insights offers much more straightforward with Fresh. As an example, because you add the link tags for CSS yourself, splitting off non-critical CSS is simple. You can have separate CSS files for desktop and mobile (using a media query in the link tag) or defer loading CSS which the browser needs, but not straight away.

🦀 Follower Feedback — Markdown WASM Module #

I created a Rust WASM module to help with Markdown processing for this newsletter. Admittedly, this was mostly to help in my quest to learn Rust. I was delighted to get positive feedback on the module and a request to add it to deno.land/x (a collection of third-party modules for Deno).

Naturally, I obliged and it is now on deno.land/x. The module is called Parsedown. Parsedown parses Markdown to HTML, adding anchor links for titles. It also performs some minor text formatting (like replacing “'” with “’”). As well as that, it works out reading time and has a separate function for generating Email HTML from MJML. All of this makes it much easier to distribute the newsletter on the site as HTML and also in emails as Email HTML and plaintext.

Give it a try if you are interested and drop some ideas for improvements.

📢 Fun Finds #

  • Productivity — Graphite Stacked Git Commits: I’ve started trying this Git tooling out. It is designed to let you make changes to your code incrementally, adding them to its stack. This lets your peers review changes in smaller chunks, rather than having to block out a chunk of time for the process. Each branch you create is a new stack element. The stack model lets you push the reviewed changes to the trunk (or main) branch even while later ones are pending review. It works mostly from the CLI and integrates closely with git. There is an online dashboard, though, which shows you your pending reviews.
  • Resources — Docker Curriculum: if you’re someone who puts off using Docker until they really have to, you might find Prakhar Srivastav tutorial useful. It is suitable for Docker novices and takes you right from setting up Docker on your device. To follow along, you will need AWS and Docker Hub accounts, but you can just read along or use other services you might prefer.
  • Performance — jampack: this is a newly open sourced tool for optimizing your static sites. You run it post-build to compress images and bump up your Core Web Vitals scores. From what I have seen, it doesn’t optimize fonts, but you can use the subfont tool with static sites. Both are worth a try if you need to make your site a little faster, especially if you have not yet optimized your images.

👋🏽 Until next time! #

Hope there was something valuable in here for you. As always, reach out with feedback and until next time, here are a few highlight posts/tutorials:

  • Building a Headless WordPress Site with SvelteKit 1.0
  • Getting Started with Deno Fresh
  • Deno Fresh Middleware: HTTP Security Headers
Did you find this issue useful?
  • 🍋 Pick of the Month — Deno Fresh
  • 🦀 Follower Feedback — Markdown WASM Module
  • 📢 Fun Finds
  • 👋🏽 Until next time!

Subscribe to Email and RSS

If a friend or colleague forwarded this to you, and you like it, you can subscribe to receive the newsletter in your inbox, but you don’t have to! If you prefer, subscribe to the newsletter RSS feed or just even check back to see the latest newsletter issue once a month.

Ask for more

1 Nov 2022—Astro Server-Side Rendering: Edge Search Site
3 Oct 2022—Svelte eCommerce Site: SvelteKit Snipcart Storefront
1 Sept 2022—Get Started with SvelteKit Headless WordPress

Copyright © 2022 – 2025 Rodney Johnson. All Rights Reserved. Please read important copyright and intellectual property information.

  • Home
  • Profile
  • Plus
  • Newsletter
  • Contact
  • Links
  • Terms of Use
  • Privacy Policy
We use cookies. Some (optional) cookies help to work out which content visitors find most useful. Please click the “Options” button to make a choice. Learn more here.

Some cookies are set in order to move around the website and use its features. Without these cookies, services cannot be provided.

We use our own web analytics cookie to help us know which content is most useful and give us an idea of the audience. The cookie code creates a random identifier for each new session. It associates a time stamp, your browser user agent, locale and country with the session when that information is available. If you came here from another page, we will also associate that referring page with the session identifier when that information is available. Please see the Privacy Policy for further details. The web analytics cookie is optional.