The Curious Engineer

All blogs / JavaScript / TypeScript

Jack Franklin

jackfranklin.co.uk

JavaScript / TypeScriptWeb developmentDev tools / editors / IDEsAI / MLTesting / QA

Posts
174 from 6 Apr 2012 to 28 Jun 2026
Posting
now and then (3 in the last year)
Kind
personal blog
Feed
https://www.jackfranklin.co.uk/feed.xml

2026 3

  1. AI loops: who pays for the tokens?
  2. ai-review: reviewing AI code before it lands
  3. Tracking feedback with Claude Code

2025 2

  1. Using AirPod Pros 3 with Android
  2. Augmented engineering: learnings of an AI skeptic

2024 7

  1. Goals for 2025
  2. TypeScript enums and falsy values
  3. performance.wow() 2024
  4. performance.wow() 2024
  5. OnTrack devlog 1
  6. Exhaustive branch checks with TypeScript
  7. Cracking Neovim code folding

2023 1

  1. Things I've learned about building computers

2022 3

  1. Running command line tasks in Neovim
  2. Learning to say "I don't know"
  3. Why I don't miss React: a story about using the platform

2021 4

  1. Why you should check-in your node dependencies
  2. Working in small chunks
  3. Comparing Svelte and React
  4. VSCode Productivity: Navigating files with Breadcrumbs

2020 19

  1. Remapping Keys on Windows 10 with Power Toys
  2. Software Development on Windows 10 with WSL2
  3. Writing good comments: the why, not the how
  4. Testing event listeners in JavaScript
  5. Better code reviews
  6. How code gets bad
  7. VSCode Productivity: The rewrap plugin
  8. Keeping Code Simple
  9. VSCode Productivity: The Magit plugin
  10. Learning from mistakes
  11. Refactoring JavaScript with tests
  12. Writing tests for bad JavaScript code
  13. Refactoring to remove passthrough variables
  14. Learning keyboard shortcuts with Post-it notes
  15. Using ftplugin to tidy my Vim configuration
  16. The three developers
  17. Letting tools make choices
  18. Moving domain names to jackfranklin dot co dot uk
  19. Frontend tech choices I'm making in 2020

2019 18

  1. Using Windows 10 and WSL for frontend web development
  2. Avoiding bugs with data structures: using Sets in JavaScript
  3. A free video series on building web apps with Elm
  4. Getting started with GraphQL: what client to use?
  5. Making impossible states impossible: data structures in React
  6. Saving manual work with babel-plugin-macros
  7. Structuring React applications
  8. Converting a JS library to TypeScript: Part 3
  9. Avoiding recursive useEffect hooks in React
  10. Converting a JS library to TypeScript: Part 2
  11. Things I was wrong about when I started programming
  12. Converting a JS library to TypeScript: Part 1
  13. Making unit tests fail when PropTypes error
  14. Hiding implementation details with React hooks
  15. The perfect unit test
  16. Refactoring a component to use React hooks
  17. Configuring ESLint on a TypeScript project
  18. Adventures with ReasonML

2018 11

  1. Black Friday sale on my React video courses
  2. Testing React with Kent C. Dodds
  3. React in Five: a new video course to level up your React
  4. Reading and updating query params with URLSearchParams
  5. Introducing VSCode GoToFile
  6. Enabling VSCode's "Go to Definition" for JSX imports
  7. Getting started with JSON Decoding in Elm
  8. Habits of Successful React components
  9. Preferring code over comments
  10. Testing React with Enzyme and Jest: a new video course
  11. Moving the JS Playground from GitHub Pages to Netlify

2017 17

  1. Using React Fragments for the first time
  2. An introduction to testing React components with Enzyme 3
  3. Adding URL support to an Elm app with elm-lang/navigation
  4. Moving away from Vim for front-end development
  5. An introduction to styled-components with Glen Maddern
  6. Migrating complex JavaScript applications
  7. Extracting Logic from React Components
  8. Refactoring React with Tests
  9. Getting started with TypeScript and React
  10. Building Langton's Ant in Elm
  11. Functional Stateless Components in React
  12. Dealing with APIs in React with ReactRemoteData
  13. Context in ReactJS Applications
  14. Setting up Vim for modern JavaScript Development
  15. Loading data from APIs in React
  16. How to contribute to open source with Webpack
  17. Authoring and publishing JavaScript modules with Flow

