Skip to content

Commit d2e03f4

Browse files
committed
content change
1 parent 68ac129 commit d2e03f4

8 files changed

Lines changed: 192 additions & 66 deletions

File tree

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
---
2+
title: Orchestrating AI Systems, Really?
3+
description: A deep dive into building and managing AI systems that work together seamlessly, from prompt engineering to multi-agent architectures.
4+
date: 2026-03-03
5+
draft: true
6+
readTime: 12
7+
views: 0
8+
---
9+
10+
By now, we all understand the power of AI. I’m not here to repeat how revolutionary it is — you already know that. Instead, let me ask you something more practical: **How much time are you actually saving by using AI?**
11+
12+
You started using AI to work faster. To think better. To reclaim hours from your week. And yet… you’re still clocking the same 50-hour workweeks.
13+
14+
Why?
15+
16+
Because most people aren’t truly using AI — they’re merely *assisting themselves with it*. They’re treating a billion-dollar intelligence engine like a glorified spell-checker.
17+
18+
AI doesn’t create leverage on its own. **Orchestration** does.
19+
If you’re not designing systems around it — automating workflows, structuring thinking, delegating cognitive load — then you’re not multiplying output. You’re just adding another tab to your browser.
20+
21+
And without systems, all you’re really creating is a very **expensive digital carbon footprint**.
22+
23+
### Introduction
24+
25+
Its been more than a couple of years when take

src/layouts/BaseLayout.astro

Lines changed: 71 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ const metaDescription = description ?? 'Writing and notes.';
116116
<link rel="preconnect" href="https://fonts.googleapis.com" />
117117
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
118118
<link
119-
href="https://fonts.googleapis.com/css2?family=Google+Sans:wght@300;400;500;600;700&display=swap"
119+
href="https://fonts.googleapis.com/css2?family=TASA+Explorer&display=swap"
120120
rel="stylesheet"
121121
/>
122122

@@ -262,6 +262,76 @@ const metaDescription = description ?? 'Writing and notes.';
262262
})();
263263
</script>
264264

265+
<script is:inline>
266+
(() => {
267+
const copyText = async (text) => {
268+
try {
269+
if (navigator.clipboard && navigator.clipboard.writeText) {
270+
await navigator.clipboard.writeText(text);
271+
return true;
272+
}
273+
} catch {
274+
// ignore
275+
}
276+
277+
try {
278+
const el = document.createElement('textarea');
279+
el.value = text;
280+
el.setAttribute('readonly', '');
281+
el.style.position = 'fixed';
282+
el.style.left = '-9999px';
283+
document.body.appendChild(el);
284+
el.select();
285+
document.execCommand('copy');
286+
document.body.removeChild(el);
287+
return true;
288+
} catch {
289+
return false;
290+
}
291+
};
292+
293+
const init = () => {
294+
const pres = Array.from(document.querySelectorAll('pre'));
295+
for (const pre of pres) {
296+
if (!(pre instanceof HTMLElement)) continue;
297+
if (pre.querySelector('.code-copy-btn')) continue;
298+
299+
const code = pre.querySelector('code');
300+
if (!code) continue;
301+
302+
const btn = document.createElement('button');
303+
btn.type = 'button';
304+
btn.className = 'code-copy-btn';
305+
btn.textContent = 'Copy';
306+
btn.setAttribute('aria-label', 'Copy code');
307+
308+
btn.addEventListener('click', async (e) => {
309+
e.preventDefault();
310+
e.stopPropagation();
311+
312+
const text = code.textContent ?? '';
313+
const ok = await copyText(text);
314+
const prev = btn.textContent;
315+
btn.textContent = ok ? 'Copied' : 'Failed';
316+
btn.disabled = true;
317+
setTimeout(() => {
318+
btn.textContent = prev;
319+
btn.disabled = false;
320+
}, 1200);
321+
});
322+
323+
pre.appendChild(btn);
324+
}
325+
};
326+
327+
if (document.readyState === 'loading') {
328+
document.addEventListener('DOMContentLoaded', init);
329+
} else {
330+
init();
331+
}
332+
})();
333+
</script>
334+
265335
<main class={`mx-auto w-full ${containerClass} flex-1 px-4 py-10`}>
266336
<slot />
267337
</main>

