Add combined blog+marketing+portfolio template
- Added blog pages: posts index, post detail, category/tag archives, search, RSS - Added BlogBase layout with Source Serif 4 font - Added PostCard and TagList components - Added utility functions: reading-time, site-identity - Added posts collection with taxonomies to seed - Updated menus with all sections: Home, Posts, Work, Pricing, Contact - Added blog seed content: 3 posts with bylines
This commit is contained in:
105
seed/seed.json
105
seed/seed.json
@@ -30,6 +30,19 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"slug": "posts",
|
||||
"label": "Posts",
|
||||
"labelSingular": "Post",
|
||||
"supports": ["drafts", "revisions", "search", "seo"],
|
||||
"commentsEnabled": true,
|
||||
"fields": [
|
||||
{ "slug": "title", "label": "Title", "type": "string", "required": true, "searchable": true },
|
||||
{ "slug": "featured_image", "label": "Featured Image", "type": "image" },
|
||||
{ "slug": "content", "label": "Content", "type": "portableText", "searchable": true },
|
||||
{ "slug": "excerpt", "label": "Excerpt", "type": "text" }
|
||||
]
|
||||
},
|
||||
{
|
||||
"slug": "projects",
|
||||
"label": "Projects",
|
||||
@@ -89,9 +102,12 @@
|
||||
"name": "category",
|
||||
"label": "Categories",
|
||||
"labelSingular": "Category",
|
||||
"hierarchical": false,
|
||||
"collections": ["projects"],
|
||||
"hierarchical": true,
|
||||
"collections": ["posts", "projects"],
|
||||
"terms": [
|
||||
{ "slug": "development", "label": "Development" },
|
||||
{ "slug": "design", "label": "Design" },
|
||||
{ "slug": "notes", "label": "Notes" },
|
||||
{ "slug": "branding", "label": "Branding" },
|
||||
{ "slug": "web", "label": "Web Design" },
|
||||
{ "slug": "print", "label": "Print" },
|
||||
@@ -103,8 +119,12 @@
|
||||
"label": "Tags",
|
||||
"labelSingular": "Tag",
|
||||
"hierarchical": false,
|
||||
"collections": ["projects"],
|
||||
"collections": ["posts", "projects"],
|
||||
"terms": [
|
||||
{ "slug": "webdev", "label": "Web Development" },
|
||||
{ "slug": "opinion", "label": "Opinion" },
|
||||
{ "slug": "tools", "label": "Tools" },
|
||||
{ "slug": "creativity", "label": "Creativity" },
|
||||
{ "slug": "identity", "label": "Identity" },
|
||||
{ "slug": "ui-ux", "label": "UI/UX" },
|
||||
{ "slug": "development", "label": "Development" },
|
||||
@@ -115,6 +135,10 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"bylines": [
|
||||
{ "id": "byline-editorial", "slug": "emdash-editorial", "displayName": "EmDash Editorial" },
|
||||
{ "id": "byline-guest", "slug": "guest-contributor", "displayName": "Guest Contributor", "isGuest": true }
|
||||
],
|
||||
"menus": [
|
||||
{
|
||||
"name": "primary",
|
||||
@@ -122,19 +146,24 @@
|
||||
"items": [
|
||||
{
|
||||
"type": "custom",
|
||||
"label": "Features",
|
||||
"url": "/#features"
|
||||
"label": "Home",
|
||||
"url": "/"
|
||||
},
|
||||
{
|
||||
"type": "custom",
|
||||
"label": "Pricing",
|
||||
"url": "/pricing"
|
||||
"label": "Posts",
|
||||
"url": "/posts"
|
||||
},
|
||||
{
|
||||
"type": "custom",
|
||||
"label": "Work",
|
||||
"url": "/work"
|
||||
},
|
||||
{
|
||||
"type": "custom",
|
||||
"label": "Pricing",
|
||||
"url": "/pricing"
|
||||
},
|
||||
{
|
||||
"type": "custom",
|
||||
"label": "Contact",
|
||||
@@ -632,6 +661,68 @@
|
||||
"tag": ["art-direction", "editorial"]
|
||||
}
|
||||
}
|
||||
],
|
||||
"posts": [
|
||||
{
|
||||
"id": "post-1",
|
||||
"slug": "building-for-the-long-term",
|
||||
"status": "published",
|
||||
"data": {
|
||||
"title": "Building for the Long Term",
|
||||
"excerpt": "The frameworks will change. The databases will change. What survives is the clarity of your thinking.",
|
||||
"featured_image": "https://images.unsplash.com/photo-1461749280684-dccba630e2f6?w=1200&h=800&fit=crop",
|
||||
"content": [
|
||||
{ "_type": "block", "style": "normal", "children": [{ "_type": "span", "text": "Every few years the industry collectively decides that everything we've been doing is wrong and there's a better way. New frameworks, new paradigms, new build tools. The churn is relentless, and if you're not careful, you spend more time migrating than building." }] },
|
||||
{ "_type": "block", "style": "normal", "children": [{ "_type": "span", "text": "I've been writing software long enough to have seen several of these cycles. jQuery to Backbone to Angular to React to whatever comes next. Each transition felt urgent at the time. Looking back, the things that actually mattered were rarely about the framework." }] },
|
||||
{ "_type": "block", "style": "h2", "children": [{ "_type": "span", "text": "What survives" }] },
|
||||
{ "_type": "block", "style": "normal", "children": [{ "_type": "span", "text": "Clean data models survive. Clear boundaries between systems survive. Good naming survives. The decision to keep things simple when you could have made them clever - that definitely survives." }] }
|
||||
]
|
||||
},
|
||||
"bylines": [{ "byline": "byline-editorial" }],
|
||||
"taxonomies": {
|
||||
"category": ["development"],
|
||||
"tag": ["opinion"]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "post-2",
|
||||
"slug": "the-case-for-static",
|
||||
"status": "published",
|
||||
"data": {
|
||||
"title": "The Case for Static",
|
||||
"excerpt": "Static sites aren't a step backwards. They're what you get when you take performance and simplicity seriously.",
|
||||
"featured_image": "https://images.unsplash.com/photo-1499750310107-5fef28a66643?w=1200&h=800&fit=crop",
|
||||
"content": [
|
||||
{ "_type": "block", "style": "normal", "children": [{ "_type": "span", "text": "There's a certain irony in the fact that the web started static, went dynamic, and is now swinging back toward static again. But the static sites of today aren't the hand-coded HTML pages of 1998. They're generated, optimized, and deployed to edge networks that serve them in milliseconds." }] },
|
||||
{ "_type": "block", "style": "h2", "children": [{ "_type": "span", "text": "The performance argument" }] },
|
||||
{ "_type": "block", "style": "normal", "children": [{ "_type": "span", "text": "A static file served from a CDN is as fast as the web gets. No cold starts, no database queries, no server-side rendering overhead. The Time to First Byte is essentially the network latency to your nearest edge node. You can't beat physics." }] }
|
||||
]
|
||||
},
|
||||
"bylines": [{ "byline": "byline-editorial" }],
|
||||
"taxonomies": {
|
||||
"category": ["development"],
|
||||
"tag": ["webdev", "opinion"]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "post-3",
|
||||
"slug": "learning-in-public",
|
||||
"status": "published",
|
||||
"data": {
|
||||
"title": "Learning in Public",
|
||||
"excerpt": "Writing about what you're learning is the fastest way to find out what you don't actually understand.",
|
||||
"featured_image": "https://images.unsplash.com/photo-1432821596592-e2c18b78144f?w=1200&h=800&fit=crop",
|
||||
"content": [
|
||||
{ "_type": "block", "style": "normal", "children": [{ "_type": "span", "text": "I started writing about things I was learning not because I had anything original to say, but because I kept forgetting what I'd figured out. The blog posts were notes to my future self, published publicly more out of laziness than courage." }] },
|
||||
{ "_type": "block", "style": "h2", "children": [{ "_type": "span", "text": "The fear of being wrong" }] },
|
||||
{ "_type": "block", "style": "normal", "children": [{ "_type": "span", "text": "The biggest barrier isn't time or writing skill. It's the fear of publishing something that turns out to be wrong. But here's the thing: being wrong publicly is one of the most efficient ways to learn. Someone will correct you, often kindly, and you'll remember that correction forever." }] }
|
||||
]
|
||||
},
|
||||
"taxonomies": {
|
||||
"category": ["notes"],
|
||||
"tag": ["opinion"]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user