Nathan Smith
  • Projects
  • About
  • Contact
Pokemon Randomizer

September 5, 2020, 1:54 AM



After being disappointed with Pokemon Shield's exp share, I came up with a new pokemon challenge run to spice up my playthrough, and made a webapp that functions as a specialized pokedex for it. Check it out!

Dragon of Icespire Peak - Campaign Diary 2

August 4, 2020, 3:21 PM


Now that plot had been set up, it would just fall to the players to go take some quests from the job board and get moving, which is exactly what they did, even if it didn't play out like I planned. Of course, nothing ever does.

Migrating to react-static and Netlify

August 1, 2020, 1:47 PM


For a long time, my default has been create-react-app and GitHub Pages together to host static sites, this one included. But for static sites, React is almost solely a developer convenience, not a benefit to the end user; if anything, it is a detriment to the end user. React is ...

Dragon of Icespire Peak - Campaign Diary 1

July 27, 2020, 3:41 PM


After two months of prep and waiting impatiently for the game to start, I finally ran the first session of a new campaign, Dragon of Icespire Peak, the campaign included in the D&D 5e Essentials Kit. I've made this campaign a sequel to a one shot adventure (is it really a one shot if it takes 5-6 sessions?) I wrote called "Millennium Festival". As such, I've modified and added to the base campaign to bring everything together.

usePrefersDarkTheme: a theming hook for React

July 24, 2020, 9:01 PM


Every site needs a dark theme, including this one. Having a dark theme is easy, but if an app or site's theme doesn't follow the system theme it can lead to blinding the user with a white background until they find the toggle. This hook (and some related code to ...

Using and D&D Beyond to Manage a Tabletop Campaign

July 13, 2020, 8:00 PM


Where did my notes go? Whether a player or game master, keeping up with the vast amount of info communicated in the course of a tabletop campaign can be daunting. As a player I'm a compulsive note taker; if I don't write it down, I forget it. And you better ...

Playing Spotify playlists in Discord voice channels

July 9, 2020, 3:02 AM



A guide on playing Spotify playlists in Discord voice channels. I figured all this out trying to set up some mood music for online D&D play. You'll need Discord, Spotify, and YouTube. What you won't need: $$$.

usePrismjs: A prismjs hook for CRA & React

May 20, 2020, 9:14 PM



What is it? Prismjs is a powerful little javascript to add syntax highlighting to <pre> and <code> blocks, but it hasn't kept up with a JavaScript framework-using, module-bundling world. There aren't many docs around how to use it with the npm package, and most want you to use a babel ...

Publishing a Dev and Production CRA App to GH Pages

May 20, 2020, 5:57 PM


It's pretty easy to set up a CRA app to deploy to multiple GitHub Pages repos. Here's how.

Why functional components are the future of React (but hooks are dangerous)

June 25, 2019, 1:21 AM



I was skeptical. Why would I ever write a functional component instead of a class component? Now, I've seen the light, but also the alluring danger of hooks.