Chase AdamsChase Adams
AboutContentPromptsPrototypesNewsletter

curiouslychase.com

Essays and updates on product, engineering, and AI by Chase Adams.

2 minute read

Site Architecture

My site is built with NextJS (with strict TypeScript enabled). It's deployed and served with Vercel.

Libraries

I use a variety of JavaScript libraries and frameworks:

  • NextJS - full stack web application framework for React and JavaScript
  • Tailwinds CSS - styling and design system
  • MDX, Remark and Rehype for my Markdown rendered content
  • date-fns for formatting dates
  • ts-node for running scripts

You can see a list of the dependencies I use in my package.jsongithub.com

Fonts

  • Sans Serif (Title): Tillsdale (Link to BN Tillsdalebnicks.com)
  • Sans Serif (Body): Public Sans (using @fontsource)
  • Mono: Jet Brains Mono (using @fontsource)
  • Hand Writing: Palmer Lake

Content

All of the content files are notes written in Obsidian flavored Markdown.

Notes are copied from the Obsidian vault directory on my local machine into a private git repo that I use as a git submodule.

The script is in my GitHub repository for curiouslychase.comgithub.com and it is run using a script directive from my package.jsongithub.com:

{
    "cp-notes-and-images": "rm -rf src/content/* && ts-node --esm scripts/get-notes/run.ts"
 }

The content is stored in version control simply to reduce storing and fetching it from somewhere else.

  • All posts are copied into src/content/posts/<FILENAME> and served as /posts/<SLUGIFIED FILENAME>/

When the site builds, the Obsidian paths are flattened out.

As an example, the file for the content you're currently reading lives in the vault path 40 - Projects/curiouslychase.com. When the content is served, it will be served at posts/curiouslychase.com.

Serving content at the posts root (instead of the full path from Obsidian) makes the URL path durable. I can move it into a different directory and the URL path will persist at the same location it did before.

  • You can read How I Schedule Blog Posts with GitHub Actions and Netlify if you're interested in how I stay ahead of writing.

Scripts

I use a few scripts to stitch everything together:

  • A script to copy my Obsidian files with status: published into my git repo's content directory

notes.curiouslychase.com

I was originally using Obsidian Publish and serving the site Using Fly.io and NGINX for Proxying Obsidian Publish but found the solution wasn't meeting my needs.

For durability purposes, I created a Vercel site that uses a redirects functiongithub.com to redirect my paths from notes.curiouslychase.com to curiouslychase.com/postscuriouslychase.com.

Overview

This is an Obsidian Dataview section that allows me to keep tabs on what's published and if it's missing metadata.

dv.table(["Note", "Description"], dv.pages().filter((p) => {
return p.status === "published" && !p.fileClass
}).map(p => [p.file.link]))

changelog

  • 2023-06-14 updated note to match new build and deploy (Astro (JavaScript) and Netlify)
  • 2022-10-05 - added "notes" to the homepage
First Cohort
No Coding Experience Required

Build Your Website with AI—No Code Required

Learn to create and deploy professional websites using ChatGPT and Claude. Go from complete beginner to confident website builder.

Start Building Today

Post Details

Published
Oct 4, 2022
Share
ChatGPT

Latest Posts

5 Years of Startup Learnings At Murmur Labs

5 Years of Startup Learnings At Murmur Labs

Reflections on 5 years at Murmur Labs. What we built, what worked, what didn't, and how I'd approach starting something new.

AboutAI Workflow SpecContentStacksNewsletterPromptsRSS