IORoot Github Profile<!-- --> | <!-- -->IORoot

Howdy! 👋


The current project I'm working on is: "charmbracelet/bubbles"


Owner, coach, developer and toilet attendant of

Currently working on building a better presence within Parkour and online. Presenting new online resources for the community. Main focuses at the moment are:

  • ParkourPulse. The online media and news hub for parkour.
  • Parkour LAB. A complete library of tutorials and online material covering parkour.
  • LondonParkour. Home to LondonParkour, Classes, events and training.


For the more tech-side of things and random stuff, my personal blog is over at

I generally end up doing more development projects for LondonParkour, but they'll mostly revolve around the following things:

  • PHP / SASS / WordPress & Plugin development.
  • Cameras / GoPros / DSLRs / Filming and building cool rigs for parkour filming.
  • Tinkering with various technologies and scripts from ffmpeg to SVGs.
  • Design work with Sketch and Photoshop.
  • Video editing, Videography and After Effects.

Basically, I have a passion for playing with any technology that will get me to accomplish my goal.

3️⃣3️⃣ ThirtyThree

I also work as an SRE / Infrastructure Admin for ThirtyThree. A truly fantastic place to work that enables me to constantly learn new technologies, methods and techniques with some of the best in the game.

Clients range from EE, National Grid, MBDA and AXA to Allen&Overy, McDonalds, Aviva, Screwfix, TheGuardian, National Trust, Oxford Instruments and TSB to name-drop a few... 😉

Day-to-day technologies & services tend to be:

My Repository List

