blog: update posts
This commit is contained in:
@@ -11,7 +11,7 @@
|
||||
"react",
|
||||
"typescript"
|
||||
],
|
||||
"details": "# Testing testing 123\n\nThis little corner of the site started as a question: **how does long-form content fit into a site that was built for short-form stuff?** Portfolio sites are grids of cards, and a blog is a column of words. The answer turned out to be \"don't treat them differently at all.\"\n\n<blockquote>\nA blog is just another collection of cards. The difference is what happens when you click one.\n</blockquote>\n\n## The shape of the problem\n\nEvery tab on this site follows the same recipe:\n\n- A typed data array in a single content file, which acts as the whole CMS\n- A shared layout that provides the nav chrome and the footer\n- A thin client page that renders one list component\n- A detail page that reuses the same layout, minus the nav, plus a context provider\n\nA post that fits that shape is just another entry in an array. A post that doesn't fit it is a content management system in disguise, and that's a whole other project.\n\n## Why the markdown was already there\n\nThe project detail pages render markdown through a small remark pipeline that has been sitting in the codebase for a while, used by the project pages. The blog needed exactly the same thing, which meant the data layer for a blog post is mostly just a type and a lookup function. The pipeline is shared, so a post and a project detail are rendered by the same code, with the same quirks, and the same fixes.\n\nThat is the whole trick. The feature felt like it would need infrastructure, but the infrastructure already existed for a different feature. When a new feature turns out to be a clone of an old one, the new feature is cheap, and the codebase gets a little more regular as a side effect.\n\n## What actually changed\n\nA new type, a new data array, a new lookup function, a new tab in the nav, two layouts, a list page, a card, and a detail page. No new dependencies, no new build steps, no new configuration. The tab order now reads profile, project, blog, mods, and the blog sits in the middle of the two portfolio tabs.\n\nEditing a post from here on out is editing the array, which is the same as editing a project. That's the part I wanted.\n"
|
||||
"details": "# Testing testing 12345\n\nThis little corner of the site started as a question: **how does long-form content fit into a site that was built for short-form stuff?** Portfolio sites are grids of cards, and a blog is a column of words. The answer turned out to be \"don't treat them differently at all.\"\n\n<blockquote>\nA blog is just another collection of cards. The difference is what happens when you click one.\n</blockquote>\n\n## The shape of the problem\n\nEvery tab on this site follows the same recipe:\n\n- A typed data array in a single content file, which acts as the whole CMS\n- A shared layout that provides the nav chrome and the footer\n- A thin client page that renders one list component\n- A detail page that reuses the same layout, minus the nav, plus a context provider\n\nA post that fits that shape is just another entry in an array. A post that doesn't fit it is a content management system in disguise, and that's a whole other project.\n\n## Why the markdown was already there\n\nThe project detail pages render markdown through a small remark pipeline that has been sitting in the codebase for a while, used by the project pages. The blog needed exactly the same thing, which meant the data layer for a blog post is mostly just a type and a lookup function. The pipeline is shared, so a post and a project detail are rendered by the same code, with the same quirks, and the same fixes.\n\nThat is the whole trick. The feature felt like it would need infrastructure, but the infrastructure already existed for a different feature. When a new feature turns out to be a clone of an old one, the new feature is cheap, and the codebase gets a little more regular as a side effect.\n\n## What actually changed\n\nA new type, a new data array, a new lookup function, a new tab in the nav, two layouts, a list page, a card, and a detail page. No new dependencies, no new build steps, no new configuration. The tab order now reads profile, project, blog, mods, and the blog sits in the middle of the two portfolio tabs.\n\nEditing a post from here on out is editing the array, which is the same as editing a project. That's the part I wanted.\n"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
|
||||
Reference in New Issue
Block a user