src/pages/about.astro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import BaseLayout from '../layouts/BaseLayout.astro';
33
---
44

55
<BaseLayout title="About" description="About this site." containerClass="max-w-6xl">
6-
<div class="prose prose-zinc dark:prose-invert max-w-none">
6+
<div class="openai-prose mx-auto w-full max-w-[46rem] min-w-0">
77
<h1>About Me</h1>
88

99
<div class="not-prose my-6">

src/pages/blog/[...slug].astro

Lines changed: 36 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ function estimateReadTimeMinutes(text: string) {
2020
2121
const readTime = post.data.readTime ?? estimateReadTimeMinutes(post.body);
2222
const hasReadTime = Number.isFinite(readTime) && readTime > 0;
23-
const hasViews = typeof post.data.views === 'number';
2423
2524
const formattedDate = post.data.date.toLocaleDateString('en-US', {
2625
year: 'numeric',
@@ -30,6 +29,37 @@ const formattedDate = post.data.date.toLocaleDateString('en-US', {
3029
3130
const toc = (headings ?? []).filter((h) => h.depth >= 2 && h.depth <= 3);
3231
32+
const rawDescription = typeof post.data.description === 'string' ? post.data.description : '';
33+
const descriptionLead = (rawDescription.split(/\r?\n/).find((l) => l.trim().length > 0) ?? '').trim();
34+
const firstParagraph =
35+
(post.body
36+
.split(/\r?\n\s*\r?\n/)
37+
.map((b) => b.trim())
38+
.find((b) => b.length > 0 && !b.startsWith('#')) ??
39+
'').trim();
40+
41+
const normalizeText = (s: string) =>
42+
s
43+
.replace(/[\u2018\u2019]/g, "'")
44+
.replace(/[\u201C\u201D]/g, '"')
45+
.replace(/\s+/g, ' ')
46+
.trim()
47+
.toLowerCase();
48+
49+
const stripTrailingEllipsis = (s: string) => s.replace(/[\.\u2026]+\s*$/, '').trim();
50+
51+
const leadNorm = normalizeText(stripTrailingEllipsis(descriptionLead));
52+
const paraNorm = normalizeText(firstParagraph);
53+
54+
const leadLooksDuplicated =
55+
leadNorm.length > 0 &&
56+
paraNorm.length > 0 &&
57+
(leadNorm === paraNorm || paraNorm.startsWith(leadNorm) || leadNorm.startsWith(paraNorm));
58+
59+
const shouldRenderLead = descriptionLead.length > 0 && !leadLooksDuplicated;
60+
61+
const pageDescription = (descriptionLead || firstParagraph).replace(/\s+/g, ' ').trim().slice(0, 180);
62+
3363
function escapeHtml(input: string) {
3464
return input
3565
.replace(/&/g, '&amp;')
@@ -74,7 +104,7 @@ function renderInlineCode(input: string) {
74104
}
75105
---
76106

77-
<BaseLayout title={post.data.title} description={post.data.description} containerClass="max-w-6xl">
107+
<BaseLayout title={post.data.title} description={pageDescription} containerClass="max-w-6xl">
78108
<div class="lg:grid lg:grid-cols-[minmax(0,1fr)_20rem] lg:gap-10">
79109
<article class="openai-prose mx-auto w-full max-w-[46rem] min-w-0">
80110
<div class="not-prose mb-8 space-y-3">
@@ -88,7 +118,7 @@ function renderInlineCode(input: string) {
88118
<span set:html={renderInlineCode(post.data.title)} />
89119
</h1>
90120
<div class="text-base text-zinc-600 dark:text-zinc-400">{formattedDate}</div>
91-
{(hasReadTime || hasViews) && (
121+
{hasReadTime && (
92122
<div class="flex items-center gap-3 text-sm text-zinc-500 dark:text-zinc-400">
93123
{hasReadTime && (
94124
<span class="inline-flex items-center gap-1">
@@ -108,34 +138,16 @@ function renderInlineCode(input: string) {
108138
<span>{readTime} min</span>
109139
</span>
110140
)}
111-
{hasViews && (
112-
<span class="inline-flex items-center gap-1">
113-
<svg
114-
class="h-3.5 w-3.5"
115-
viewBox="0 0 24 24"
116-
fill="none"
117-
stroke="currentColor"
118-
stroke-width="2"
119-
stroke-linecap="round"
120-
stroke-linejoin="round"
121-
aria-hidden="true"
122-
>
123-
<path d="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7Z" />
124-
<circle cx="12" cy="12" r="3" />
125-
</svg>
126-
<span>{post.data.views.toLocaleString()}</span>
127-
</span>
128-
)}
129141
</div>
130142
)}
131-
{(hasReadTime || hasViews) && (
143+
{hasReadTime && (
132144
<div class="pt-3">
133145
<div class="h-px w-full bg-zinc-200 dark:bg-zinc-800"></div>
134146
</div>
135147
)}
136-
{post.data.description && (
148+
{shouldRenderLead && (
137149
<p class="text-zinc-600 dark:text-zinc-300">
138-
<span set:html={renderInlineCode(post.data.description)} />
150+
<span set:html={renderInlineCode(descriptionLead)} />
139151
</p>
140152
)}
141153
</div>

src/pages/index.astro

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,6 @@ function renderInlineCode(input: string) {
7575
{pagePosts.map((post) => {
7676
const readTime = post.data.readTime ?? estimateReadTimeMinutes(post.body);
7777
const hasReadTime = Number.isFinite(readTime) && readTime > 0;
78-
const hasViews = typeof post.data.views === 'number';
7978

8079
return (
8180
<a
@@ -119,24 +118,6 @@ function renderInlineCode(input: string) {
119118
<span>{readTime} min read</span>
120119
</div>
121120
)}
122-
{hasViews && (
123-
<div class="inline-flex items-center gap-1">
124-
<svg
125-
class="h-3.5 w-3.5"
126-
viewBox="0 0 24 24"
127-
fill="none"
128-
stroke="currentColor"
129-
stroke-width="2"
130-
stroke-linecap="round"
131-
stroke-linejoin="round"
132-
aria-hidden="true"
133-
>
134-
<path d="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7Z" />
135-
<circle cx="12" cy="12" r="3" />
136-
</svg>
137-
<span>{post.data.views.toLocaleString()} views</span>
138-
</div>
139-
)}
140121
</div>
141122
</div>
142123
</a>

src/pages/page/[page].astro

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,6 @@ function renderInlineCode(input: string) {
100100
{pagePosts.map((post) => {
101101
const readTime = post.data.readTime ?? estimateReadTimeMinutes(post.body);
102102
const hasReadTime = Number.isFinite(readTime) && readTime > 0;
103-
const hasViews = typeof post.data.views === 'number';
104103

105104
return (
106105
<a
@@ -144,24 +143,6 @@ function renderInlineCode(input: string) {
144143
<span>{readTime} min read</span>
145144
</div>
146145
)}
147-
{hasViews && (
148-
<div class="inline-flex items-center gap-1">
149-
<svg
150-
class="h-3.5 w-3.5"
151-
viewBox="0 0 24 24"
152-
fill="none"
153-
stroke="currentColor"
154-
stroke-width="2"
155-
stroke-linecap="round"
156-
stroke-linejoin="round"
157-
aria-hidden="true"
158-
>
159-
<path d="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7Z" />
160-
<circle cx="12" cy="12" r="3" />
161-
</svg>
162-
<span>{post.data.views.toLocaleString()} views</span>
163-
</div>
164-
)}
165146
</div>
166147
</div>
167148
</a>

src/styles/global.css

Lines changed: 58 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222

2323
.prose :where(:not(pre) > code):not(:where(.not-prose, .not-prose *)) {
2424
@apply rounded bg-zinc-100 px-1 py-0.5 text-[0.9em] text-zinc-900 dark:bg-zinc-800 dark:text-zinc-100;
25+
font-size: calc(0.9em + 2px);
2526
}
2627

2728
.prose :where(h1, h2, h3, h4, h5, h6):not(:where(.not-prose, .not-prose *)) {
@@ -128,6 +129,7 @@
128129

129130
.openai-prose :where(pre):not(:where(.not-prose, .not-prose *)) {
130131
@apply rounded-2xl border border-zinc-200 bg-white shadow-sm dark:border-zinc-800 dark:bg-zinc-950;
132+
position: relative;
131133
padding: 16px;
132134
overflow-x: auto;
133135
}
@@ -136,10 +138,14 @@
136138
background: transparent;
137139
padding: 0;
138140
border-radius: 0;
139-
font-size: 0.9em;
141+
font-size: calc(0.9em + 2px);
140142
color: inherit;
141143
}
142144

145+
.openai-prose :where(:not(pre) > code):not(:where(.not-prose, .not-prose *)) {
146+
font-size: calc(0.9em + 2px);
147+
}
148+
143149
.openai-prose :where(blockquote):not(:where(.not-prose, .not-prose *)) {
144150
@apply rounded-xl border border-zinc-200 bg-zinc-50 px-5 py-4 text-zinc-700 dark:border-zinc-800 dark:bg-zinc-900 dark:text-zinc-200;
145151
border-left-width: 4px;
@@ -155,6 +161,40 @@
155161
.openai-prose :where(img):not(:where(.not-prose, .not-prose *)) {
156162
@apply rounded-2xl;
157163
}
164+
165+
.code-copy-btn {
166+
position: absolute;
167+
top: 10px;
168+
right: 10px;
169+
z-index: 5;
170+
border-radius: 10px;
171+
padding: 6px 10px;
172+
font-size: 12px;
173+
line-height: 1;
174+
font-weight: 600;
175+
border: 1px solid rgb(228 228 231);
176+
background: rgba(255, 255, 255, 0.85);
177+
color: rgb(63 63 70);
178+
backdrop-filter: blur(10px);
179+
-webkit-backdrop-filter: blur(10px);
180+
cursor: pointer;
181+
}
182+
183+
:where(.dark) .code-copy-btn {
184+
border-color: rgb(39 39 42);
185+
background: rgba(9, 9, 11, 0.7);
186+
color: rgb(244 244 245);
187+
}
188+
189+
.code-copy-btn:hover {
190+
border-color: rgb(161 161 170);
191+
color: rgb(24 24 27);
192+
}
193+
194+
:where(.dark) .code-copy-btn:hover {
195+
border-color: rgb(82 82 91);
196+
color: rgb(255 255 255);
197+
}
158198
}
159199

160200
@layer base {
@@ -166,12 +206,19 @@
166206
color: rgb(63 63 70);
167207
}
168208

209+
:where(strong, b) {
210+
font-weight: 600;
211+
}
212+
169213
:where(.dark) :where(h1, h2, h3, h4, h5, h6, strong, b) {
170214
color: rgb(250 250 250);
171215
}
172216

173217
body {
174218
@apply bg-zinc-50 text-zinc-900 antialiased dark:bg-zinc-950 dark:text-zinc-50;
219+
font-size: 16px;
220+
line-height: 1.6;
221+
font-family: "TASA Explorer", ui-sans-serif, system-ui, sans-serif;
175222
}
176223

177224
a {
@@ -182,3 +229,13 @@
182229
@apply decoration-zinc-900 dark:decoration-zinc-200;
183230
}
184231
}
232+
233+
@layer utilities {
234+
.font-bold {
235+
font-weight: 600;
236+
}
237+
238+
.font-extrabold {
239+
font-weight: 600;
240+
}
241+
}

0 commit comments

Comments
 (0)