IORootMy Github profile with a github action that automatically creates a list of my repos.
IORoot-WebsiteGatsby Website for
Obsidian-MonokaiA (very) clean and minimal Monokai code-colours based Obsidian theme.
SVGencodeA simple tool to convert an SVG into different formats, ready for use in CSS and HTML.
archive__dead-projectsThis is where all the repos, code and projects I've written over the years that I no longer use lives.
blogMarkdown content for gatsby
docker__puppeteer--facebookA container that runs puppeteer to login into facebook creator studio and schedule a video post to Instagram and Facebook.
examples__google-my-businessExample PHP scripts for Google My Business API v4.9
github-action__cron-lighthouseRuns Lighthouse against URLs - Saves to server.
github-action__deploy--londonparkourLondonParkour Staging wp-content, theme, plugins. deployment
github-action__deploy--parkourpulsePULSE website deploy through CI
github-action__puppeteer--demoRun Puppeteer scripts through github actions
github-action__puppeteer--later.comRun a puppeteer script to schedule a video on
github-action__puppeteer--videoGithub Action to run puppeteer with media/video capabilities. (Default downloaded chrome cannot use video files)
github-action__scraper--to-netlifyGithub Action to scrape a website, make a static version and push to netlify.
github-action__wordpress--phpunitA Github Action workflow to run WordPress, PHPUnit, MySQL and pull in a second private repo
htmltreeGenerate HTML index.html files in a linux file structure.
latestversions-scraperLatestVersions Scraper
latestversions-websiteLatestVersions Website
macos__colorpicker--app🌈 Apple MacOS Colorpicker Panel shortcut
macos__colorpicker--palettes🌈 MacOS Color Palettes in Apple .CLR and .JSON formats. TailwindCSS, MaterialDesign, Bootstrap, W3C, Primer to Copic, Pantone and Crayola.
macos__json2clr--convert🌈 Colour Palette .JSON to Apple .CLR converter.
motdMessage of the Day
pagespeed__lighthouse-viewerCustom Lighthouse-viewer to read a Pagespeed Insights API JSON response file specified on URL path
prometheus__grok--apache2Grok_exporter yaml config files for Apache2 access and error logs. For use with Prometheus.
scraper__instamancerScrape Instagram's API with Puppeteer
scripts__toolsLibrary of BASH and CLI scripts
tailwind__variant--on🌬 A tailwind variant that allows you to select every X children of Y children.
typora__notion-themeMy customisations for Typora to look a little more like
uploads__labsThe image uploads folder for
uploads__londonparkourAll the image uploads so we can use CI
wp-plugin__REST--isometricGeneric REST request with a view output of images in an isometic format.
wp-plugin__REST--labsREST Interface to
wp-plugin__REST--pulseCreate an animated Stack of posts for homepage. Uses anime.js
wp-plugin__acf--codemirrorAdd CodeMirror textarea fields for Wordpress ACF
wp-plugin__acf--inline-datetime-fieldRenders the datetime picker inline rather than a popup.
wp-plugin__acf-options-import-exportAllows you to import and export ACF options directly from the database. Caution, this is very dangerous!
wp-plugin__admin--remove-commentsRemoves the Wordpress 'Comments' menu.
wp-plugin__admin-themesSwitch themes depending on website
wp-plugin__admin-widgetsCreate admin widgets for the wordpress dashboard. Enables you to embed any code including iframes.
wp-plugin__advanced-forms--replytoAdd a 'reply-to' header into the advanced-forms ( plugin.
wp-plugin__andyp-pluginsAndyP Plugin Manager
wp-plugin__cpt--ampAMP Pages
wp-plugin__cpt--blogCustom Post Type - Blog
wp-plugin__cpt--demonstrationCustom Post Type - Demonstration
wp-plugin__cpt--eventsEvents CPT to add synced gCal events to.
wp-plugin__cpt--pulseCustom Post Type for Pulse
wp-plugin__cpt--supportCPT Support
wp-plugin__cpt--syllabusCustom Post-Type for the syllabus pages.
wp-plugin__cpt--tutorialCustom Post Type - Tutorials
wp-plugin__footerACF options panel to allow you to select a specific page for your footer.
wp-plugin__gcal-syncGoogle Calendar to Wordpress sync
wp-plugin__memberpress--login-logoutSimple button for logging in and logging out of the wordpress site.
wp-plugin__menu-chipsChips shortcode for the parkourpulse pages.
wp-plugin__menus--extendedInject any HTML code into the wordpress menu
wp-plugin__menus--responsiveChanges a wordpress dynamic sidebar menu into a responsive dropdown select menu
wp-plugin__oauth--GMBGoogle-My-Business Plugin implementation
wp-plugin__oauth--YouTubeoAuth implementation to separate away from Universal Exporter Plugin
wp-plugin__oauth--gCALACF oAuth for google Calendar
wp-plugin__oauth-demoDemo of how to get google OAUTH working in wordpress.
wp-plugin__page-builderCustom Page Builder to replace WPBakery
wp-plugin__page-builder--epic-sliderEpicSlider for Wordpress PageBuilder
wp-plugin__page-builder--flickityMetafizzy Flickity slider module for page builder.
wp-plugin__page-builder--heroRandom Hero generator for page builder
wp-plugin__page-builder--isotopeMetafizzy Isotope grid module for page builder
wp-plugin__page-builder--rawcodePage builder rawcode
wp-plugin__page-builder--video-rotatorPage builder addon for video rotator
wp-plugin__page-builder--yt-liteAdds YouTube Lite into the Page Builder
wp-plugin__pipeline--api-scraperAPI Scraper Wordpress plugin that will allow you to get data from YouTube and output the results as you like.
wp-plugin__pipeline--exporterPipeline Project - Exporter
wp-plugin__pipeline--generative-imagesGenerate SVG images based on featured images.
wp-plugin__pipeline--processorPipeline Processor to combine records. Part of the Pipeline Project
wp-plugin__regexerApply a regex to any post type and field. Test, Single ID or Bulk all posts of type.
wp-plugin__shortcode--breadcrumbsAdds breadcrumbs with CSS Accordion drop-downs.
wp-plugin__shortcode--factsVarious small snippet facts on various entities within wordpress
wp-plugin__shortcode--fetchAllows you to obtain posts from wordpress and supply a template to apply to all retrieved results.
wp-plugin__shortcode--modalsCreates simple CSS-Only modals
wp-plugin__shortcode--pictureShortcode for creating a responsive picture tag for images.
wp-plugin__shortcode--random-image-urlObtain a random image URL based off a supplied list of image IDs
wp-plugin__shortcode--treeParkourLabs - Builds a 3-level hierarchical structure based off categories and posts.
wp-plugin__sidebar-creatorWordpress sidebar menu from taxonomy
wp-plugin__stripe-paymentsStripe payment customisations
wp-plugin__taxonomy--extraExtra ACF fields for taxonomies
wp-plugin__theme--custom-structureCustom Theme Structuring for Wordpress
wp-plugin__thumbnail-foldersCreates subdirectories in the uploads folder for each thumbnail size
wp-plugin__ytdlYoutube downloader for WordPress.
wp-theme__labs-londonparkourThe LABS website theme.
wp-theme__londonparkour--v4Wordpress theme for LondonParkour. Uses _underscores.
wp-theme__londonparkour--v5Version5 Of LondonParkour
wp-theme__pulseParkourPulse Theme.
wp-theme__syllabus-v1Syllabus website theme