diff --git a/.cache/eleventy-fetch-1cce4ddcbc732998e95932ffce6c63 b/.cache/eleventy-fetch-1cce4ddcbc732998e95932ffce6c63
index 5db79b11..87ecd517 100644
--- a/.cache/eleventy-fetch-1cce4ddcbc732998e95932ffce6c63
+++ b/.cache/eleventy-fetch-1cce4ddcbc732998e95932ffce6c63
@@ -1 +1 @@
-[{"1cce4ddcbc732998e95932ffce6c63":"1"},{"cachedAt":1678644641025,"type":"2"},"json"]
\ No newline at end of file
+[{"1cce4ddcbc732998e95932ffce6c63":"1"},{"cachedAt":1678651827000,"type":"2"},"json"]
\ No newline at end of file
diff --git a/.cache/eleventy-fetch-b0c37bbacbc82427c7b36772567895 b/.cache/eleventy-fetch-b0c37bbacbc82427c7b36772567895
new file mode 100644
index 00000000..6f84d31f
--- /dev/null
+++ b/.cache/eleventy-fetch-b0c37bbacbc82427c7b36772567895
@@ -0,0 +1 @@
+[{"b0c37bbacbc82427c7b36772567895":"1"},{"cachedAt":1678646985027,"type":"2"},"json"]
\ No newline at end of file
diff --git a/.cache/eleventy-fetch-b0c37bbacbc82427c7b36772567895.json b/.cache/eleventy-fetch-b0c37bbacbc82427c7b36772567895.json
new file mode 100644
index 00000000..25e75471
--- /dev/null
+++ b/.cache/eleventy-fetch-b0c37bbacbc82427c7b36772567895.json
@@ -0,0 +1 @@
+{"artists":[{"streamable":"0","image":[{"size":"small","#text":"https://lastfm.freetls.fastly.net/i/u/34s/2a96cbd8b46e442fc41c2b86b821562f.png"},{"size":"medium","#text":"https://lastfm.freetls.fastly.net/i/u/64s/2a96cbd8b46e442fc41c2b86b821562f.png"},{"size":"large","#text":"https://lastfm.freetls.fastly.net/i/u/174s/2a96cbd8b46e442fc41c2b86b821562f.png"},{"size":"extralarge","#text":"https://lastfm.freetls.fastly.net/i/u/300x300/2a96cbd8b46e442fc41c2b86b821562f.png"},{"size":"mega","#text":"https://lastfm.freetls.fastly.net/i/u/300x300/2a96cbd8b46e442fc41c2b86b821562f.png"}],"mbid":"","url":"https://www.last.fm/music/Soul+Blind","playcount":"72","@attr":{"rank":"1"},"name":"Soul Blind"},{"streamable":"0","image":[{"size":"small","#text":"https://lastfm.freetls.fastly.net/i/u/34s/2a96cbd8b46e442fc41c2b86b821562f.png"},{"size":"medium","#text":"https://lastfm.freetls.fastly.net/i/u/64s/2a96cbd8b46e442fc41c2b86b821562f.png"},{"size":"large","#text":"https://lastfm.freetls.fastly.net/i/u/174s/2a96cbd8b46e442fc41c2b86b821562f.png"},{"size":"extralarge","#text":"https://lastfm.freetls.fastly.net/i/u/300x300/2a96cbd8b46e442fc41c2b86b821562f.png"},{"size":"mega","#text":"https://lastfm.freetls.fastly.net/i/u/300x300/2a96cbd8b46e442fc41c2b86b821562f.png"}],"mbid":"71fdb598-1967-435b-ab25-f4daad5e576b","url":"https://www.last.fm/music/Birds+in+Row","playcount":"49","@attr":{"rank":"2"},"name":"Birds in Row"},{"streamable":"0","image":[{"size":"small","#text":"https://lastfm.freetls.fastly.net/i/u/34s/2a96cbd8b46e442fc41c2b86b821562f.png"},{"size":"medium","#text":"https://lastfm.freetls.fastly.net/i/u/64s/2a96cbd8b46e442fc41c2b86b821562f.png"},{"size":"large","#text":"https://lastfm.freetls.fastly.net/i/u/174s/2a96cbd8b46e442fc41c2b86b821562f.png"},{"size":"extralarge","#text":"https://lastfm.freetls.fastly.net/i/u/300x300/2a96cbd8b46e442fc41c2b86b821562f.png"},{"size":"mega","#text":"https://lastfm.freetls.fastly.net/i/u/300x300/2a96cbd8b46e442fc41c2b86b821562f.png"}],"mbid":"bfe00ef8-f6f2-4810-999e-65e46b5970ab","url":"https://www.last.fm/music/Ulcerate","playcount":"44","@attr":{"rank":"3"},"name":"Ulcerate"},{"streamable":"0","image":[{"size":"small","#text":"https://lastfm.freetls.fastly.net/i/u/34s/2a96cbd8b46e442fc41c2b86b821562f.png"},{"size":"medium","#text":"https://lastfm.freetls.fastly.net/i/u/64s/2a96cbd8b46e442fc41c2b86b821562f.png"},{"size":"large","#text":"https://lastfm.freetls.fastly.net/i/u/174s/2a96cbd8b46e442fc41c2b86b821562f.png"},{"size":"extralarge","#text":"https://lastfm.freetls.fastly.net/i/u/300x300/2a96cbd8b46e442fc41c2b86b821562f.png"},{"size":"mega","#text":"https://lastfm.freetls.fastly.net/i/u/300x300/2a96cbd8b46e442fc41c2b86b821562f.png"}],"mbid":"5653191d-1203-45ab-834d-6b2b623ccd33","url":"https://www.last.fm/music/Outre","playcount":"37","@attr":{"rank":"4"},"name":"Outre"},{"streamable":"0","image":[{"size":"small","#text":"https://lastfm.freetls.fastly.net/i/u/34s/2a96cbd8b46e442fc41c2b86b821562f.png"},{"size":"medium","#text":"https://lastfm.freetls.fastly.net/i/u/64s/2a96cbd8b46e442fc41c2b86b821562f.png"},{"size":"large","#text":"https://lastfm.freetls.fastly.net/i/u/174s/2a96cbd8b46e442fc41c2b86b821562f.png"},{"size":"extralarge","#text":"https://lastfm.freetls.fastly.net/i/u/300x300/2a96cbd8b46e442fc41c2b86b821562f.png"},{"size":"mega","#text":"https://lastfm.freetls.fastly.net/i/u/300x300/2a96cbd8b46e442fc41c2b86b821562f.png"}],"mbid":"5c9dd772-a38f-4873-baa8-4b5d9dff3990","url":"https://www.last.fm/music/Spanish+Love+Songs","playcount":"30","@attr":{"rank":"5"},"name":"Spanish Love Songs"},{"streamable":"0","image":[{"size":"small","#text":"https://lastfm.freetls.fastly.net/i/u/34s/2a96cbd8b46e442fc41c2b86b821562f.png"},{"size":"medium","#text":"https://lastfm.freetls.fastly.net/i/u/64s/2a96cbd8b46e442fc41c2b86b821562f.png"},{"size":"large","#text":"https://lastfm.freetls.fastly.net/i/u/174s/2a96cbd8b46e442fc41c2b86b821562f.png"},{"size":"extralarge","#text":"https://lastfm.freetls.fastly.net/i/u/300x300/2a96cbd8b46e442fc41c2b86b821562f.png"},{"size":"mega","#text":"https://lastfm.freetls.fastly.net/i/u/300x300/2a96cbd8b46e442fc41c2b86b821562f.png"}],"mbid":"","url":"https://www.last.fm/music/Celeste","playcount":"28","@attr":{"rank":"6"},"name":"Celeste"},{"streamable":"0","image":[{"size":"small","#text":"https://lastfm.freetls.fastly.net/i/u/34s/2a96cbd8b46e442fc41c2b86b821562f.png"},{"size":"medium","#text":"https://lastfm.freetls.fastly.net/i/u/64s/2a96cbd8b46e442fc41c2b86b821562f.png"},{"size":"large","#text":"https://lastfm.freetls.fastly.net/i/u/174s/2a96cbd8b46e442fc41c2b86b821562f.png"},{"size":"extralarge","#text":"https://lastfm.freetls.fastly.net/i/u/300x300/2a96cbd8b46e442fc41c2b86b821562f.png"},{"size":"mega","#text":"https://lastfm.freetls.fastly.net/i/u/300x300/2a96cbd8b46e442fc41c2b86b821562f.png"}],"mbid":"37e9d7b2-7779-41b2-b2eb-3685351caad3","url":"https://www.last.fm/music/NoMeansNo","playcount":"26","@attr":{"rank":"7"},"name":"NoMeansNo"},{"streamable":"0","image":[{"size":"small","#text":"https://lastfm.freetls.fastly.net/i/u/34s/2a96cbd8b46e442fc41c2b86b821562f.png"},{"size":"medium","#text":"https://lastfm.freetls.fastly.net/i/u/64s/2a96cbd8b46e442fc41c2b86b821562f.png"},{"size":"large","#text":"https://lastfm.freetls.fastly.net/i/u/174s/2a96cbd8b46e442fc41c2b86b821562f.png"},{"size":"extralarge","#text":"https://lastfm.freetls.fastly.net/i/u/300x300/2a96cbd8b46e442fc41c2b86b821562f.png"},{"size":"mega","#text":"https://lastfm.freetls.fastly.net/i/u/300x300/2a96cbd8b46e442fc41c2b86b821562f.png"}],"mbid":"e7b4c928-8c45-4ecf-9f08-da64fe5c2ddd","url":"https://www.last.fm/music/Mg%C5%82a","playcount":"21","@attr":{"rank":"8"},"name":"Mgła"}],"albums":[{"artist":{"url":"https://www.last.fm/music/Soul+Blind","name":"Soul Blind","mbid":""},"image":[{"size":"small","#text":"https://lastfm.freetls.fastly.net/i/u/34s/f17fd81c2f0174bc06d455313bf939e0.jpg"},{"size":"medium","#text":"https://lastfm.freetls.fastly.net/i/u/64s/f17fd81c2f0174bc06d455313bf939e0.jpg"},{"size":"large","#text":"https://lastfm.freetls.fastly.net/i/u/174s/f17fd81c2f0174bc06d455313bf939e0.jpg"},{"size":"extralarge","#text":"https://lastfm.freetls.fastly.net/i/u/300x300/f17fd81c2f0174bc06d455313bf939e0.jpg"}],"mbid":"797aed96-61a9-400a-8900-c1e6f3f7dd33","url":"https://www.last.fm/music/Soul+Blind/Feel+It+All+Around","playcount":"69","@attr":{"rank":"1"},"name":"Feel It All Around"},{"artist":{"url":"https://www.last.fm/music/Outre","name":"Outre","mbid":"5653191d-1203-45ab-834d-6b2b623ccd33"},"image":[{"size":"small","#text":"https://lastfm.freetls.fastly.net/i/u/34s/34bdaa4436ac50533903af1944997673.jpg"},{"size":"medium","#text":"https://lastfm.freetls.fastly.net/i/u/64s/34bdaa4436ac50533903af1944997673.jpg"},{"size":"large","#text":"https://lastfm.freetls.fastly.net/i/u/174s/34bdaa4436ac50533903af1944997673.jpg"},{"size":"extralarge","#text":"https://lastfm.freetls.fastly.net/i/u/300x300/34bdaa4436ac50533903af1944997673.jpg"}],"mbid":"8a22b876-32b1-4273-8f9e-a49adb1ac9ff","url":"https://www.last.fm/music/Outre/Hollow+Earth","playcount":"27","@attr":{"rank":"2"},"name":"Hollow Earth"},{"artist":{"url":"https://www.last.fm/music/Spanish+Love+Songs","name":"Spanish Love Songs","mbid":"5c9dd772-a38f-4873-baa8-4b5d9dff3990"},"image":[{"size":"small","#text":"https://lastfm.freetls.fastly.net/i/u/34s/7804d38ed40af5ab766f88d4a7bc4bdf.png"},{"size":"medium","#text":"https://lastfm.freetls.fastly.net/i/u/64s/7804d38ed40af5ab766f88d4a7bc4bdf.png"},{"size":"large","#text":"https://lastfm.freetls.fastly.net/i/u/174s/7804d38ed40af5ab766f88d4a7bc4bdf.png"},{"size":"extralarge","#text":"https://lastfm.freetls.fastly.net/i/u/300x300/7804d38ed40af5ab766f88d4a7bc4bdf.png"}],"mbid":"4da96dbd-1d81-4372-bf35-78c916077ca0","url":"https://www.last.fm/music/Spanish+Love+Songs/Brave+Faces+Everyone","playcount":"19","@attr":{"rank":"3"},"name":"Brave Faces Everyone"},{"artist":{"url":"https://www.last.fm/music/ASTRIFEROUS","name":"ASTRIFEROUS","mbid":""},"image":[{"size":"small","#text":"https://lastfm.freetls.fastly.net/i/u/34s/b38536ca22824dd362ca876ab72d0e24.jpg"},{"size":"medium","#text":"https://lastfm.freetls.fastly.net/i/u/64s/b38536ca22824dd362ca876ab72d0e24.jpg"},{"size":"large","#text":"https://lastfm.freetls.fastly.net/i/u/174s/b38536ca22824dd362ca876ab72d0e24.jpg"},{"size":"extralarge","#text":"https://lastfm.freetls.fastly.net/i/u/300x300/b38536ca22824dd362ca876ab72d0e24.jpg"}],"mbid":"","url":"https://www.last.fm/music/ASTRIFEROUS/Pulsations+from+the+Black+Orb","playcount":"16","@attr":{"rank":"4"},"name":"Pulsations from the Black Orb"},{"artist":{"url":"https://www.last.fm/music/Birds+in+Row","name":"Birds in Row","mbid":"71fdb598-1967-435b-ab25-f4daad5e576b"},"image":[{"size":"small","#text":"https://lastfm.freetls.fastly.net/i/u/34s/e2604cc730f994c4d5959877465f3691.jpg"},{"size":"medium","#text":"https://lastfm.freetls.fastly.net/i/u/64s/e2604cc730f994c4d5959877465f3691.jpg"},{"size":"large","#text":"https://lastfm.freetls.fastly.net/i/u/174s/e2604cc730f994c4d5959877465f3691.jpg"},{"size":"extralarge","#text":"https://lastfm.freetls.fastly.net/i/u/300x300/e2604cc730f994c4d5959877465f3691.jpg"}],"mbid":"","url":"https://www.last.fm/music/Birds+in+Row/You,+Me,+&+the+Violence","playcount":"12","@attr":{"rank":"5"},"name":"You, Me, & the Violence"},{"artist":{"url":"https://www.last.fm/music/Celeste","name":"Celeste","mbid":""},"image":[{"size":"small","#text":"https://lastfm.freetls.fastly.net/i/u/34s/86ca77e617d849558db6d500fe051aa3.jpg"},{"size":"medium","#text":"https://lastfm.freetls.fastly.net/i/u/64s/86ca77e617d849558db6d500fe051aa3.jpg"},{"size":"large","#text":"https://lastfm.freetls.fastly.net/i/u/174s/86ca77e617d849558db6d500fe051aa3.jpg"},{"size":"extralarge","#text":"https://lastfm.freetls.fastly.net/i/u/300x300/86ca77e617d849558db6d500fe051aa3.jpg"}],"mbid":"44dab566-10bb-4582-ae4e-c1611620f1d6","url":"https://www.last.fm/music/Celeste/Animale(s)","playcount":"12","@attr":{"rank":"6"},"name":"Animale(s)"},{"artist":{"url":"https://www.last.fm/music/NoMeansNo","name":"NoMeansNo","mbid":"37e9d7b2-7779-41b2-b2eb-3685351caad3"},"image":[{"size":"small","#text":"https://lastfm.freetls.fastly.net/i/u/34s/0104bd1d47e8ab41d0074e4557c30d85.jpg"},{"size":"medium","#text":"https://lastfm.freetls.fastly.net/i/u/64s/0104bd1d47e8ab41d0074e4557c30d85.jpg"},{"size":"large","#text":"https://lastfm.freetls.fastly.net/i/u/174s/0104bd1d47e8ab41d0074e4557c30d85.jpg"},{"size":"extralarge","#text":"https://lastfm.freetls.fastly.net/i/u/300x300/0104bd1d47e8ab41d0074e4557c30d85.jpg"}],"mbid":"2039f047-6098-4ea9-be5d-ecd7c28d6c1d","url":"https://www.last.fm/music/NoMeansNo/Dance+of+the+Headless+Bourgeoisie","playcount":"12","@attr":{"rank":"7"},"name":"Dance of the Headless Bourgeoisie"},{"artist":{"url":"https://www.last.fm/music/Webbed+Wing","name":"Webbed Wing","mbid":"524a03b1-ceb7-4678-8aba-af87914f0c9e"},"image":[{"size":"small","#text":"https://lastfm.freetls.fastly.net/i/u/34s/086fd500af63fd1b74cdcffc555844e6.jpg"},{"size":"medium","#text":"https://lastfm.freetls.fastly.net/i/u/64s/086fd500af63fd1b74cdcffc555844e6.jpg"},{"size":"large","#text":"https://lastfm.freetls.fastly.net/i/u/174s/086fd500af63fd1b74cdcffc555844e6.jpg"},{"size":"extralarge","#text":"https://lastfm.freetls.fastly.net/i/u/300x300/086fd500af63fd1b74cdcffc555844e6.jpg"}],"mbid":"421d2103-f6ab-4c0b-9909-cc125db46c4c","url":"https://www.last.fm/music/Webbed+Wing/What%27s+So+Fucking+Funny%3F","playcount":"12","@attr":{"rank":"8"},"name":"What's So Fucking Funny?"}],"books":[{"id":"https://oku.club/book/the-climate-book-by-greta-thunberg-syv68","title":"The Climate Book","link":"https://oku.club/book/the-climate-book-by-greta-thunberg-syv68","published":"2023-02-27T10:00:58.000Z","description":"We still have time to change the world. From Greta Thunberg, the world's leading climate activist, comes the essential handbook for making it happen. You might think it's an impossible task: secure a safe..."},{"id":"https://oku.club/book/aurora-rising-by-alastair-reynolds-oEjJb","title":"Aurora Rising","link":"https://oku.club/book/aurora-rising-by-alastair-reynolds-oEjJb","published":"2022-09-07T03:02:03.000Z","description":"Tom Dreyfus is a Prefect, a policeman of sorts, and one of the best. His force is Panoply, and his beat is the multi-faceted utopian society of the Glitter Band, that vast swirl of space habitats orbiting the..."}],"movies":[{"id":"letterboxd-watch-364224241","title":"Shazam!, 2019 - ★★★","link":"https://letterboxd.com/cdme/film/shazam/","published":"2023-03-12T18:09:54.000Z","description":"Watched on Sunday March 12, 2023."},{"id":"letterboxd-watch-364012220","title":"Zero Dark Thirty, 2012 - ★★★★","link":"https://letterboxd.com/cdme/film/zero-dark-thirty/","published":"2023-03-12T05:48:18.000Z","description":"Watched on Saturday March 11, 2023."},{"id":"letterboxd-watch-364012097","title":"The Invisible Man, 2020 - ★★★½","link":"https://letterboxd.com/cdme/film/the-invisible-man-2020/","published":"2023-03-12T05:48:00.000Z","description":"Watched on Saturday March 11, 2023."},{"id":"letterboxd-watch-362150666","title":"Solo: A Star Wars Story, 2018 - ★★★","link":"https://letterboxd.com/cdme/film/solo-a-star-wars-story/","published":"2023-03-07T18:16:03.000Z","description":"Watched on Tuesday March 7, 2023."},{"id":"letterboxd-watch-362069756","title":"Traffic, 2000 - ★★★","link":"https://letterboxd.com/cdme/film/traffic/","published":"2023-03-07T12:58:14.000Z","description":"Watched on Tuesday March 7, 2023."}],"tv":[{"id":"tag:trakt.tv,2005:Episode/6734582/8880630753","title":"You 4x09 \"She’s Not There\"","link":"https://trakt.tv/episodes/6734582","published":"2023-03-11T23:05:11.000Z","description":"Torn between his dark side and good intentions, Joe works to right his wrongs. After attempting to help Phoebe, Kate faces her father — and hard truths."},{"id":"tag:trakt.tv,2005:Episode/6734583/8880630777","title":"You 4x10 \"The Death of Jonathan Moore\"","link":"https://trakt.tv/episodes/6734583","published":"2023-03-11T23:05:01.000Z","description":"With love and loss weighing heavily on his mind, Joe commits a final act in hopes of never walking down the same path again."},{"id":"tag:trakt.tv,2005:Episode/6734581/8880630733","title":"You 4x08 \"Where Are You Going, Where Have You Been?\"","link":"https://trakt.tv/episodes/6734581","published":"2023-03-11T23:05:00.000Z","description":"As memories of the past trickle in, Joe struggles to recall an important detail. Phoebe shares her hasty plans with Kate. Nadia scrambles for a solution."},{"id":"tag:trakt.tv,2005:Episode/6734580/8880271117","title":"You 4x07 \"Good Man, Cruel World\"","link":"https://trakt.tv/episodes/6734580","published":"2023-03-11T19:40:21.000Z","description":"The tables turn for Joe when an influential figure comes to town with a tempting offer as Nadia follows a hunch."},{"id":"tag:trakt.tv,2005:Episode/6909986/8878134145","title":"Shrinking 1x08 \"Boop\"","link":"https://trakt.tv/episodes/6909986","published":"2023-03-10T15:00:44.000Z","description":"Paul and Brian come to Jimmy’s aid when Alice starts acting out. Liz and Sean support Gaby by accompanying her to an event."}]}
\ No newline at end of file
diff --git a/.eleventy.js b/.eleventy.js
index c9a94ab7..f9061f57 100644
--- a/.eleventy.js
+++ b/.eleventy.js
@@ -5,6 +5,7 @@ const markdownItAnchor = require('markdown-it-anchor')
 const markdownItFootnote = require('markdown-it-footnote')
 const filters = require('./config/filters.js')
 const dateFilters = require('./config/dateFilters.js')
