چرا فاندرهای فنی با محتوا دست‌وپنجه نرم می‌کنن

چیزهای واقعی منتشر می‌کنی. مشکل‌های سخت حل می‌کنی. پیویهات خالیه.

۸ سال چیزهای واقعی منتشر کردم. تقریباً هیچ‌کس نمی‌دونست. نه به خاطر اینکه کار بد بود؛ به خاطر اینکه هیچ‌وقت ساخت رو به پست وصل نکردم.

مشکل هیچ‌وقت مهارت نوشتن نبود. کار انجام می‌شد، درس‌ها ازش بیرون می‌زدن و هیچ‌کدومشون هیچ‌وقت به یه پست وصل نمی‌شد. یه پایپلاین برای سشن‌های ساخت این رو حل می‌کنه؛ چون ساخت رو منبعِ همه‌ی پیش‌نویس‌ها می‌کنه.

۸

۸ سال انتشار چیزهای واقعی

محصول‌های واقعی، کاربرهای واقعی، عددهای واقعی. تقریباً هیچ‌کس نمی‌دونست چون هیچ‌وقت هیچی به یه پست وصل نشده بود.

۲

۲ دقیقه برای هر سشن ساخت

همین کل ورودیه. بقیه‌ی پایپلاین محتوا خودش اجرا می‌شه. نه صفحه‌ی خالی. نه تقویم تحریریه.

ساخت همون پسته؛ فقط به خروجی وصل نشده. همین فاصله‌ست که کل بازیه.


لاگ سشن

۲ دقیقه ثبت کردن. بدون فکر کردن. این ورودی خامیه که کل پایپلاین رو تغذیه می‌کنه.

این رو در پایان یه ساخت ریختم تو یه فایل Markdown. ۲ دقیقه. بدون فکر کردن. این همون ورودی خامیه که کل پایپلاین محتوایی توسعه‌دهنده‌ها رو تغذیه می‌کنه.

session: 2026-06-13
title: refactored auth layer from sessions to jwt
what i did:
  - replaced session-based auth with jwt
  - cut p95 login 800ms to 90ms
  - fixed race condition in token refresh
decisions:
  - chose jwt over opaque tokens for stateless verification
  - kept refresh tokens server-side for revocation
numbers:
  - 800ms to 90ms p95 login
  - 0 to 100% of routes now stateless
lessons:
  - stateless auth is not less secure. it is just different secure.

همین. کل ورودی همینه.


پایپلاین چی تولید می‌کنه

سیستم سندهای استراتژی تو رو لود می‌کنه، سشن رو از کامپایلر رد می‌کنه و پیش‌نویس‌های بومی هر پلتفرم رو با صدای خودت تولید می‌کنه.

LinkedIn: پیش‌نویس بلند

احراز هویتِ تو کنده چون سرورت تو هر درخواست کار زیادی انجام می‌ده. مال من همین‌طور بود. ۸۰۰ میلی‌ثانیه p95 فقط برای ورود. راه‌حل دیتابیس سریع‌تر نبود؛ تغییر از سشن‌های سمت سرور به JWT بود.

X: نسخه‌ی ترد

احراز هویتِ تو کنده چون سرورت تو هر درخواست کار زیادی انجام می‌ده. مال من همین‌طور بود. ۸۰۰ میلی‌ثانیه p95 فقط برای ورود. از سشن‌های سمت سرور رفتم به JWT. ۸۰۰ → ۹۰ میلی‌ثانیه.

X: پست تکی

ورود ۸۰۰ میلی‌ثانیه → ۹۰ میلی‌ثانیه. از sessions رفتم به jwt. سرور الآن تقریباً هیچ کاری نمی‌کنه. توی مقابلش revoke کردن لازمه. ارزشش رو داره.

بلاگ: فرم بلند

پست کامل بلاگ: ۴ بخش، ۸۰۰ کلمه، صدای خودت، مشکلِ خواننده توی تیتر و ساخت تو به‌عنوان پانوشت.

۲ دقیقه ثبت کردن، ۳۰ ثانیه بازبینی، ۰ دقیقه نوشتن. خواننده یه پست می‌گیره. تو هیچ هویتی عوض نکردی. به هیچ صفحه‌ی خالی خیره نشدی.

ساخت تو پانوشته؛ مشکلِ خواننده تیتره.


۵ سند استراتژی

لایه‌ی پیکربندی. فقط همین. بقیه‌ش اجراست.

قصد ندارم کل معماری رو توضیح بدم؛ فقط نکته‌ی هر سند رو می‌گم. اون‌ها یه پیکربندی کامپایل‌شده‌ان. اگه یکی از اون‌ها نباشه، پایپلاین فقط می‌تونه حدس بزنه.

۰۱

session-as-content ساخت منبعه. بدونش برمی‌گردی به صفحه‌ی خالی و تقویمی که هیچ‌وقت کار نمی‌کنه.

۰۲

funnel-and-matrix هر سشن یه کار داره. این یکی یه معاوضه‌ی تصمیم توی مرحله‌ی بررسیه، با فراخوان اقدام «گلوگاه رو درست کن». به پلتفرم، قالب و درخواست مسیریابی می‌کنه.

