منصوبے کے بارے میں
Go Performance Starter چھوٹے SaaS مصنوعات کے لیے ایک رائے پر مبنی، سرور-رینڈرڈ نقطہ آغاز ہے، جو Go (Chi)، templ ٹیمپلیٹس، HTMX مع Alpine.js، Tailwind CSS، Supabase (Auth + PostgreSQL) اور Cloudflare کو یکجا کرتا ہے۔ اس کا بنیادی مقصد کم سے کم JavaScript کے ساتھ سرور-رینڈرڈ Go فراہم کرنا ہے، جہاں کارکردگی کے بجٹ اور AI-ایجنٹ گارڈ ریلز کو محض بیان کرنے کے بجائے CI میں نافذ کیا جاتا ہے۔
یہ کیا فراہم کرتا ہے
Authentication کے لیے Supabase ای میل/پاس ورڈ کا استعمال کیا جاتا ہے جس میں سرور سائیڈ JWT ویلیڈیشن شامل ہے، اور یہ گمنام مہمان سائن-ان کی بھی حمایت کرتا ہے تاکہ ڈیمو وزیٹرز بغیر سائن اپ کیے حقیقی شناخت حاصل کر سکیں۔ Multi-tenancy کے لیے PostgreSQL Row Level Security (RLS) پر بھروسہ کیا گیا ہے: ریکوئسٹ JWT کلیمز کو ایک اسکوپڈ ٹرانزیکشن (SET LOCAL ROLE اور request.jwt.claims) کے ذریعے ہر کوئری میں لے جایا جاتا ہے، تاکہ auth.uid() RLS پالیسیوں کے اندر حل ہو سکے اور ریپوزٹری لیئر ٹیننٹ اسکوپنگ کو نظر انداز نہ کر سکے۔ README میں ذکر ہے کہ یہ Supabase کو ایک پلگ ایبل ایڈاپٹر کے بجائے بنیادی ڈھانچے (load-bearing) کا حصہ بناتا ہے؛ وینڈر-نیوٹرل auth کے لیے auth مڈل ویئر، RLS اسکوپ ہیلپر اور پالیسیوں کو دوبارہ لکھنے کی ضرورت ہوگی۔
شامل ڈیمو اس اسٹیک کو آزمانے کے لیے ہے: ایک /patterns شوکیس جس میں ہر سپورٹڈ HTMX/Alpine پیٹرن کا لائیو ڈیمو اور سورس موجود ہے، اور ایک آرکیٹیکچر کوئز جس کے غلط جوابات صارف کے مخصوص فلیش کارڈز کے طور پر محفوظ ہو جاتے ہیں جو RLS کے ذریعے محفوظ ہوتے ہیں۔ ایک بیک گراؤنڈ جاب Supabase ایڈمن API کے ذریعے غیر فعال مہمانوں کی میعاد ختم کرتی ہے۔
ڈویلپر ٹولنگ میں Go میں کمپائل شدہ ٹائپ-سیف templ ٹیمپلیٹس، ریپوزٹری پیٹرن کے ساتھ sqlc کوڈ جنریشن، air کے ذریعے ہاٹ ر لوڈ، Taskfile آٹومیشن، golangci-lint، Prometheus میٹرکس، log/slog کے ساتھ اسٹرکچرڈ لاگنگ، ہیلتھ چیکس، اور CI/CD شامل ہیں۔ ایک رول-بیسڈ ڈیزائن سسٹم میں bg-surface اور text-muted-foreground جیسے سیمیٹک ٹوکنز استعمال ہوتے ہیں، جہاں ڈارک موڈ اجزاء کے بجائے ٹوکنز کو تبدیل کرتا ہے اور CI کے ذریعے خام گریز اور dark: ڈرفٹ کی جانچ کی جاتی ہے۔
کارکردگی کے بجٹ
README میں نافذ شدہ بجٹ درج ہیں: P95 رسپانس ٹائم 100ms سے کم، بائنری سائز 20MB سے کم، Docker امیج 30MB سے کم، اسٹیڈی-اسٹیٹ میموری 128MB سے کم، اور اسٹارٹ اپ 500ms سے کم، جن کی تصدیق task test:performance اور task test:binary-size کے ذریعے کی جاتی ہے۔
ایجنٹ کی مدد سے ڈویلپمنٹ
پروجیکٹ ایک تہوں والا AI آئین فراہم کرتا ہے: CLAUDE.md میں خلاف ورزی پر روکنے (halt-on-violation) کے قوانین ہیں، جبکہ .claude/engineering.md، workflow.md اور stack.md میں انجینئرنگ ڈیفالٹس، عمل اور اسٹیک کے حقائق موجود ہیں۔ AGENTS.md ان تہوں سے task agents:build کے ذریعے تیار کیا جاتا ہے اور CI اس وقت فیل ہو جاتا ہے جب اس میں کوئی فرق (drift) آئے۔ غیر معمولی فیچرز ایک تین مرحلہ وار Architect سے Coder اور پھر Reviewer کے بہاؤ (flow) پر عمل کرتے ہیں۔ کام کی تکمیل (definition of done) کا واحد معیار task ci کوالٹی گیٹ (فارمیٹنگ، لنٹ، ریس ٹیسٹ، ڈرفٹ چیکس، بائنری سائز، ویلنر ایبلٹی اسکین) ہے، جسے ایجنٹس کو دہلیزیں کم کیے بغیر پاس کرنا ہوتا ہے۔
Architecture Decision Records (ADRs) میں سے ہر ایک میں ایک Enforcement سیکشن ہے جو قوانین کو چیکس سے جوڑتا ہے۔ task check:adr ایک ڈیٹرمینسٹک سوٹ چلاتا ہے جو قابلِ ٹیسٹ ADR نتائج کی تصدیق کرتا ہے، بشمول ایک سیکرٹ اسکینر۔ چیکس وارننگ کے طور پر شروع ہوتے ہیں اور ایک صاف مدت یا حقیقی پکڑ کے بعد بلاکنگ میں تبدیل کر دیے جاتے ہیں۔ دو ہکس بلاکنگ ہیں: ایک Stop-gate جو ایجنٹس کو فیل ٹیسٹ یا بلاکر کے ساتھ ٹرن ختم کرنے سے روکتا ہے، اور ایک PreToolUse گارڈ جو موجودہ ADRs، AGENTS.md یا جنریٹڈ کوڈ میں دستی تبدیلیوں کو روکتا ہے؛ دونوں میں کل-سوئچز موجود ہیں۔ README واضح کرتا ہے کہ کون سے حصے بنیادی (load-bearing) ہیں اور کون سے ہٹائے جا سکتے ہیں، بشمول انفورسمنٹ سوٹ کو مکمل طور پر ختم کرنے کی ہدایات۔
روٹ versions.json کو ایک پبلک کنزمپشن کنٹریکٹ کے طور پر بیان کیا گیا ہے جس میں اسٹیک پنز درج ہیں؛ task versions:check اس وقت فیل ہوتا ہے جب کوئی کی (key) اپنے ان-ریپو سورس سے اتفاق نہیں کرتی، اور نئی کیز شامل کرنا ٹھیک ہے جبکہ انہیں دوبارہ نام دینے یا ہٹانے کو بریکنگ چینج سمجھا جاتا ہے۔
شروعات اور دائرہ کار
ضروریات میں Go 1.26+، Docker اور Docker Compose، Task، اور Node.js 20+ شامل ہیں۔ کوئیک اسٹارٹ میں کلوننگ، .env.example کی کاپی، ڈیٹا بیس شروع کرنا، مائیگریشنز چلانا، sqlc ٹائپس جنریٹ کرنا، Go اور npm ڈیپینڈنسیز انسٹال کرنا، اور ہاٹ ر لوڈ کے ساتھ ڈویلپمنٹ سرور لانچ کرنا شامل ہے، جو ڈیفالٹ طور پر پورٹ 4000 پر چلتا ہے۔ ایک بار Supabase پاس ورڈ ری سیٹ ٹیمپلیٹ کنفیگریشن کی دستاویز موجود ہے۔ دستیاب ٹاسکس میں dev، ci، build، test، coverage، performance اور binary-size چیکس، lint، CSS بلڈ، Docker امیج بلڈ اور ویلنر ایبلٹی اسکیننگ شامل ہیں۔ یہ پروجیکٹ MIT لائسنس کے تحت جاری کیا گیا ہے۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.