The stack
Every language, framework, library, protocol, and original primitive across the portfolio.
Summary by theme
Trading & finance. Python, pandas, NumPy, yfinance, Finnhub, TradingView, MLX, scikit-learn, FAISS
AI/ML on-device. Transformers.js, WebGPU, ONNX Runtime Web, Whisper, NLLB, RMBG-1.4, Gemma 4
AI/ML local (Apple Silicon). mlx-lm, MLX, LoRA, FAISS, BGE-small, Qwen 2.5/3.5, Whisper, EGGROLL
AI/ML cloud. Claude API, OpenAI API, Gemini API, AssemblyAI, ElevenLabs, Tavily, Inngest
Browser-native apps. Vanilla HTML/CSS/JS, Web Workers, Web Crypto, IndexedDB, OPFS, File System Access API, WebRTC, BroadcastChannel, postMessage, CompressionStream, sql.js, jsPDF, D3.js, Leaflet
Full-stack web. Next.js 15, React 19, TypeScript, Tailwind v4, FastAPI, Flask, PocketBase, MongoDB, SQLite
macOS & iOS. SwiftUI, AppKit, ScreenCaptureKit, AVAudioEngine, Cloudflare Workers
Protocols & standards. MCP, LSP, WebAuthn, FIDO2, GST (GSTR-1/3B/CMP-08), ISO 3166-2, KDBX4, MessagePack
Infrastructure. Docker, GitHub Actions, Cloudflare (Pages, Workers, R2, KV, STUN), GitHub Pages
§1 · Languages
| Language | Where Used |
| JavaScript | All NakliTechie browser-native tools (Bahi, Mehfil, Tijori, Kabootar, Lunar, BOFH, KanZen, etc.); naklOS SDK; site frontends |
| TypeScript | OpenStock (Next.js), fetch-mcp (MCP server), free-code (Claude Code fork), narada (Vite), nayliOS (Cloudflare Pages), clicky (Cloudflare Worker proxy) |
| Python | Trading backtests & ML (backtest, swing_ml, classify-stock-growth), Paper2Code pipeline, Screener, prashnam-voice, micro-gpt (reference impl), UniversalDeepResearch, Stance verification scripts, nehru/gandhi/rajiv/indira (corpus pipeline + API + training), research data extractors, SSP (shortest paths), matching_engine |
| Go | stance platform (PocketBase extension + cards service), crate-agent (Private Mesh daemon), Anchor service |
| Swift | Stash (iOS app), clicky (macOS menu bar app) |
| C | micro-gpt WASM forward pass (microgpt_inf.c), C+NEON benchmark harness |
| WGSL | Tapasya (WebGPU compute shaders — cross-entropy kernel, batch evaluation) |
| HTML/CSS | Every single-file NakliTechie app (25+ apps); ingenious-machines SVG animations; mechanikon site; nehru/gandhi/rajiv/indira discovery sites |
| SQL | Bahi (SQLite DDL for .khata format), stance (PocketBase schemas), nehru entity enrichment (SQLite FTS5), research data warehouse |
| Bash | Status check scripts, deployment scripts, pipeline orchestrators |
| YAML | nehru curated content (editorials/events/profiles/rebuttals), GitHub Actions, Cloudflare Workers config |
| Markdown | Specs, design docs, READMEs, walkthroughs (ubiquitous) |
| Zig | (Emerging — v86 build toolchain for Karkhana WASM compilation) |
§2 · AI / ML Frameworks & Models
On-Device Inference (Browser)
| Technology | Project | Purpose |
| Transformers.js v4 | BabelLocal, VoiceVault, SnipLocal, LocalMind, SansadSaar, Tapasya, Lunar | Browser-native ML via ONNX runtime. @huggingface/transformers@4/+esm CDN import pattern |
| WebGPU | LocalMind, SansadSaar, Tapasya | GPU-accelerated text generation. Gemma 4 E2B/E4B, causal LM inference |
| AutoModelForCausalLM | LocalMind, SansadSaar | WebGPU text generation (not pipeline()) — q4f16 dtype, device='webgpu' |
| ONNX Runtime (Web) | VoiceVault (Whisper), SnipLocal (RMBG-1.4) | Audio transcription, background removal |
| NLLB (No Language Left Behind) | BabelLocal | 200-language translation |
| Whisper | VoiceVault, nehru (audio transcripts) | Speech-to-text, word-level timestamps |
| RMBG-1.4 | SnipLocal | Background removal model |
| Gemma 4 (E2B/E4B) | SansadSaar, LocalMind | On-device LLM via Transformers.js + WebGPU |
Local Inference (Apple Silicon)
| Technology | Project | Purpose |
| mlx-lm (Apple MLX) | nehru, gandhi, rajiv, indira | Local LLM inference. Qwen 2.5 3B Instruct, 4-bit MLX (~2 GB) |
| MLX | micro-gpt, dflash-mlx | GPU/CPU compute on Apple Silicon. micro-gpt benchmarks across MLX-GPU vs MLX-CPU; dflash-mlx speculative decoding |
| mlx-lm.lora | nehru, gandhi, rajiv, indira | LoRA fine-tuning. num-layers=8, batch=1, grad-accum=4, lr=5e-5, mask-prompt |
| Qwen 2.5 3B Instruct | nehru + sibling projects | Base model for citation-grounded Q&A. 4-bit MLX quantized |
| Qwen3.5 (4B/9B/27B/35B-A3B) | dflash-mlx | Target models for speculative decoding benchmarks |
| BGE-small-en-v1.5 | nehru + siblings | 384-dim embedding model, MIT license. FAISS indexing |
| FAISS (IndexFlatIP) | nehru + siblings | Exact inner-product vector search over normalized embeddings |
| Whisper Large-v3 | nehru | Audio transcription with word-level timestamps |
Cloud / API-Based AI
| Technology | Project | Purpose |
| Anthropic Claude API | SansadSaar (BYOK), clicky, Stash | Chat, vision, streaming SSE |
| OpenAI API | SansadSaar (BYOK), clicky (fallback) | Alternative LLM provider |
| Google Gemini API | SansadSaar (BYOK), OpenStock (welcome emails, news summaries via Inngest) | LLM and AI generation |
| Groq / Ollama / OpenRouter | SansadSaar (BYOK providers) | Alternative inference providers |
| Gemini via Inngest | OpenStock | AI-powered personalized email generation |
| NVIDIA NGC API | UniversalDeepResearch | LLM backend for research |
| Tavily API | UniversalDeepResearch | Web search for research pipeline |
| AssemblyAI (streaming) | clicky | Real-time speech-to-text via WebSocket. Turn-based transcripts |
| ElevenLabs TTS | clicky | Text-to-speech for AI companion (eleven_flash_v2_5) |
ML Training & Data
| Technology | Project | Purpose |
| LoRA / QLoRA | nehru, gandhi, rajiv, indira | Parameter-efficient fine-tuning |
| EGGROLL (Evolution Strategies) | Tapasya | Browser-based LM training via evolution strategies. Forward-only, no backprop |
| MiniBatchKMeans + c-TF-IDF | nehru | Topic clustering over 79K chunks |
| SplitMix32 + Box-Muller | Tapasya | Reproducible counter-based RNG for evolution strategies |
| IndicTrans2 | prashnam-voice | English-to-Indic translation model (AI4Bharat, MIT license) |
| Indic Parler-TTS | prashnam-voice | Indic language TTS model (AI4Bharat, Apache-2.0) |
| BPE Tokenizer | Tapasya | Browser-native byte-pair encoding for LM training corpus |
| Tesseract OCR | ingenious-machines | OCR for scanned engineering textbook pages |
| PyMuPDF (fitz) | ingenious-machines, Paper2Code | PDF extraction and processing |
§3 · Frameworks & Runtimes
Web Frameworks
| Technology | Project | Purpose |
| Next.js 15 (App Router) | OpenStock, UniversalDeepResearch (frontend) | Full-stack React framework. Turbopack, server actions |
| FastAPI + uvicorn | nehru + siblings (API server), UniversalDeepResearch (backend), qissa | Async Python API. Pydantic validation. /qa, /search, /citation, /health |
| Flask | image_gen_website | Lightweight Python web app |
| HTMX | qissa (planned) | Server-driven UI for operator dashboard |
| Vite | narada | Frontend build tool |
Mobile / Desktop Frameworks
| Technology | Project | Purpose |
| SwiftUI | clicky, Stash | macOS + iOS native UI. Menu bar apps, Swift Charts |
| AppKit | clicky | macOS-specific: NSPanel (floating panels), NSStatusItem (menu bar), CGEvent taps |
| ScreenCaptureKit | clicky | macOS 14.2+ screen capture, multi-monitor support |
| AVAudioEngine | clicky | Microphone capture for push-to-talk |
Static Sites
| Technology | Project | Purpose |
| Vanilla HTML/CSS/JS | nehru site (14 pages), mechanikon, ingenious-machines, all NakliTechie apps | No framework, no build step |
| Charts: Plotly.js | micro-gpt (report) | Interactive benchmark visualization |
| Charts: D3.js | nehru (correspondents bubbles) | Force-directed graph visualization |
| Maps: Leaflet | nehru (places page) | Interactive place map with Survey-of-India boundary overlay |
| Cloudflare Pages | naklios.dev (naklOS), mechanikon.naklitechie.com | Static hosting and deployment |
§4 · Databases & Storage
| Technology | Project | Purpose |
| SQLite | Bahi (.khata ledger), matching_engine, nehru (_data/nehru.db), research (_data/research.db), stance (PocketBase) | Embedded database. Primary storage for local-first apps |
| SQLite FTS5 | nehru | Full-text search over entity data |
| sql.js (WASM SQLite) | Bahi, BOFH (SQL module) | SQLite in the browser via WebAssembly |
| IndexedDB | All browser-native apps (Mehfil, Tijori, Lunar, SansadSaar, etc.) | Browser persistence. Event-sourced replay, encrypted storage, offline-first |
| OPFS (Origin Private File System) | Bahi, Tapasya, VaultMind, Tijori, NakliPoster, KanZen | Crash-recovery staging, checkpoint storage. Browser-private "scratch" space |
| File System Access API | Bahi (.khata on disk), NakliPoster (collections as JSON), VaultMind, KanZen (.kanzen.json), Kagaz (.kagaz zip), Books (library folder) | User-owned files on disk. showDirectoryPicker(), showSaveFilePicker(), FileSystemWritableFileStream |
| MongoDB + Mongoose | OpenStock | Document database. User data, watchlists, session storage |
| PocketBase | stance | Embedded Go backend with SQLite, auth, realtime subscriptions, admin UI |
| ChromaDB | R2R | Vector database for RAG system |
| Content-addressed cache | prashnam-voice (~/.cache/prashnam-voice/audio/) | Audio file caching with automatic invalidation on recipe changes |
§5 · Messaging & Real-Time
| Technology | Project | Purpose |
| WebRTC | Mehfil (P2P chat), Kabootar (P2P file transfer) | Peer-to-peer data channels. Ordered, reliable, framed binary transport |
| Cloudflare STUN | Mehfil, Kabootar | ICE candidate gathering. stun:stun.cloudflare.com:3478 |
| WebSocket | clicky (AssemblyAI streaming transcription), NakliPoster (WebSocket client) | Real-time bidirectional communication |
| Server-Sent Events (SSE) | clicky (Claude streaming chat) | Server-to-client streaming of LLM responses |
| BroadcastChannel | Bahi (concurrent-tab lock) | Cross-tab communication within same origin |
Web Workers (blob URL, type: 'module') | All NakliTechie AI apps | Heavy compute off main thread. Transformers.js inference, WASM execution |
| postMessage | naklOS (immersive mode SDK) | Cross-origin iframe communication protocol (naklios:ready, naklios:title, naklios:close, naklios:beforeclose, naklios:theme) |
| CompressionStream (deflate-raw) | Mehfil | SDP compression for QR invite URLs |
| Cloudflare Workers | clicky (API proxy), mehfil (relay), naklOS (mirror sync), Kabootar (relay) | Edge functions. API key proxy, relay, WebSocket bridge, CRON |
§6 · Protocols & Standards
| Protocol / Standard | Project | Purpose |
| MCP (Model Context Protocol) | fetch-mcp, mcp-demo | Standardized tool interface for AI models. Server exposes tools (fetch_html, fetch_json, fetch_txt, fetch_markdown) |
| LSP (Language Server Protocol) | free-code (bundled) | Code intelligence. Go-to-definition, references, diagnostics |
| WebAuthn / PRF Extension | Tijori | Hardware-backed second factor for password vault (YubiKey, Touch ID, passkey) |
| FIDO2 / CTAP2 | Tijori (via WebAuthn) | Passwordless + second-factor authentication |
| TOTP (RFC 6238) | Tijori | Time-based one-time password generation (entry type) |
| AES-256-GCM | Tijori, Mehfil, Lunar, Nemawashi, NakliPoster, KanZen | Symmetric encryption for stored/transmitted secrets. Content encryption key wrapping |
| Ed25519 | Mehfil | Digital signatures. Sign/verify via Web Crypto (native in Chrome 113+ / Firefox 130+ / Safari 17+) |
| X25519 ECDH | Mehfil | Key agreement for per-channel key exchange |
| ECDSA P-256 | Bahi | Per-entry signatures on audit log |
| SHA-256 hash chain | Bahi (audit log), Stance (stand revision chain), Lunar (vault integrity) | Append-only integrity verification. Linked hash of previous entry |
| PBKDF2-SHA256 | Tijori (600K iters), Mehfil, Lunar (250K iters) | Key derivation from passphrase. Configurable iteration count |
| Argon2id | Tijori (v2), Lunar (planned) | Modern memory-hard KDF. Used alongside PBKDF2 |
| Web Crypto API | All encrypted browser-native apps | Native cryptographic primitives: subtle.encrypt, subtle.sign, subtle.deriveKey, subtle.generateKey. No wasm-crypto dependency |
| MessagePack | Mehfil | Canonical binary serialization. ~250-line codec written from scratch (npm lib doesn't guarantee canonical encoding) |
| Base64url (no padding) | Mehfil | SDP + invite URL encoding |
| ISO 3166-2:IN | Bahi | Indian state codes. Canonical FK format for GST compliance |
| GSTIN | Bahi | Indian GST identification number. Validation, format parsing |
| GSTR-1 / GSTR-3B / CMP-08 | Bahi | Indian GST return formats. Local JSON+CSV generation |
| KDBX4 (KeePass) | Tijori | Password database export format (via vendored kdbxweb) |
| YJS | Mehfil (lazy-loaded) | CRDT for collaborative editing support |
| WebTorrent / BitTorrent | (Planned — IDEAS.md) | P2P content distribution in browser |
| EIP-4361 (Sign in with Ethereum) | (Planned — stances) | Cryptographic identity verification |
| Nostr | (Planned — stances) | Decentralized identity protocol |
§7 · Original Primitives & Systems (Built from Scratch)
The Private Mesh (private-mesh-universe/)
| Primitive | Description |
| Fabric Protocol (fabric-spec-001) | Core protocol: identity, namespaces, vault, grants, caveats. HTTP + JSON |
| Vault (Durable) | SQLite + filesystem on nakli-hub, R2 + KV on nakli-cf-worker. Store-and-forward with two profiles |
| Vault (Ephemeral) | Bounded RAM ring buffer on nakli-hub. LAN-anchor pattern. No persistence |
| FIF (Fabric Identity Format) | Persistent identity model: passphrase-derived key material, cross-tool, delegable |
| Caveats | Scoped delegation: narrow grants to specific actions, time windows, or resources |
| CRATE-PAIR | Pairing flow for crate-style device linking |
| nakli-local-bridge | Thin mDNS helper for LAN discovery. Does NOT process Fabric Protocol, does NOT hold state |
| nakli-hub | Go daemon for dual-profile vault (durable/ephemeral) |
| nakli-cf-worker | Cloudflare Worker implementing full Fabric Protocol on R2 + KV |
| crate-agent | Go daemon for mesh-side operations on desktop |
| 5-point Fitness Checklist | Decision framework for whether an app should adopt the fabric (identity, delegation, transport, key isolation, bundle size) |
The Mehfil Protocol (Sibling Architecture)
| Primitive | Description |
| Tag-byte framing | Binary packet format: 0x01 (manifest), 0x02 (chunk), 0x05 (done). Used by Kabootar too |
| Canonical MessagePack codec | ~250 lines, guarantees canonical encoding for hashing/signing |
| mehfil-bridge | Thin relay helper. Does not process protocol, does not hold state |
| relay-cloudflare | Cloudflare Worker for WebRTC signaling + relay. 258 lines. Reused as template by Kabootar |
| Visual hash trust card | Deterministic 4-shape × 8-color fingerprint from Ed25519 public key bytes |
| Envelope format | Signed envelope: member.join, member.welcome, workspace messages. Ed25519 + AES-GCM |
| Event-sourced replay | 11-store IndexedDB schema. Messages replayed from audit trail on reload |
| SDP compression | deflate-raw via CompressionStream before base64url encoding. ~1KB SDP → ~1.2KB invite URL |
The Bahi Accounting Architecture
| Primitive | Description |
| .khata file format | Documented open format for double-entry accounting. SQLite DDL + manifest schema + audit log algorithm published in khata-format.md |
| Snapshot pattern | Every posted document freezes customer/vendor/item/rate snapshots at posting time. Never re-resolves on reprint. 8 invariants |
| Audit log (cryptographic chain) | Append-only. SHA-256 hash chain + ECDSA P-256 signatures + per-entry origin. Verified on every file open |
| Per-rate sub-accounts | Auto-create getOrCreateRateAccount(db, parent, ratePct). Seeds parent accounts only, grows organically |
| OPFS crash recovery | Staging mirror: write to OPFS first, then to disk, recover orphans on next open |
| createWritable atomicity | Leverages Chromium's atomic file swap on FileSystemWritableFileStream.close() |
| Schema migration runner | tryAddColumn helper. Idempotent per-version migrations on file open. Schema went to v5 |
| Tax rate lifecycle | gstRates table with validFrom/validTo. Date-parameterized lookups. No hardcoded enums |
| Wrong-file detection (5 layers) | Identity banner, change-history-aware workspace check, fingerprinted exports. 3 of 5 layers shipped |
| Multi-bucket snapshot retention | Set-union dedupe: last 10 saves + last 7 daily + last 12 monthly + permanent. Manual/FY-close are never pruned |
| Synthetic batch (WAC/FIFO) | Same batches table for both methods. WAC uses single synthetic row; FIFO creates per-inbound-row batches |
Other Original Primitives
| Primitive | Project | Description |
| Two-slot IndexedDB layout | Lunar | Plausible deniability: primary + decoy vault slots, externally indistinguishable, passphrase tried against both in random order |
| Bayesian cycle prediction | Lunar | Normal-normal conjugate update: N(28, 4²) clinical prior, predictive SD = √(σ_post² + σ²). Moving-average fallback |
| EGGROLL training engine | Tapasya | Forward-only evolution strategies in WebGPU. Pop_size perturbed copies, z-score normalized fitness, counter-based RNG |
| LUT precomputation + WASM | micro-gpt | (token, pos) → embedding LUT computed outside timed loop for benchmarks |
| Tape-replay rollback | dflash-mlx | Innovation tape + custom Metal kernel for verified-token rollback in speculative decoding. Avoids full state snapshot/restore |
| JIT SDPA 2-pass | dflash-mlx | Custom Metal attention kernel for long-context verify (N >= 1024). Numerically aligned with stock MLX |
| 4-shape × 8-color visual hash | Mehfil | 32-combination deterministic trust visual from 16 bytes of Ed25519 fingerprint |
| Capability-tiered receiver | Kabootar | Tier A (showSaveFilePicker + streaming write) vs Tier B (in-memory Blob + download). Badged from first paint |
| WebRTC backpressure pattern | Kabootar, Mehfil | bufferedAmount watermark at 1 MB, bufferedamountlow at 256 KB. One-shot drain via await new Promise |
| Compact paste-back codes | Nemawashi | `NW:Name:2,3,1 | 1,3,2` — single-message scores shared via group chat. No backend |
| Two-key fairness sort | Nemawashi | Primary by total score (utilitarian), secondary by min individual score (egalitarian). Tie-break by least-happy person |
| Date-parameterized GST rates | Bahi | Rates with validFrom/validTo. Backdated invoices use historical rates. Auto-appear on activation |
| Per-item inventory flag | Bahi | Per-item enable_inventory. Service-only items skip stock hooks. Granularity beats company-wide toggle |
| Inter-GSTIN stock transfer format | Bahi | JSON file exchanged between two .khata files. Cross-file workflow via existing transport (email/WhatsApp/Drive) |
§8 · Cryptography & Security
| Technology | Project | Purpose |
| Web Crypto API | All browser-native encrypted apps | Native subtle crypto. Ed25519 (Chrome 113+), ECDSA, AES-GCM, PBKDF2, SHA-256, X25519 |
| AES-256-GCM | Tijori, Mehfil, Lunar, Nemawashi, NakliPoster, KanZen | Content encryption. 96-bit IV, 128-bit auth tag |
| Argon2id | Tijori | Memory-hard KDF for vault passphrase |
| PBKDF2-SHA256 (250K-600K iterations) | Tijori, Mehfil, Lunar | Key derivation with configurable work factor |
| Ed25519 | Mehfil | Identity signing. Native Web Crypto |
| ECDSA P-256 | Bahi | Per-entry signatures on audit log entries |
| X25519 ECDH | Mehfil | Per-channel key exchange. Key agreement for workspace root key wrapping |
| WebAuthn PRF | Tijori | Hardware key second factor (YubiKey, Touch ID) |
| SHA-256 hash chain | Bahi, Stance, Lunar | Append-only integrity. Linked hash prevents retroactive tampering |
| Content Security Policy | SansadSaar, OpenStock middleware | Inline script nonce + strict-dynamic for XSS protection |
| Permissive sandbox (sandbox attribute) | naklOS cross-origin apps | Privacy guarantee: no data exfiltration, no top-navigation, no scripts loading from outside |
§9 · Testing & Quality
| Technology | Project | Purpose |
| pytest | nehru + siblings, prashnam-voice, swing_ml, sssp, matching_engine, bahi | Python test framework. Fixtures, parametrize, coverage |
| Playwright | narada, SansadSaar (screenshots) | Browser automation. E2E tests, screenshot capture |
| Vitest | narada | Vite-native test runner |
| Jest | fetch-mcp | JavaScript test runner |
| CodeRabbit | OpenStock | Automated PR review |
| .pytest-cov | swing_ml, sssp | Code coverage reporting |
| Pre-commit hooks | nehru + siblings | Code quality gates before commit |
| Manual smoke test playbooks | All browser-native apps | In-browser verification documented per project |
§10 · DevOps & Infrastructure
| Technology | Project | Purpose |
| Docker / Docker Compose | OpenStock (MongoDB), classify-stock-growth, matching_engine | Containerized services |
| GitHub Actions | SansadSaar/parliamentwatch-data (daily scraper + Pages deploy), OpenStock, naklOS (mirror sync) | CI/CD, scheduled tasks, Pages deployment |
| GitHub Pages | naklitechie.github.io, SansadSaar data mirror, parliamentwatch-data | Static site hosting |
| Cloudflare Pages | naklios.dev, mechanikon.naklitechie.com, hueandcry.naklitechie.com | Static site with Pages Functions |
| Cloudflare Workers | clicky (API proxy), mehfil (relay), naklOS (mirror dispatch) | Edge compute |
| Cloudflare R2 + KV | Private Mesh (nakli-cf-worker) | Durable cloud storage for fabric protocol |
| Cloudflare STUN | Mehfil, Kabootar | WebRTC NAT traversal |
| Wrangler | naklOS, clicky | Cloudflare Workers CLI |
| Nginx | OpenStock (via Docker) | Reverse proxy |
| Inngest | OpenStock | Background job queue. Event-driven workflows, CRON scheduling |
| Maker (Makefile) | nehru + siblings, sssp | Build automation (make api, make site, make rag, make enrich) |
§11 · Package Managers & Build Tools
| Tool | Project | Purpose |
| pnpm | narada, OpenStock, naklOS, fetch-mcp | Node package manager (preferred). Workspaces |
| npm | OpenStock (fallback), fetch-mcp, clicky worker | Node package manager |
| bun | free-code (build runtime), sites/naklitechie | JavaScript runtime + bundler |
| pip / uv | nehru + siblings, prashnam-voice, qissa, swing_ml, sssp | Python package management |
| emscripten (emcc) | micro-gpt (WASM build) | C → WebAssembly compilation. -O3 -msimd128 -ffast-math |
| Vite | narada | Frontend bundler |
| Turbopack | OpenStock (Next.js) | Rust-based bundler |
§12 · UI / Design Systems
| Technology | Project | Purpose |
| Tailwind CSS v4 | OpenStock, narada | Utility-first CSS framework |
| shadcn/ui | OpenStock | Component library built on Radix UI |
| Radix UI | OpenStock | Accessible React primitives |
| Lucide | OpenStock | Icon library |
| shadcn/ui (cmdk) | OpenStock | Command palette (⌘K) |
| Rangrez palette | SansadSaar, Kagaz | Culturally-grounded color system. Used across NakliTechie apps |
| Rangrez (Kagaz palette engine) | Kagaz | 240 colors across 22 families (India N/W/E/S, Kashmir, Tribal, Sarees, Japan, China, Mexico, etc.). 57 curated combinations. 15 layout render functions. 8 typography pairings |
| Mumbai art deco palette | Books | Cream facade · teal-black ink · burnt sienna |
| LUTYENS palette | SansadSaar | Sandstone + kesari saffron + ink |
| next-themes | OpenStock | Theme switching (dark/light) |
| Ink (React for CLI) | free-code | Terminal UI rendering |
| Commander.js | free-code | CLI argument parsing |
| Zod v4 | free-code | Schema validation |
§13 · Documentation & Specification
| Tool | Project | Purpose |
| specify (spec-kit) | nehru, gandhi, rajiv, indira, qissa, narada | Locked design docs: constitution, spec, plan, research, data-model, contracts, quickstart, tasks |
| Markdown | Every project | READMEs, design docs, walkthroughs |
| Mermaid diagrams | Select projects | Architecture diagrams |
| OpenAPI / REST API docs | prashnam-voice, matching_engine, stance | API documentation |
| CLAUDE.md | ~20 projects | AI assistant context. Standardized per-repo orientation for Claude/agent sessions |
| AGENTS.md | clicky | Cross-agent instructions (Claude Code, Cursor, Copilot, Gemini CLI) |
§14 · External Data Sources & APIs
| Source | Project | Purpose |
| Finnhub | OpenStock | Stock symbols, company profiles, market news |
| TradingView Widgets | OpenStock | Advanced charts, heatmap, quotes, symbol info |
| Yahoo Finance (yfinance-cache) | Screener, backtest, swing_ml | Historical and real-time market data |
| CourtListener REST API | Mahalla | US case law citation validation |
| Parliamentwatch (pranaykotas) | SansadSaar, SansadSaar data mirror | Indian Parliamentary committee reports |
| nehrumanin.nic.in | nehru | Selected Works of Nehru source PDFs |
| archive.org | nehru (audio recordings), ingenious-machines (sources) | Public domain media |
| RBI Handbook of Statistics | research | Indian economic time series |
| WRRI (Wages and Rural Returns India) | research | Rural wage data 2015-2024 |
| Reingold & Dershowitz (Calendrical Calculations) | mechanikon | Calendar algorithms ported from reference text |
| Hugging Face (naklitechie org) | prashnam-voice (model mirrors), all NakliTechie AI apps | Model hosting: IndicTrans2, Indic Parler-TTS, Transformers.js models |
| Cloudflare STUN | Mehfil, Kabootar | stun:stun.cloudflare.com:3478 |
§15 · Developer Tools & IDEs
| Tool | Project Context |
| Claude Code / free-code | Primary development environment across all projects |
| Cline / Roo Code | Alternate environments (cline_muse directory) |
| Cursor | Referenced in AGENTS.md for clicky |
| VS Code | General editing |
| Xcode | clicky, Stash (macOS/iOS development) |
| Postman | API testing (Mu.postman_collection.json) |
| ESLint | OpenStock, narada |
| Prettier | narada |
| TypeScript strict mode | OpenStock, fetch-mcp, narada |
The portfolio isn't one stack. It's a stack per kind of work — markets, AI infrastructure, browser-native apps, mesh fabric, historical record, museum, data.
Chirag Patnaik · May 2026