Ask HN: यदि आप आज एक वेब ऐप बनाते, तो आप कौन-सा टेक स्टैक चुनते?

आज एक नए web app के लिए tech stack चुनना अक्सर developer productivity, long-term stability, और ऐप को कितनी interaction चाहिए—इनके बीच tradeoff पर निर्भर करता है। कई engineers Rails, Django, Laravel, Go, या .NET जैसे “boring”, well-established monolithic stacks को server-side rendering के साथ पसंद करते हैं, अक्सर HTMX या Hotwire जैसे tools और Postgres या SQLite के साथ, क्योंकि इन्हें simple VPS hosting पर deploy और maintain करना आसान होता है। अन्य लोग richer client-side experiences के लिए Next.js, SvelteKit, या React-based stacks जैसे modern JavaScript ecosystems चुनते हैं, लेकिन framework churn को लेकर सावधान रहते हैं और ज़ोर देते हैं कि सबसे अच्छा विकल्प अक्सर वही होता है जिसे आप पहले से जल्दी ship करने लायक अच्छी तरह जानते हों।

समग्र निर्णय मानदंड

  • सबसे आम सलाह: वही स्टैक चुनें जिसमें आप पहले से तेज़ और सहज हों, खासकर पैशन प्रोजेक्ट्स या अकेले काम के लिए।
  • द्वितीयक चिंता: “boring”, स्थिर, अच्छी तरह से प्रलेखित टेक चुनें जिसे मेंटेन करना और जिसके लिए हायर करना आसान हो, बजाय सबसे नए ट्रेंड के।
  • लक्ष्यों के बीच अंतर:
    • कुछ ship/finish करना: परिचित monolithic frameworks इस्तेमाल करें।
    • सीखना: जानबूझकर नए stacks चुनें (Rust, Go, HTMX, आदि)।
  • ऐप का प्रकार मायने रखता है:
    • सरल “websites”: minimal JS वाले server-rendered stacks पर जाएँ।
    • अत्यधिक interactive “apps”: SPA या richer client frameworks।

Backends और full-stack frameworks

  • मज़बूत झुकाव इनकी ओर:
    • Ruby on Rails (+ Hotwire/Turbo), अक्सर deployment के लिए Kamal या इसी तरह के tools के साथ।
    • Django / Flask / अन्य Python frameworks, अक्सर HTMX या classic templates के साथ।
    • Laravel / PHP stacks, जिन्हें अक्सर batteries-included SaaS features के लिए सराहा गया।
    • Elixir + Phoenix + LiveView, concurrency और functional style के लिए मूल्यवान।
    • Go के साथ minimal frameworks (Gin, stdlib, छोटे routers) simplicity और performance के लिए।
    • .NET (ASP.NET, Blazor) और Java/Spring/Quarkus/Jakarta EE “boring but solid” typed options के रूप में।
    • Node/TypeScript backends (Express, Nest.js, Fastify, Deno, Bun, SST).

Frontends और interaction models

  • विभाजन इस बात पर:
    • React (अक्सर Next.js, Remix, या T3 के साथ) “industry standard” या कम-से-कम dominant के रूप में।
    • Svelte/SvelteKit, Vue, Angular लोकप्रिय alternatives के रूप में।
    • HTMX, Hotwire, LiveView, classic templates + हल्का JS (Alpine, Stimulus, jQuery) भारी SPAs से बचने के लिए।
  • कुछ लोग WASM-आधारित या desktop-like models (Blazor, Yew, Go+WASM, Pascal→WASM) को पसंद करते हैं।

Databases और persistence

  • PostgreSQL सबसे अधिक उद्धृत default है।
  • SQLite को अक्सर शुरुआती चरणों या काफी भारी read-mostly workloads के लिए भी सुझाया जाता है।
  • अन्य: MySQL/MariaDB, Redis, DynamoDB, Typesense, Meilisearch, LMDB, libsql/Turso, TiDB/YugabyteDB, आदि।

Infrastructure और deployment

  • कई लोग complex cloud setups की तुलना में simple VPS / bare metal के साथ Docker या basic scripts को तरजीह देते हैं।
  • serverless पर मिश्रित राय:
    • Pro: effortless scaling, छोटे शुरुआती user bases के लिए बढ़िया।
    • Con: scale पर costs बहुत बढ़ सकती हैं, monoliths/microservices में वापस migration दर्दनाक होती है।

Modern web development पर sentiment

  • JavaScript ecosystem churn और build tooling को लेकर काफ़ी frustration; इसे “patching the browser/JS” जैसा माना गया।
  • Counterpoint: modern tools (React, Svelte, Vite, TypeScript) समझदारी से इस्तेमाल करने पर DX बेहतर करते हैं।
  • सरल eras (LAMP, Drupal, VB6/Delphi) के लिए nostalgia और integrated, long-lived, monolithic solutions की चाह।
  • AI coding tools को अपरिचित stacks अपनाने की बाधा कम करने वाला माना गया है।