+const mediaFilters = require('./config/mediaFilters.js')
 
 module.exports = function (eleventyConfig) {
     // plugins
@@ -21,6 +22,11 @@ module.exports = function (eleventyConfig) {
         eleventyConfig.addFilter(filterName, dateFilters[filterName])
     })
 
+    // media filters
+    Object.keys(mediaFilters).forEach((filterName) => {
+        eleventyConfig.addFilter(filterName, mediaFilters[filterName])
+    })
+
     // enable merging of tags
     eleventyConfig.setDataDeepMerge(true)
 
diff --git a/config/mediaFilters.js b/config/mediaFilters.js
new file mode 100644
index 00000000..e6cd107e
--- /dev/null
+++ b/config/mediaFilters.js
@@ -0,0 +1,12 @@
+const ALBUM_DENYLIST = ['no-love-deep-web']
+
+module.exports = {
+    artist: (media) =>
+        `https://cdn.coryd.dev/artists/${media.replace(/\s+/g, '-').toLowerCase()}.jpg`,
+    album: (media) => {
+        const img = !ALBUM_DENYLIST.includes(media.name.replace(/\s+/g, '-').toLowerCase())
+            ? media.image[media.image.length - 1]['#text']
+            : `https://cdn.coryd.dev/artists/${media.name.replace(/\s+/g, '-').toLowerCase()}.jpg`
+        return img
+    },
+}
diff --git a/src/_data/now.js b/src/_data/now.js
new file mode 100644
index 00000000..f1a427c9
--- /dev/null
+++ b/src/_data/now.js
@@ -0,0 +1,17 @@
+const EleventyFetch = require('@11ty/eleventy-fetch')
+
+module.exports = async function () {
+    const url = 'https://coryd.dev/api/now?endpoints=artists,albums,books,movies,tv'
+    const res = EleventyFetch(url, {
+        duration: '3h',
+        type: 'json',
+    })
+    const now = await res
+    return {
+        artists: now.artists,
+        albums: now.albums,
+        books: now.books,
+        movies: now.movies,
+        tv: now.tv,
+    }
+}
diff --git a/src/_data/site.json b/src/_data/site.json
index 4b967481..393ac38a 100644
--- a/src/_data/site.json
+++ b/src/_data/site.json
@@ -1,6 +1,7 @@
 {
     "name": "Cory Dransfeldt",
     "url": "https://coryd.dev",
+    "urlCdn": "https://cdn.coryd.dev",
     "title": "Cory Dransfeldt",
     "description": "I'm a software developer in Camarillo, California. I enjoy hanging out with my beautiful family and 4 rescue dogs, technology, automation, music, writing, reading and tv and movies.",
     "gmail": "mailto:hi@coryd.dev",
diff --git a/src/_includes/now-topper.liquid b/src/_includes/now-topper.liquid
index 2c0be2e3..0f8dbfeb 100644
--- a/src/_includes/now-topper.liquid
+++ b/src/_includes/now-topper.liquid
@@ -1,5 +1,5 @@
 <div class="border-b border-gray-200 pb-8 dark:border-gray-700 mb-8 pb-8 dark:text-white text-gray-800">
-    <a class="no-underline" href="/"><h2 class="m-0 text-xl font-black leading-tight tracking-normal md:text-2xl text-primary-400 hover:text-primary-500 dark:hover:text-primary-300 mb-4">Now</h2></a>
+    <a class="no-underline" href="/now"><h2 class="m-0 text-xl font-black leading-tight tracking-normal md:text-2xl text-primary-400 hover:text-primary-500 dark:hover:text-primary-300 mb-4">Now</h2></a>
     <p>I'm a software developer in Camarillo, California. I enjoy hanging out with my beautiful family and 4 rescue dogs, technology, automation, music, writing, reading and tv and movies.</p>
     <p>{{ status.emoji }} {{ status.content }}</p>
     <p class="mb-0"><a class="no-underline dark:text-white text-gray-800 font-normal" href={{nowplaying.url}}><span class="icon-inline">{% heroicon "solid" "music-note" "Now playing" "width=20 height=20" %}</span> {{nowplaying.title}} by {{nowplaying.artist}}</a></p>
diff --git a/src/_includes/now.liquid b/src/_includes/now.liquid
new file mode 100644
index 00000000..3b430e50
--- /dev/null
+++ b/src/_includes/now.liquid
@@ -0,0 +1,149 @@
+---
+layout: main
+---
+
+{% include "header.liquid" %}
+
+<div class="pt-12 prose dark:prose-invert hover:prose-a:text-blue-500 max-w-full">
+    <h2
+        class="m-0 text-xl font-black leading-tight tracking-normal dark:text-gray-200 md:text-2xl mb-4"
+    >
+        Currently
+    </h2>
+    <div class="pl-4 md:pl-8">
+        <p class="my-2">{{ status.emoji }} {{ status.content }}</p>
+        <p class="my-2"><span class="icon-inline">{% heroicon "solid" "map" "Map" "width=20 height=20" %}</span> Living in Camarillo, California with my beautiful family, 4 rescue dogs and a guinea pig.</p>
+        <p class="my-2"><span class="icon-inline">{% heroicon "solid" "code" "Code" "width=20 height=20" %}</span> Working at <a href="https://hashicorp.com">HashiCorp</a></p>
+        <p class="my-2">
+            <span class="icon-inline">
+                <svg class="fill-white w-5" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>NBA</title><path d="M9.19 0a2.486 2.486 0 0 0-2.485 2.484v19.029A2.488 2.488 0 0 0 9.19 24h5.615a2.493 2.493 0 0 0 2.49-2.487V2.484A2.488 2.488 0 0 0 14.81 0zm0 .584h3.21c-.62.237-.707.508-.73 1.366-.105.01-.325-.087-.25.434 0 0 .043.346.18.286-.133.918.023.99-.93 1.031l-.047.067c-.95.093-1.25-.027-2.05 1.603 0 0-.207.505-.268.714-.197.415-.674 1.328-.819 1.919-.046.2-.14.264-.01.553.185.417-.124.527.95.496V9.3s-.286.247-.346.398c-.061.147-.226.89-.22 1.237.019.917.767 1.683.992 2.597l.492.07c.282.634 1.495 2.355 1.743 2.582.057.159.365.355.545.551.149.141 1.025 1.1 2.054 1.692-.007-.001.164.344.249.618-.342.275.32.777.52 1.609.012.107-.19.222.114.495-.022 1.256-.402 1.918.241 2.266H9.191a1.9 1.9 0 0 1-1.9-1.901V2.486a1.9 1.9 0 0 1 1.9-1.902zm3.804.002h1.815a1.9 1.9 0 0 1 1.897 1.898v9.193a1.653 1.653 0 0 0-.22-.397c0-.255-.272-.249-.346-.344-.07-.081.067-.128-.407-.235-.09-.05-.158-.747-.158-.747-.07-.447-.229-.754-.467-1.227-.12-.243-.177-1.001-.305-1.386.071-1.767-.493-2.28-.95-2.569-.174-.11-.262-.191-.433-.29l-.005-.082c-.133-.126-.402-.264-.623-.362-.068-.07-.037-.22.01-.276.15-.02.348-.356.513-.703.129.009.174-.118.214-.19.138-.222.288-.413.096-.542.435-.777.154-1.301-.08-1.321-.095-.195-.26-.316-.551-.42zm.551 6.338c.06.319.34 1.929.456 2.187.123.259.535 1.05.73 1.54a1.69 1.69 0 0 0-1.294 1.646 1.692 1.692 0 0 0 1.693 1.691 1.692 1.692 0 0 0 1.576-1.066v8.59a1.887 1.887 0 0 1-1.598 1.877h-.017c.833-.502.319-1.46.16-2.022-.012-.033.014-.074.026-.1.045-.08-.045-.257-.045-.257-.098-.09-.127-.561-.182-.772-.089-.358.157-.971.157-1.18 0-.206-.156-.491-.445-.858-.069-.078-.276-1.86-.462-2.313-.258-.623-.339-.526-.64-1.266-.24-.525-.055-1.295-.59-3.085.005.006.12-.113.12-.113s-.422-1.55-.561-1.975c-.14-.426-.385-.456-.385-.456s.002-.172.012-.216c.02-.07.516-1.367.558-1.407.001-.03.717-.514.731-.445Z"/></svg>
+            </span>
+            Rooting for the <a href="https://lakers.com">Lakers</a>, for better or worse.</p>
+            {{ content }}
+    </div>
+    <h2
+        class="m-0 text-xl font-black leading-tight tracking-normal dark:text-gray-200 md:text-2xl mt-8 mb-4"
+    >
+        Making
+    </h2>
+    <div class="pl-4 md:pl-8">
+        <p class="my-2"><span class="icon-inline">{% heroicon "solid" "terminal" "Terminal" "width=20 height=20" %}</span> Hacking away on random projects like this page, my <a href="/">blog</a>, and whatever else I can find time for.</p>
+    </div>
+    {% if now.artists %}
+    <h2
+        class="m-0 text-xl font-black leading-tight tracking-normal dark:text-gray-200 md:text-2xl mt-8 mb-4"
+    >
+        Listening: artists
+    </h2>
+    <div>
+        <div class="grid grid-cols-2 gap-2 md:grid-cols-4 not-prose">
+            {% for artist in now.artists %}
+                <a href={{artist.url}} title={{artist.name}}>
+                    <div class="relative block">
+                        <div class="absolute left-0 top-0 h-full w-full rounded-lg border border-primary-500 bg-cover-gradient dark:border-gray-500"></div>
+                        <div class="absolute left-1 bottom-2 drop-shadow-md">
+                            <div class="px-1 text-xs font-bold text-white">{{artist.name}}</div>
+                            <div class="px-1 text-xs text-white">
+                                {{artist.playcount}} plays
+                            </div>
+                        </div>
+                        <img
+                            src={{artist.name | artist}}
+                            onerror="this.onerror=null; this.src='/assets/img/media/404.jpg'"
+                            width="350"
+                            height="350"
+                            class="rounded-lg" alt={{artist.name}}
+                        />
+                    </div>
+                </a>
+            {% endfor %}
+        </div>
+    </div>
+    {% endif %}
+    {% if now.albums %}
+    <h2
+        class="m-0 text-xl font-black leading-tight tracking-normal dark:text-gray-200 md:text-2xl mt-8 mb-4"
+    >
+        Listening: albums
+    </h2>
+    <div>
+        <div class="grid grid-cols-2 gap-2 md:grid-cols-4 not-prose">
+            {% for album in now.albums %}
+                <a href={{album.url}} title={{album.name}}>
+                    <div class="relative block">
+                        <div class="absolute left-0 top-0 h-full w-full rounded-lg border border-primary-500 bg-cover-gradient dark:border-gray-500"></div>
+                        <div class="absolute left-1 bottom-2 drop-shadow-md">
+                            <div class="px-1 text-xs font-bold text-white">{{album.name}}</div>
+                            <div class="px-1 text-xs text-white">
+                                {{album.artist.name}}
+                            </div>
+                        </div>
+                        <img
+                            src={{album | album}}
+                            onerror="this.onerror=null; this.src='/assets/img/media/404.jpg'"
+                            width="350"
+                            height="350"
+                            class="rounded-lg"
+                            alt={{album.name}}
+                        />
+                    </div>
+                </a>
+            {% endfor %}
+        </div>
+    </div>
+    {% endif %}
+    {% if now.books %}
+    <h2
+        class="m-0 text-xl font-black leading-tight tracking-normal dark:text-gray-200 md:text-2xl mt-6 mb-4"
+    >
+        Reading
+    </h2>
+    <div>
+        <ul class="list-inside list-disc pl-5 md:pl-10">
+        {% for book in now.books %}
+            <li class="mt-1.5 mb-2">
+                <a href={{book.link}} title={{book.title}}>
+                    {{book.title}}
+                </a>
+            </li>
+        {% endfor %}
+        </ul>
+    </div>
+    {% endif %}
+    {% if now.movies %}
+    <h2
+        class="m-0 text-xl font-black leading-tight tracking-normal dark:text-gray-200 md:text-2xl mt-6 mb-4"
+    >
+        Watching: movies
+    </h2>
+    <div>
+        <ul class="list-inside list-disc pl-5 md:pl-10">
+        {% for movie in now.movies %}
+            <li class="mt-1.5 mb-2">
+                <a href={{movie.link}} title={{movie.title}}>
+                    {{movie.title}}
+                </a>
+            </li>
+        {% endfor %}
+        </ul>
+    </div>
+    {% endif %}
+    {% if now.tv %}
+    <h2
+        class="m-0 text-xl font-black leading-tight tracking-normal dark:text-gray-200 md:text-2xl mt-6 mb-4"
+    >
+        Watching: tv
+    </h2>
+    <div>
+        <ul class="list-inside list-disc pl-5 md:pl-10">
+        {% for show in now.tv %}
+            <li class="mt-1.5 mb-2">
+                <a href={{show.link}} title={{show.title}}>
+                    {{show.title}}
+                </a>
+            </li>
+        {% endfor %}
+        </ul>
+    </div>
+    {% endif %}
+</div>
diff --git a/src/assets/img/media/404.jpg b/src/assets/img/media/404.jpg
new file mode 100644
index 00000000..36b0bc24
Binary files /dev/null and b/src/assets/img/media/404.jpg differ
diff --git a/src/now.md b/src/now.md
new file mode 100644
index 00000000..59610083
--- /dev/null
+++ b/src/now.md
@@ -0,0 +1,4 @@
+---
+layout: now
+title: Now
+---