2025-08-22 18:00
Recursionism.com 

My whole career and education to date I have worked in and around the design or art space, and I've frequently used some of my free time to look for inspirational or interesting projects. As I'm moving my career and work into more "traditional" development and management areas I think this is going to stay important to keep a connection to the design world.

Up until recently, a key tool in that search was Notcot. I think since college I would check Notcot for cool projects and ideas. I liked the simple approach of an image grid with a short description, which was clean and easy to scan. In 2024 Notcot was retired, running anything on the internet since 2005 is a pretty good run if you ask me. (As a brief aside, I overlapped at CMU's dFab Lab with Shawn for a few years.)

Notcot.org Circa 2016 

Pretty much right away I had a hole in my morning routine. So I did what I tend to do when something I use a lot goes away (my app ZeroScan came about when the Bonjour service scanner I was using was no longer compatible with 64 bit Macs), I made my own.

Recursionism.com 

Instead of implementing a whole backend from scratch, this whole project is based around Payload CMS which is a NextJS based content management system. It allows you to write pretty simple content definitions in typescript, and exposes it automatically for you in an API.

// A subsection of the Post collection import { slugValidator } from '@/utils/validators' import { CollectionConfig } from 'payload' export const Posts: CollectionConfig = { slug: 'posts', admin: { defaultColumns: ['name', 'status', 'format', 'user-generated', 'url'], // In-CMS Live Preveiw livePreview: { url: (data) => { return `${previewURL}/preview/${data.data.slug}` }, }, }, fields: [ { name: 'slug', type: 'text', required: true, index: true, validate: (val: any) => { // Custom field validation return slugValidator(val) } } ] }

After that it was a pretty simple process to build out the React components for the site. I'm doing a lot of heavy lifting with CSS Grids to get the front page layout to allow for posts of multiple sizes. I can flag a post as 1x1, 2x1, 1x1, and 2x2 then it is laid into the grid where it can fit.

I'm happy with that effect, which I think lets my pick the best format for a given image. I did not want to replicate the design of Notcot 1:1, but I did want to keep the simple and easy to scan homepage.

I was also able to make a custom approval page, so that I can setup a bunch of posts, and then just single tap the one I want to get published that day. I'll probably automate a job to pick one of those once a day to publish at some point, but that's a nice to have.

Custom approval page 

Overall I'm happy with how the site is working, and looks. I am going to keep updating it, and trying to get the word out. If you have any projects that inspire you be sure to send them my way!

<- Making a gameJordan C. Parsons