Skip to content

Commit e344f27

Browse files
authored
Chore/tags logos review (#41)
* adjusted tagging * post review skill * tag updates * landing page and logo updates * updated logos, favicons, getting started guide * prettier fix
1 parent cb89340 commit e344f27

29 files changed

+1797
-160
lines changed
Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
---
2+
name: review-blog-post
3+
description: >-
4+
Review blog posts for the FuryStack site. Use when the user asks to review a
5+
blog post, check tagging, validate frontmatter, or verify post conventions.
6+
Also use when a branch contains new or modified posts and the user asks for a
7+
review.
8+
---
9+
10+
# Reviewing Blog Posts for FuryStack
11+
12+
When reviewing a blog post, check each of the following areas and report issues grouped by severity.
13+
14+
## 1. Frontmatter validation
15+
16+
Posts live in `src/content/posts/` as Markdown files named `{NNN}-{slug}.md`.
17+
18+
```yaml
19+
---
20+
title: 'Post Title'
21+
author: [gallayl]
22+
tags: ['PrimaryCategory', 'thematic-tag', 'package-tag']
23+
date: '2026-03-12T12:00:00.000Z'
24+
draft: false
25+
image: img/{NNN}-{short-slug}.jpg
26+
excerpt: One or two sentences shown on cards and in RSS.
27+
---
28+
```
29+
30+
Check:
31+
32+
- All required fields present: `title`, `author`, `tags`, `date`, `draft`, `excerpt`.
33+
- `date` is a valid ISO 8601 string.
34+
- `excerpt` is concise (1-2 sentences) — it appears on post cards and in the RSS feed.
35+
- `image` path (if present) points to an existing file in `src/content/posts/img/`.
36+
- File numbering is sequential (check surrounding files for gaps or collisions).
37+
38+
## 2. Tagging review
39+
40+
This is the most important part of the review. Tags drive post card display, related-post discovery, and package page links.
41+
42+
### Tag structure
43+
44+
Tags are ordered in three tiers:
45+
46+
1. **Category tag** (first in the array) — displayed on post cards and the post header.
47+
2. **Thematic tags** — cross-cutting topics that drive related-post discovery.
48+
3. **Package tags**`@furystack/*` package short names linking from the packages page.
49+
50+
### Category tags (exactly one, must be first)
51+
52+
| Tag | Use when the post... |
53+
| ----------------- | --------------------------------------------------------------- |
54+
| `Getting Started` | is a tutorial teaching how to use a feature |
55+
| `Announcement` | is news, an introduction, or a site/project update |
56+
| `Architecture` | covers design decisions, refactoring, or internals |
57+
| `Frontend` | is about the Shades UI library, components, routing, or theming |
58+
59+
### Thematic tags (at least one, all that apply)
60+
61+
| Tag | Use when the post... |
62+
| ---------------------- | ------------------------------------------------------ |
63+
| `tutorial` | walks through steps to achieve something |
64+
| `refactoring` | describes code or API refactoring |
65+
| `breaking-changes` | covers breaking API changes |
66+
| `dependency-injection` | discusses DI / IoC patterns |
67+
| `data-storage` | is about stores, repositories, or the data layer |
68+
| `rest-api` | covers REST API design, implementation, or consumption |
69+
| `ui-components` | is about UI components, theming, or layout |
70+
| `showcase` | relates to the Shades Showcase App |
71+
| `routing` | covers client-side routing |
72+
| `migration` | is a migration story or upgrade guide |
73+
| `site` | is about this blog or the FuryStack website itself |
74+
| `validation` | covers data validation or schema enforcement |
75+
76+
### Package tags (for each relevant `@furystack/*` package)
77+
78+
Use the npm short name (e.g. `inject`, `shades`, `rest`, `core`, `repository`).
79+
Only tag packages that are a **primary focus** of the post.
80+
81+
### Tag checklist
82+
83+
- [ ] Exactly one category tag, placed first
84+
- [ ] At least one thematic tag
85+
- [ ] Package tags for primary packages discussed (if any)
86+
- [ ] All tags have entries in `src/data/tags.yaml` — if not, flag as missing
87+
- [ ] Tag order is: category, then thematic, then package
88+
89+
If a new thematic tag is warranted, suggest it along with a description for `src/data/tags.yaml`.
90+
91+
## 3. Content review
92+
93+
- `##` should be the top heading level (the `title` field renders as `<h1>`).
94+
- Links to other posts use relative paths: `/posts/{slug}/`.
95+
- Code examples have language tags on fenced blocks.
96+
- No broken links to GitHub or internal pages.
97+
- Tone matches existing posts: informal, direct, first person, occasional humor.
98+
99+
## 4. Review output format
100+
101+
```
102+
## Tagging
103+
- ...issues or suggestions...
104+
105+
## Frontmatter
106+
- ...issues or suggestions...
107+
108+
## Content
109+
- ...issues or suggestions...
110+
111+
## Summary
112+
[One-line verdict: ready to publish / needs changes]
113+
```
114+
115+
Omit sections with no issues. Always include the Summary.

public/favicon.ico

-8.34 KB
Binary file not shown.

public/favicon.svg

Lines changed: 29 additions & 0 deletions
Loading

src/components/Footer.astro

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
---
2-
import { Image } from 'astro:assets';
32
import { SITE_TITLE, SOCIAL } from '../consts';
4-
import logo from '../../public/images/furystack-logo-512.png';
3+
import FuryStackLogo from './icons/FuryStackLogo.astro';
54
---
65

76
<footer class="site-footer">
87
<div class="footer-inner">
98
<div class="footer-top">
109
<div class="footer-brand">
1110
<a href="/" class="footer-logo">
12-
<Image src={logo} alt={SITE_TITLE} width={24} height={24} loading="eager" />
11+
<FuryStackLogo size={24} />
1312
<span>FuryStack</span>
1413
</a>
1514
<p class="footer-tagline">A flexible end-to-end framework for building complex services</p>
@@ -18,7 +17,7 @@ import logo from '../../public/images/furystack-logo-512.png';
1817
<div class="footer-nav-group">
1918
<h4>Site</h4>
2019
<a href="/">Home</a>
21-
<a href="/tags/getting-started/">Getting Started</a>
20+
<a href="/getting-started/">Getting Started</a>
2221
<a href="/packages/">Packages</a>
2322
<a href="/about/">About</a>
2423
</div>
@@ -92,8 +91,10 @@ import logo from '../../public/images/furystack-logo-512.png';
9291
text-decoration: none;
9392
color: #fff;
9493
}
95-
.footer-logo :global(img) {
96-
border-radius: 4px;
94+
.footer-logo :global(svg) {
95+
width: 24px;
96+
height: 24px;
97+
flex-shrink: 0;
9798
}
9899

99100
.footer-tagline {

src/components/SiteNav.astro

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
---
2-
import { Image } from 'astro:assets';
3-
import { SOCIAL, SITE_TITLE } from '../consts';
2+
import { SOCIAL } from '../consts';
43
import GitHubIcon from './icons/GitHubIcon.astro';
54
import XIcon from './icons/XIcon.astro';
6-
import logo from '../../public/images/furystack-logo-512.png';
5+
import FuryStackLogo from './icons/FuryStackLogo.astro';
76
87
interface Props {
98
isHome?: boolean;
@@ -17,7 +16,7 @@ const { isHome = false } = Astro.props;
1716
{
1817
!isHome && (
1918
<a class="site-nav-logo" href="/">
20-
<Image src={logo} alt={SITE_TITLE} width={24} height={24} loading="eager" />
19+
<FuryStackLogo size={24} />
2120
<span>FuryStack</span>
2221
</a>
2322
)
@@ -29,7 +28,7 @@ const { isHome = false } = Astro.props;
2928
</button>
3029
<ul class="nav" role="menu">
3130
<li role="menuitem"><a href="/">Home</a></li>
32-
<li role="menuitem"><a href="/tags/getting-started/">Getting Started</a></li>
31+
<li role="menuitem"><a href="/getting-started/">Getting Started</a></li>
3332
<li role="menuitem"><a href="/packages/">Packages</a></li>
3433
<li role="menuitem"><a href="/about/">About</a></li>
3534
</ul>
@@ -111,10 +110,10 @@ const { isHome = false } = Astro.props;
111110
text-decoration: none;
112111
opacity: 0.9;
113112
}
114-
.site-nav-logo :global(img) {
113+
.site-nav-logo :global(svg) {
115114
width: 24px;
116115
height: 24px;
117-
border-radius: 4px;
116+
flex-shrink: 0;
118117
}
119118

120119
.nav-toggle {

0 commit comments

Comments
 (0)