thejoecodes

dev blog by johnny mcfadden

What's Happening

Samson and Goliath, the Harland & Wolff cranes in BelfastH&WH&W

The latest from web, mobile, AI and infra, picked out of over a hundred YouTube channels, podcasts, newsletters and release feeds, filling up day by day through the week.

  • Top videos
  • Releases
  • Talks
  • Podcasts
  • Trending repos
See this week

Latest Articles

const intervalRef = useRef(null)
const resetGame = useCallback(() => {
clearInterval(intervalRef.current)
}, [])

πŸ•ΉοΈ Building 'Simple' React Games

21 Apr 2026 β€’ πŸ“– 19 min read
β˜• Coffee needed

What I learned refactoring two browser games: grouping state, useReducer, stale closures, timer cleanup, render-time randomisation bugs, and replacing three intervals with one rAF loop.

0
0
0
REACT JAVASCRIPT
const { userId } = useLocalSearchParams()
useEffect(() => {
getUserDetails(userId).then(setUser)
}, [userId])

🦸 Expo & Expo Router

21 Jan 2024 β€’ πŸ“– 30 min read✏️ Updated 16 Mar 2026
β˜• Coffee needed

Expo, EAS & Expo Router: one codebase covering web, Android, and iOS, with managed workflows, OTA updates, and file-based routing.

0
0
0
TYPESCRIPT REACT NATIVE
export const resources = {
en, fr,
} as const
type Locale = keyof typeof resources

🌐 React i18n TS Support

17 Dec 2023 β€’ πŸ“– 5 min read✏️ Updated 15 Mar 2026
⚑ Lightning read

Get full TypeScript intellisense for your i18n translations using "as const".

0
0
0
TYPESCRIPT REACT
// arrow: 'this' is always the class
logName = () => console.log(this.name)
// function: 'this' depends on caller
logName() { console.log(this.name) }

🏹 Regular Function vs Arrow Function

17 Aug 2023 β€’ πŸ“– 9 min read✏️ Updated 15 Mar 2026
β˜• Coffee needed

Learn the differences between normal functions and ES6 arrow functions.

0
0
0
JAVASCRIPT
if (true) {
var x = 1
}
console.log(x) // 1, var leaks out!

πŸ“¦ var, let & const

23 Feb 2023 β€’ πŸ“– 9 min read✏️ Updated 15 Mar 2026
πŸ”° Beginner friendly

Learn about scope chain, hoisting, lexical scoping and the key differences between var, let and const.

0
0
0
JAVASCRIPT
const Btn = ({ onClick, children }) => (
<button onClick={onClick}>
{children}
</button>
)

🧱 React Component Composition

20 Nov 2022 β€’ πŸ“– 10 min read✏️ Updated 15 Mar 2026
πŸ”° Beginner friendly

Understanding component composition in React with a simple food orders app.

0
0
0
JAVASCRIPT REACT

Games

  • πŸš€ Shooter
  • πŸ† Highscores

Particles

Shoot incoming particles before they collide with you.

JAVASCRIPT GAMES
  • ⚑ Reaction game
  • πŸ† Highscores

Emoji React

A reaction speed game. How many positive emojis can you react to?

JAVASCRIPT GAMES
  • πŸ‘οΈ Colour blind
  • πŸ† Highscores

Colour Match

Match the target colour as fast as you can. Build streaks for bonus points!

JAVASCRIPT GAMES
Out Now on iOS & Android

Your skateboarding companion

8,000+ tricks to roll, firing lines with billions of combos, a roguelike climb mode, 30,000 spots on the map and a new trick on your lock screen every morning. Built for skaters, by a skater.

Inside the app

Apps & Sites

Push&Progress

Skateboarding lessons with accredited instructors across Northern Ireland.

SKATEBOARDING

SkateDice

Roll for your next trick. A skate dice web app.

SKATEBOARDING

Ringwork

COMING SOON

Your corner between rounds. Timers, combo generators, and session tracking for boxing training.

EXPO REACT NATIVE COMING SOON