2016 10

  1. Migrating to Webpack 2
  2. Using the HTML Webpack Plugin for generating HTML files
  3. Setting up CSS Modules with React and Webpack
  4. Screencast: Creating a React and Webpack Project
  5. Better data fetching with RemoteDataJS
  6. Using ReactJS without Webpack
  7. ReactJS workshops in London
  8. Misconceptions of Tooling in JavaScript
  9. JavaScript Releases: ES2016 and Beyond
  10. Better bundles with Rollup

2015 7

  1. Elm for JavaScript Developers
  2. Authoring JavaScript modules with ES6
  3. The state of front end tooling
  4. Array methods in ECMAScript 6
  5. Predictions on JavaScript in the next 12 months
  6. Writing Command Line Tools with Node
  7. Embracing Promises in JavaScript

2014 13

  1. JavaScript Modules and Dependencies with jspm
  2. ES6 Destructuring
  3. Slides from "An introduction to ES6"
  4. Upcoming JavaScript Workshops
  5. An introduction to ES6 classes.
  6. The Refactoring Tales book
  7. Unit testing ExpressJS route functions
  8. Using ES6 Modules Today
  9. Real Life ES6 - Arrow Functions
  10. Embracing Command Line Tooling with Backbone Applications
  11. Pub Sub with Event Emitter
  12. An introduction to Gulp
  13. 2013 in Review

2013 19

  1. JavaScript Getters and Setters
  2. Using Browserify with npm modules
  3. Dependency Management with Browserify
  4. Mocking API Requests in Node tests
  5. A new look
  6. Announcing 'Confident jQuery'
  7. The Firefox OS Hello World
  8. More Refactoring
  9. Meet pulldown
  10. Refactoring DOM Heavy JS
  11. Moving to Jekyll
  12. jQuery CSS Hooks
  13. Custom jQuery Builds with Grunt
  14. The .net Awards
  15. Exploring Backbone.js - Part 3
  16. ECMAScript 5 Array Methods
  17. Talking RequireJS at TakeOff Conf
  18. Node.js workshops, March, London
  19. 2012 in Review

2012 40

  1. JS Command Line Tooling
  2. The new keyword in JavaScript
  3. JavaScript MV* Frameworks
  4. A New JS Playground Update
  5. Making your library AMD compliant
  6. Five JavaScript Testing Libraries
  7. Hosting a Node app on Heroku
  8. Cross Browser Testing with bunyip
  9. Essential JavaScript Script Loaders
  10. nodefetch, a command line download tool
  11. Writing a Command Line Node Tool
  12. Speaking at WDC 2012
  13. Introduction to RequireJS
  14. Come and watch me speak
  15. A Site Update
  16. Watch me Code Screencasts
  17. Package Management with Jam JS
  18. Node & Express Todo App: Redis
  19. Your First Polyfill
  20. Exploring Backbone.js - Part 2
  21. Conditional Loading with YepNope
  22. Introduction to JavaScript Objects
  23. Your own jQuery Deferreds
  24. A JS Playground Update
  25. A Pub Sub implementation in CoffeeScript
  26. A jQuery Plugin in CoffeeScript
  27. Node.js: A Todo App with Express
  28. A jQuery Plugin with Grunt & QUnit
  29. Beginning Node.js
  30. Exploring Backbone: Part 1
  31. QUnit, PhantomJS and Mockjax
  32. Grunt, a JS Command Line Tool
  33. Scope and this in JavaScript
  34. Testing with QUnit: Part 1
  35. A jQuery Pub Sub Implementation
  36. JS WTF: 5 < 4 < 3
  37. jQuery 1.7 Event Binding: .on() & .off()
  38. An introduction to jQuery Deferreds
  39. The JavaScript Module Pattern
  40. Using objects in jQuery's .css()