That’s what it’s like in life. Whether doing a project, beginning a journey, or lifting weights, gotta do the bare minimum before we can do more.
But surely you read my last blog…
my-ssg/
├── main.go
│ ├── content/
│ │ │── index.md
│ │ │── about.md
│ ├── layouts/
│ │ │── page.html
│ ├── public/
But I am not to quick to lock in my decisions iwthout reviewing the idea with a bit of scrutiny and criticism. Not too strict/rigid.
Again, just planning a low-detail executable logical list of tasks that match the pattern for the desired project results
content directory for .md fileslayouts/.html file inside public/Info started sparking questions on
There seemed to be a reasonable value of exploring both ideas of the paper.
I wound up discovering the file overwrite convention that seems best practice.
Amazing how effective research can be.
It’s just make a tmp, test it, rename it at the OS level with code.
The overwrite is lightning fast and super clean.
The part that really tickled my brain was that when I went to look at the metadata schema it was fully written in TypeScript People don’t know yet, but my introduction to GoLang was taking a course on Data Structures and Algorithms. The course, the in-class work, and the tests that made sure the work was correct were all only in TypeScript.
Not only did I have zero experience in GoLang, I had zero experience in TypeScript. Absolutely zero in both. So, now, for this project I’m absolutely going to be taking typescript from this blog tool and rewriting it in Go. It is such a fun and wondnerful experience to learn.
Thomas Custer
P.S.
Frontmatter example:
---
title: "The True Start"
description: "Duck around and find out"
pubDate: "June 09 2026"
heroImage: "/rubber-ducky.jpg"
---
TypeScript Frongmatter Schema used on my blog posts:
schema: z.object({
title:z.string(),
description: z.string(),
pubDate: z.coerce.date(),
updateDate: z.coerce.date().optional(),
heroImages:zstring().optional()
})