۰۳

icp-offer برای یه خواننده بنویس، با کلمه‌های خودش، در یه لایه‌ی مشکل. هر پیش‌نویس در برابر خواننده‌ی هدفت چک می‌شه. اگه مطابقت نداشته باشه، گیت رد می‌شه.

۰۴

voice-and-gates i کوچیک، پیوت‌های «آها»، پایان‌بندی‌های «نکته:»، گرامر عمداً شکسته، خواننده‌ی نام‌برده، عددهای مشخص، بدون حرف کلیشه‌ای، بدون خط فاصله‌ی بلند. به‌علاوه یه سطح کیفیت.

۰۵

voice-corpus ۸ تا از بهترین پست‌های تو که به‌عنوان داده‌ی آموزشی وارد می‌شن. پیش‌نویس‌ها قبل از نوشتن ۲ تا ۳ تاشون رو می‌خونن. همینه که باعث می‌شه خروجی شبیه خودت باشه.


۳ گیتی که پیش‌نویس‌ها رو فیلتر می‌کنن

بیشترِ ۳۰ بررسی فقط سر و صدای مکانیکیه. این ۳ تا اون‌هایی‌ان که خروجی رو عوض می‌کنن.

۱

گیت خواننده اگه پیش‌نویس با یه خواننده‌ی نام‌برده توی یه لایه‌ی مشکل حرف نزنه، می‌میره. این گیتی که پست‌های «اینو ساختم» رو که هیچ‌کس نمی‌خونه فیلتر می‌کنه.

۲

گیت بدون لو رفتن سیستم اگه پیش‌نویس به موتور، کامپایلر، گیت‌ها، قیف یا لاگ سشن اشاره کنه، می‌میره. خواننده به پایپلاین تو اهمیت نمی‌ده. به مشکل خودش اهمیت می‌ده.

۳

گیت قلاب اگه خط اول یه مقدمه، یه تعریف یا «می‌خواستم به اشتراک بذارم» باشه، می‌میره. قبل از اینکه به صف برسه، بازنویسی می‌شه.

۲۷ بررسی دیگه فقط کمربند و بندِ اضافه‌ان. این ۳ تا ان که پیش‌نویس‌ها فرود میان.


اگه یکی از سندها رو حذف کنی چی می‌شه

این ۵ تا مستقل نیستن. یه پیکربندی کامپایل‌شده‌ان.

حذف ورودی: بدون session-as-content

پایپلاین ورودی نداره. برمی‌گردی به صفحه‌ی خالی و تقویمی که هیچ‌وقت کار نمی‌کنه.

حذف مسیریابی: بدون funnel-and-matrix

هر پست با فراخوان اقدام اشتباه به مرحله‌ی اشتباه می‌ره.

حذف هدف‌گیری: بدون icp-offer

پست‌ها با هیچ‌کسِ خاصی حرف نمی‌زنن. به همه می‌رسن و هیچ‌کس رو قانع نمی‌کنن.

حذف صدا: بدون voice-and-gates

خروجی منحرف می‌شه. برچسب‌های داخلی لو می‌رن. پست‌ها شروع می‌کنن شبیه بیانیه‌ی مطبوعاتی شدن.


خودت پایپلاین ساخت تا بلاگ رو امتحان کن

اگه هفته‌ای ۲ بار پست می‌ذاری، این کار زیاده‌رویه. اگه ماهانه ۲۰ تا ۳۰ محتوا از کارهای منتشرشده تولید می‌کنی، این حداقل معماری کارامده.

مخزن متن‌بازه. کلونش کن. پرامپت راه‌اندازی رو بده به هر ایجنت مدل زبانی. از ۱۴ سوال راه‌اندازی رد شو. ۵ سند استراتژی با جایگاه‌سازی، صدا و ICP خودت پر می‌شن. بعد هر سشن ساخت تبدیل می‌شه به:

git clone https://github.com/ShayanSpiel/SpielOS my-engine
cd my-engine
۰۱

مخزن رو کلون کن SETUP.md رو باز کن. پرامپت رو به هر ایجنت مدل زبانی پیست کن.

۰۲

از ۱۴ سوال رد شو ایجنت ۵ سند استراتژی رو با جایگاه‌سازی، صدا، ICP و آفر تو پر می‌کنه.

۰۳

یه ساخت منتشر کن، ۲ دقیقه لاگ بنویس چی تصمیم گرفتی، چی رو با چی معاوضه کردی، چی یاد گرفتی. پایپلاین از همون‌جا ادامه می‌ده.

۰۴

بازبینی کن، منتشر کن، به ساختن ادامه بده پیش‌نویس‌ها تو صف فرود میان. تو بازبینی می‌کنی. منتشر می‌کنی. سازنده می‌مونی.

تو می‌سازی. سیستم پست می‌ذاره. تو سازنده می‌مونی.

۸ سال ساختن، ۰ سال به کسی گفتن. اون ۵ سند پل هستن. خیره شدن به صفحه‌های خالی رو بس کن. شروع کن به اسکن کردن سشن‌هات.

پایپلاین رو تو عمل ببین