Skip to content

Commit 538b788

Browse files
authored
Refactor services and layouts: Update related services, add blog post links, and enhance styles
- Changed related service from 'astro-development' to 'full-stack-web-development' in the blog post about Astro. - Updated related services in 'full-stack-web-development', 'mobile-app-development', and 'saas-mvp-development' JSON files. - Added Mermaid CSS styles for diagram rendering. - Enhanced ServiceLayout to include related blog posts based on service slug. - Removed deprecated services page and its associated logic. - Removing SEO validation script.
1 parent 405c989 commit 538b788

15 files changed

Lines changed: 606 additions & 924 deletions

astro.config.ts

Lines changed: 52 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,68 @@ import solid from "@astrojs/solid-js";
55
import tailwindcss from "@tailwindcss/vite";
66
import AstroPWA from "@vite-pwa/astro";
77
import { defineConfig } from "astro/config";
8+
import rehypeMermaid from "rehype-mermaid";
9+
10+
type HastNode = {
11+
type?: string;
12+
tagName?: string;
13+
properties?: Record<string, unknown>;
14+
children?: HastNode[];
15+
};
16+
17+
const rehypeMermaidAriaLabel = () => {
18+
return (tree: HastNode) => {
19+
const visit = (node: HastNode) => {
20+
if (
21+
node.type === "element" &&
22+
node.tagName === "svg" &&
23+
typeof node.properties?.id === "string" &&
24+
node.properties.id.startsWith("mermaid-")
25+
) {
26+
if (!node.properties) {
27+
node.properties = {};
28+
}
29+
30+
const properties = node.properties;
31+
if (typeof properties["aria-label"] !== "string") {
32+
properties["aria-label"] = "Mermaid diagram";
33+
}
34+
}
35+
36+
node.children?.forEach(visit);
37+
};
38+
39+
visit(tree);
40+
};
41+
};
842

943
// https://astro.build/config
1044
export default defineConfig({
1145
site: "https://avaabrazzaq.com", // Used to generate canonical URLs and sitemap entries.
1246
trailingSlash: "always", // Consistent URL format - all URLs end with /
47+
markdown: {
48+
syntaxHighlight: {
49+
type: "shiki",
50+
excludeLangs: ["math", "mermaid"],
51+
},
52+
},
1353
vite: {
1454
plugins: [tailwindcss()],
1555
},
1656
integrations: [
1757
solid(),
18-
mdx(),
58+
mdx({
59+
rehypePlugins: [
60+
[
61+
rehypeMermaid,
62+
{
63+
strategy: "inline-svg",
64+
dark: true,
65+
},
66+
],
67+
rehypeMermaidAriaLabel,
68+
],
69+
}),
1970
partytown({
2071
config: {
2172
forward: ["dataLayer.push"],

bun.lock

Lines changed: 343 additions & 69 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,23 @@
1616
},
1717
"keywords": [],
1818
"devDependencies": {
19-
"@astrojs/mdx": "5.0.2",
20-
"@astrojs/sitemap": "3.7.1",
19+
"@astrojs/mdx": "5.0.3",
20+
"@astrojs/sitemap": "3.7.2",
2121
"@astrojs/solid-js": "6.0.1",
22-
"@biomejs/biome": "2.4.8",
23-
"@tailwindcss/typography": "0.5.16",
22+
"@biomejs/biome": "2.4.10",
23+
"@tailwindcss/typography": "0.5.19",
2424
"@tailwindcss/vite": "4.2.2",
2525
"@vite-pwa/astro": "1.2.0",
26-
"cspell": "9.7.0",
26+
"cspell": "10.0.0",
27+
"playwright": "1.59.1",
28+
"rehype-mermaid": "3.0.0",
2729
"tailwindcss": "4.2.2",
2830
"typescript": "6.0.2"
2931
},
3032
"dependencies": {
3133
"@astrojs/partytown": "2.1.6",
3234
"@astrojs/rss": "4.0.18",
33-
"astro": "6.0.8",
34-
"solid-js": "1.9.11"
35+
"astro": "6.1.4",
36+
"solid-js": "1.9.12"
3537
}
3638
}

run-lint-format.js

Lines changed: 0 additions & 42 deletions
This file was deleted.

setup-assets.js

Lines changed: 0 additions & 24 deletions
This file was deleted.

src/content/blog/how-to-automate-lead-qualification-with-ai.md renamed to src/content/blog/how-to-automate-lead-qualification-with-ai.mdx

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -89,20 +89,19 @@ These emails go out within minutes of form submission—catching leads at peak i
8989

9090
Here's the architecture I typically implement:
9191

92-
```
93-
Form Submission
94-
95-
Webhook triggers n8n/Make workflow
96-
97-
API calls to enrichment services
98-
99-
LLM analyzes and scores lead
100-
101-
CRM updated with score + enrichment
102-
103-
Routing rules assign owner
104-
105-
Personalized email via SendGrid
92+
```mermaid
93+
flowchart TD
94+
A[🧾 Form Submission] --> B[⚡ Webhook Trigger\nn8n / Make]
95+
B --> C[🔍 Enrichment APIs\nClearbit · Apollo · HubSpot]
96+
C --> D[🤖 LLM Analysis\nScores & Qualifies Lead]
97+
D --> E[📊 CRM Update\nScore + Enrichment Data]
98+
E --> F[🔀 Routing Rules\nAssign Owner]
99+
F --> G[📧 Personalized Email\nSendGrid]
100+
101+
subgraph "AI Processing Layer"
102+
C
103+
D
104+
end
106105
```
107106

108107
The key components:

src/content/blog/why-astro-best-framework-marketing-sites.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ category: Development
88
draft: false
99
featured: false
1010
readingTime: 10
11-
relatedService: astro-development
11+
relatedService: full-stack-web-development
1212
---
1313

1414
After building dozens of marketing sites across different frameworks, I keep coming back to Astro. Not because it's trendy, but because it solves the specific problems marketing sites face better than the alternatives.

src/content/services/full-stack-web-development.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,5 +77,5 @@
7777
"answer": "Performance directly impacts business outcomes. Every 100ms of latency costs 1% in conversions. Google uses Core Web Vitals as a ranking factor. Mobile users abandon sites that take longer than 3 seconds to load. Fast sites rank better, convert better, and provide better user experience."
7878
}
7979
],
80-
"relatedServices": ["astro-development", "saas-mvp-development"]
80+
"relatedServices": ["mobile-app-development", "saas-mvp-development"]
8181
}

src/content/services/mobile-app-development.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,6 @@
8383
}
8484
],
8585
"parentService": "full-stack-web-development",
86-
"relatedServices": ["saas-mvp-development", "astro-development"],
86+
"relatedServices": ["saas-mvp-development", "full-stack-web-development"],
8787
"relatedBlogPosts": []
8888
}

src/content/services/saas-mvp-development.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,6 @@
7878
}
7979
],
8080
"parentService": "full-stack-web-development",
81-
"relatedServices": ["astro-development", "full-stack-web-development"],
81+
"relatedServices": ["mobile-app-development", "full-stack-web-development"],
8282
"relatedBlogPosts": ["building-mvp-4-weeks-technical-guide"]
8383
}

0 commit comments

Comments
 (0)