Portfolio

Deno Get Client IP Address: Remote User IP
Svelte Real‑time Multiplayer Game: User Presence
Svelte Login Form Example: Best Practices
Astro PostCSS Example: Future CSS Today
Astro Font Fallbacks with Capsize: reduce CLS
Astro JS Middleware Example: Request Logging
Create a SvelteKit Component Library
SvelteKit Ably: Sqvuably Real‑Time Game
https://rodneylab.com/deno-stylelint/
Deno Fresh Responsive Images: Resize API
Deno Fresh PostCSS: Future CSS with Deno
Deno Fresh HTML lang Attribute: Fresh a11y
Matrix Message Relay Bot: API with Deno & Rust πŸ¦€οΈ
Creating Whisper Video Captions
Astro QR Code Generator
Astro Cookies API: Cookies on HTTP Requests πŸͺ
Astro Comment Form: with Turnstile & Prerender
Deno Fresh RSS Feed: own your Content
Deno Fresh Getting Started: Islands, APIs & Testing
Deno Fresh WASM: Code Modules in Rust
Deno Fresh Middleware: HTTP Security Headers
Getting Started with Deno Fresh & the Platform
Deno Fresh Stack: fast SSR with Web Standards
Astro Husky Git Hooks: CI Tooling
Astro Vanilla‑Extract Styling
Astro JS Sitemaps
SvelteKit Node App Deploy: Linux Cloud Hosting
Just dropped a new post taking you through exposing your SvelteKit app to Edge Functions on localhost. We pull localhost Edge data into β™₯️ SvelteKit. Hope you find it useful! https://rodneylab.com/...
Just dropped the first part of a 2-part post on creating a node slider with β™₯️ SvelteKit. We use sharp to generate responsive images in next-gen formats and cache them in the CDN to make the page πŸ”₯...
Just dropped a new tutorial on etting started with headless WordPress and SvelteKit. We tackle creating a headless WordPress site using Local and pushing to the cloud, adding WordPress content and ...
Im always forgetting the comands to spin up a new πŸš€ Astro project so made a quick reference cheatsheet. Hope you find it useful! https://rodneylab.com/how-to-create-new-astro-js-app/
Just launched a new post on πŸš€ Astro SSR + serverless Redis in collaboration with the Upstash team. We cut JavaScript in the frontend using HTML forms to interface with Cloudflare Worker powered API...
Just dropped a new post about using file routes or resource in πŸš€ Astro. We see JSON and PDF examples and also touch on SSR alternatives, though you might tyr Webhooks too. Hope you find it useful! ...
Just dropped a new post on a GraphQL API template written in TypeScript using πŸ”₯ Fastify as a server, Mercurius, Nexus and Prisma with PostgreSQL also uvu! Hopefully useful if you ant to combine som...
Fresh new post on the fast πŸ‹ Fresh framework from the Deno team! Firat look at fresh speaking about what I liked and what will be interesting to explore further. Hope you find it useful! https://ro...
Just dropped a short video on setting up a custom 404 page in πŸš€ Astro JS. Hope you find it useful! https://rodneylab.com/astro-js-404-page/
Just dropped a new post taking you through how you can add Mux video to your πŸš€ Astro site using their new HTML components player and no framework. Even adds Chromecast support 😲 Hope you find it us...
Just updated a video taking you through how to spin up a new ❀️ SvelteKit prokject and also customising default server ports and also changing how busy ports are handled. Hope you find it useful! h...
Just dropped a new post on the challenge of Sveltifying some awesome HTML / CSS / JavaScript shy, peekaboo header code. Uses a little bit of style directives, some component binding and also event ...
I do love πŸ“Ό Mux for self-hosting video and was super-excited to work on the latest tutorial using ❀️ Svelte to build a video blog! As well as the Mux side, we look at lazy-loading and reducing cumu...
In this Temporal API Duration post, we flesh out a detailed example of the API, taking a close look at ISO8601 notation and available methods. Hope you find it useful! https://rodneylab.com/tempora...
Just dropped a little video where we talk about the relative merits of the SSR and SSG models. We also see how you can set up ❀️ SvelteKit for a completely static site or mix with some server side ...
Just wrote a new post on a way you might transform the SvelteKit generated CSP meta tags to HTTP headers served on your static ❀️ SvelteKit site. Tested on Netlify and should work on Cloudflare Pag...
Just finished a new post on how you can use Chart.js with ❀️ Svelte. We look at setup as well as styling and configuration, including changing the canvas background colour. Hope you find it useful!...
Just dropped a new ❀️ SvelteKit tutorial where we build out our own Svelte app for generating tints and shades, checking contrast ratios and even converting between RGB, HEX and HSL. Learn about cl...
Have you noticed VSCode's new filenesting feature? πŸ› For example, it nests package-lock.json under package.json in the file explorer. Just recorded a new video talking through this in more detail. ...
Just dropped a new article taking you through the new ❀️ SvelteKit TypeScript πŸ‘¨πŸ½β€πŸ³ vanilla-extract starter and getting you up and running on it. vanilla-extract lets you write styles in TypeScript ...
Just wrote an article on how you can build an offline, optimised SVG favicon workflow using free, open ource tools. πŸ”₯ You generate and optimise the five favicon formats and sizes needed for wide le...
πŸ“Ό new video on how you can add a favicon to your πŸš€ Astro app, including the 6 files you need for wide support over legacy and modern browsers. Hope you find it useful! https://rodneylab.com/astro-j...
Putting together a cheatsheet on using the new πŸ•š Temporal API. Just written a new article talking in a little more detail on what I have learned on converting from one time zone to another. There's...
Just wrote a new article introducing the Temporal API Cheatsheet. It's built as a static πŸš€ AStro site with no need for Svelte, React, etc, just code in Markdown, TypeScript and Astro markup. Hope y...
πŸ‘€ Just dropped a new post on how you can disable data collection in Astro. The πŸš€ Astro CLI will collect data by default. Although the telemetry is anonymised, you might still want to block it. Hope...
Just dropped a new post on how to add Turbolinks to your new and existing πŸš€ Astro projects. Hope you find it useful! https://rodneylab.com/astro-turbolinks/
Here's a new video on how you can change the ❀️ SvelteKit dev server and preview server ports. Handy if you already have something on port 3000. Hope you find it useful! https://rodneylab.com/svelt...
Just dropped a post talking about using Capsize with ❀️ Svelte. You see how to add CSS custom properties (CSS variables) on components andelements in Svelte and also how you can style pseudo-elemen...
Just dropped a new blog post showing you how to use mdsvex with Shiki syntax highlighting in your ❀️ Svelte app. You see how to add line numbers and also extra css classes to particular code lines ...
Just dropped a new 🎬 video taking you through some CI tooling for Serverless Rust and other Rus projects. Hope you fid it useful! #askRodney https://rodneylab.com/rust-ci-tooling/
Just dropped a new post taling you through how I used 🦾 Rust Cloudflare Workers to listen for Mux webhooks. Also use ☎️ Telegram bot to relay the updates. Hope you find it useful! https://rodneylab...
Just put together a new post talking about what I learned getting started with Rust Cloudflare Workers. It includes how you can send email from a Worker using the SendGrid REST API with Reqwest. I ...
πŸš€ Astro supports component-scoped styling out of the box. You can still use Sass though if that's your preferred styling language. You can find out how to use Sass with Astro in the post I just dro...
Just dropped a new πŸš€ Astro JS tutorial going from creating a minimal app, right up to deploying it as a static site. On the way you add Svelte, React and Markdown components. I hope you find it use...
Just dropped a video explaining what the $lib import aliases in ❀️ SvelteKit are all about. Hopefully, you'll find it useful if you are new to Svelte. Let me know what else you struggle(d) with lea...
Just dropped a new post taking you through how to roll-your-own sharing in your ❀️ Svelte app with Web Share API support as a progressive enhancement. Includes fallbacks for Facebook, Telegram, Twi...
Just dropped a new video talking all about how you can add an RSS feed to your new Astro blog. If you're using the πŸš€ Astro Blog Markdown starter, this is all already in there. Just spin it up! Hope...
Just dropped a post introducing the new πŸš€ Astro Svelte starter. It takes you through the accessibility and SEO features and shows you how to get going faster on your next Astro ❀️ Svelte blog site....
Just dropped a new post on how you can use Serverless with Astro. You see how to set up a landing page with contact form using Astro with Netlify Serverless functions and a spot of Svelte. I hope y...
Just dropped a new video talking you through #each blocks in Svelte: - nice introduction to #each in ❀️ Svelte if you are learning Svelte -level up on const directives and desctructuring if you hav...
πŸ’« Just dropped a new post taking you through how to add a Twitter SVG icon to your Svelte site footer using iconify and icΓ΄nes in ❀️ SvelteKit. Also works in Astro or Slinkity Svelte components. Ho...
πŸ’« Just dropped a new post taking yout through how to set up automated accessibility testing in ❀️ SvelteKit using Playwright. Hope you find it useful! https://rodneylab.com/sveltekit-accessibility-...
Just dropped a new post in which you see how you can use astro-icon to create a CSS-only Scroll to Anchor feature in your Astro app. There's also a tip on how you can make smooth scrolling more acc...
Just dropped a new post taking you through what I learned getting started with Astro from square one. I hope you find it useful! https://rodneylab.com/getting-started-astro/
Are you new to ❀️ Svelte and wondering when to use a readable store and when a writable store makes more sense? Just dropped a new video where we take a deeper look at readable and writable store u...
Just finished a post on setting up and testing an FAQ page with SEO markup in SvelteKit. We build an FAQ page from scratch in ❀️ Svelte. Hope you find it useful! https://rodneylab.com/sveltekit-faq...
πŸ”‘ I put together some details on how you can create a secure key for SSH GitHub transactions using your FIDO U2F USB key https://rodneylab.com/using-fido-u2f-github-ssh/
Using fetch with SvelteKit: how you can use fetch with SvelteKit to pull data from endpoints, interact with external APIs and refresh the UI. https://rodneylab.com/using-fetch-sveltekit/
🚚 how you can upload large files like video to S3 compatible storage with SvelteKit. You can use this to let users upload content using your ❀️ Svelte app or to push your own media to the cloud. Ho...
πŸ‹πŸ½ how you can use Husky and 6 other continuous integration tools to level up your ❀️ Svelte CI workflow. Also see how to configure the tools to work with ES Modules used by SvelteKit. Hope you fin...
How you can run accessibility (a11y) checks on your ❀️ Svelte CSS code. We run through setting up stylelint for vanilla CSS SvelteKit projects and also take a peek at adding svelte-check to Husky. ...
πŸ”‘ how you can improve login security on your ❀️ Svelte app with FIDO U2F login. See why you might add multifactor authentication (MFA) to your SvelteKit fron end and also what second factor authent...
☁️ how you can add S3 compatible storage file uploads to your ❀️ Svelte app. We generate a presigned url on our SvelteKit server route to give you more control over how your file is shared. Hope yo...
πŸͺ a demo showing you one way to set up a ❀️ Svelte app with a section for authenticated users. You see how you can use HttpOnly cookies and the session store in SvelteKit with client data. Hope you...
⛅️ how I used Cloudflare's developer platform to build a demo backendless ❀️ Svelte site powered by SvelteKit and Rust for the Developer Challenge. Hope you find it interesting! https://rodneylab.c...
πŸ” how you can add HTTP headers to your static ❀️ Svelte site. Also a quick look at the hosting options for static SvelteKit sites and why you might want to add custom headers. Hope you find it usef...
⚑️ see how you can temporarily cache form inputs on your ❀️ Svelte app using Session Storage. This can improve user experience, saving your SvelteKit site visitors having to re-enter data after a p...
πŸ“Έ how you can create a basic responsive gallery in SvelteKit with lazy-loading. Also see how you use DOM element height in your ❀️ Svelte code and how Vite ./your-folder/*.js imports work. Hope you...
🀫 how you can increase your privacy by using VOIP to make mobile calls with Telnyx. Hope you find it useful! https://rodneylab.com/how-to-make-android-voip-calls/
🌞/πŸŒ› see how you can use ❀️ Svelte stores together with Local Storage to add themes to your SvelteKit app. We also touch on the differences between Session Storage and Local Storage. Hope you find i...
πŸ§‘πŸ½β€πŸ³ vanilla-extract generates CSS files from TypeScript and has zero overhead at runtime. See how you can use vanilla-extract with ❀️ Svelte in this tutorial πŸ‘‡πŸ½. Hope you find it useful. πŸ™πŸ½ @benje...
β™Ύ ever wante to scroll to infinity and beyond in your ❀️ Svelte app? See how πŸ‘‡πŸ½ you can use a reactive function with stores in SvelteKit and the Instagram API to add infinite scrolling. Hope you fi...
πŸ–₯ how you can directly import JSON data efficiently into your ❀️ Svelte app thanks to SvelteKit's Vite tooling. Handy when your client wants to update a site you hand over. Hope you find it useful!...
πŸ’« updated post on how you can use vite-imagetools to add responsive and Next-Gen images to your ❀️ Svelte site. Hope you find it useful! Thanks for the feedback... trying to cut down further on boi...
⌨️ how you can add Vim keyboard shortcuts to help help devs get around your blog. More than a quarter of devs use Vim. They don't like using a mouse πŸ˜€ let them get around your ❀️ Svelte with just t...
πŸ” how you can spin up a secure https dev server in SvelteKit. Handy if you want to test FIDO U2F and other security tweaks in your ❀️ Svelte site. Hope you find it useful! https://rodneylab.com/sve...
β›”οΈπŸ€– how you can use hCaptcha to keep bots off your ❀️ Svelte site. Handle hCaptcha server code one of two ways: keep it all in SvelteKit (favours SSR) or use a serverless, reusable Rust Cloudflare ...
Following the post on GraphQL queries with no Apollo client and no urql... here's how you can generate TypeScript types from GraphQL APIs using graphql-codegen in ❀️ Svelte also see how to do auth ...
⚑️ Create your own SvelteKit component library to level up your ❀️ Svelte app creation productivity. You package up your components then deliver updates to your sites just by simply updating the de...
⚑️ how you can use uvu by Luke Edwards for fast unit testing on your TypeScript API also see how you can run integration tests on GraphQL endpoints using SuperTest or Fastify plus pre-commit husky ...
πŸ”₯ Here's something to help you keep your SvelteKit GraphQL apps lean. See how you can query GraphQL endpoints using just fetch... no urql, no Apollo client! Also handle state with ❀️ Svelte stores....
Here's a quick way you can spin up a local PostgreSQL database using Supabase CLI. You can use this for trying out Prisma or even building out the Express or Fastify backend of your latest app. Hop...
☁️ read why Cloudflare Workers are faster than other serverless solutions in this post. - see how you can code up workers using new native Rust support - build an hCaptcha verify endpoint to try th...
πŸ–± You can add a view counter to your ❀️ Svelte site for UX or to know which content is most interesting. You can see πŸ‘‡πŸ½ how you can track your SvelteKit site views using the Intersection Observer A...
See how easily you can add Twitter, GitHub, Discord and other SVG social icons to your ❀️ Svelte app footer, contact page and share buttons. 🌟 See how effortless ❀️ Svelte makes it for you. Hope yo...
πŸ–‹ You will read about how you can add responsive image to template generated pages in SvelteKit in this post. You can use this on your ❀️ Svelte blog app or online store. Also handy for your SEO im...
☁️ see how you can keep your existing Netlify functions when moving your app to SvelteKit. You can also use Netlify functions to bring optimised Rust code to your ❀️ Svelte apps. Hope you find this...
πŸ–Ό Optimise your ❀️ Svelte site with WebP background images. You see how to add a JPEG fallback with SvelteKit in this video. You generate cached WebP images with no hassle too! Hope you find it use...
πŸ–Ό Here's how you can add responsive WebP images to your SvelteKit site. You also see how to generate low resolution and dominant colour placeholders avoiding Cumulative Layout Shift. Hope you find ...
πŸ”₯ You don't need to waste a whole day coding lazy load in ❀️ Svelte only to realise you have tiny gains. You can use a lightweight and easy to use plugin. πŸ“Ή I have recorded this video so you can wa...
πŸ”₯ Here's how you can deploy your fast, static ❀️ Svelte site for free to Render. Only takes a few minutes to set up. Hope you find it useful. https://rodneylab.com/sveltekit-hosting/
Here's how you can bring your own data in Gatsby, adding it to the GraphQL data layer. You see an example with Webmentions. You can ♻️ upcycle the code here for other APIs. Hope you find it useful....
πŸ’„ Here's how you can set up stylelint to keep the SCSS and CSS code on your ❀️ Svelte project up to spec. You can even add a plugin to check your CSS accessibility. I do hope you find it useful. ht...
πŸ—³ Thanks for feedback on the SvelteKit Blog MDsveX starter and SEO... as suggested you now have built in SEO meta tag generation in the ❀️ Svelte blog starter to help your new blog rank. Hope you f...
πŸ”Ž Use Web APIs to highlight site search results in your React app. We use semantic HTML to highlight text and the Web API for UX enhancements. You can use code with NextJS or even GatsbyJS. Hope yo...
πŸ“Ή Quick and easy video on how you can add a favicon to your ❀️ Svelte site built in #SvelteKit. I hope you find it useful. https://rodneylab.com/sveltekit-favicon/
Use GitHub's GraphQL API to learn ❀️ Svelte and pick up how to use Apollo Client with #SvelteKit on the way. We do all that in the latest tutorial. Hope you find it useful! https://rodneylab.com/us...
Here's how you can use πŸ”₯ fast JS Search from Brian Vaughan to get site search on your SSG site and keep it static with no external search services. JS Search is a lightweight Lunr implementation. H...
πŸ† Did you know how easy it is to add polish to your ❀️ Svelte site with rehype plugins? In this quick video you see how simple SvelteKit makes it to add a toc to your MDsveX posts. I hope you find ...
⛔️ remember to check Google is happy with your site's Schema.org structured data. You can see how to generate it in ❀️ Svelte using #SvelteKit at https://rodneylab.com/adding-schema-org-markup-to-s...
Here's a quick 'n easy way you can make a ❀️ Svelte PWA in SvelteKit. It's πŸ₯§ oven ready and generates icons and manifest for you. You just need to customise the config file. I hope you find it usef...
🌈 Here's an #a11y tool for nailing your contrast ratio in text-on-image overlays. It finds alpha (overlay opacity) for you, using #serverless Rust. Post πŸ‘‡πŸ½ also shows you how to set up responsive i...
Here's how you get nice previews in WhatsApp, Signal and other apps when pages from your ❀️ Svelte site get shared. Adds to previous post on Twitter meta. Hope you find it useful. https://rodneylab...
Here's a short video which takes a look at SvelteKit's file based routing system, with an example of migrating your ❀️ Svelte blog's url path format. I hope you find it useful. https://rodneylab.co...
I have updated the blog post on getting started with SvelteKit, adding a link to a quality piece on server side environment variables by Scott Spence. Hope you find it useful. https://rodneylab.com...