ๆƒฏๆ€ง่šๅˆ ้ซ˜ๆ•ˆ่ฟฝ่ธชๅ’Œ้˜…่ฏปไฝ ๆ„Ÿๅ…ด่ถฃ็š„ๅšๅฎขใ€ๆ–ฐ้—ปใ€็ง‘ๆŠ€่ต„่ฎฏ
้˜…่ฏปๅŽŸๆ–‡ ๅœจๆƒฏๆ€ง่šๅˆไธญๆ‰“ๅผ€

ๆŽจ่่ฎข้˜…ๆบ

ๆœ‰่ตžๆŠ€ๆœฏๅ›ข้˜Ÿ
ๆœ‰่ตžๆŠ€ๆœฏๅ›ข้˜Ÿ
G
Google Developers Blog
T
Tailwind CSS Blog
่ฎฉๅฐไบงๅ“็š„็‹ฌ็ซ‹ๅ˜็Žฐๆ›ด็ฎ€ๅ• - ezindie.com
่ฎฉๅฐไบงๅ“็š„็‹ฌ็ซ‹ๅ˜็Žฐๆ›ด็ฎ€ๅ• - ezindie.com
ไบบไบบ้ƒฝๆ˜ฏไบงๅ“็ป็†
ไบบไบบ้ƒฝๆ˜ฏไบงๅ“็ป็†
J
Java Code Geeks
P
Proofpoint News Feed
V
Visual Studio Blog
็ˆฑ่Œƒๅ„ฟ
็ˆฑ่Œƒๅ„ฟ
The Cloudflare Blog
ๅš
ๅšๅฎขๅ›ญ - ๅถๅฐ้’—
V
V2EX
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
M
MIT News - Artificial intelligence
Microsoft Security Blog
Microsoft Security Blog
ๅš
ๅšๅฎขๅ›ญ - ่‚ๅพฎไธœ
H
Help Net Security
B
Blog
OSCHINA ็คพๅŒบๆœ€ๆ–ฐๆ–ฐ้—ป
OSCHINA ็คพๅŒบๆœ€ๆ–ฐๆ–ฐ้—ป
ๅš
ๅšๅฎขๅ›ญ - ใ€ๅฝ“่€็‰นใ€‘
้‡
้‡ๅญไฝ
ๅฎ็މ็š„ๅˆ†ไบซ
ๅฎ็މ็š„ๅˆ†ไบซ
WordPressๅคงๅญฆ
WordPressๅคงๅญฆ
้’›ๅช’ไฝ“๏ผšๅผ•้ข†ๆœชๆฅๅ•†ไธšไธŽ็”Ÿๆดปๆ–ฐ็Ÿฅ
้’›ๅช’ไฝ“๏ผšๅผ•้ข†ๆœชๆฅๅ•†ไธšไธŽ็”Ÿๆดปๆ–ฐ็Ÿฅ

Hacker News: Show HN

PurrrrrFocus: Pomodoro Timer App - App Store Workflow Engine โ€” Multi-Step Orchestration for Bun RapidPhoto: Pro Photo Editor App - App Store GitHub - DheerG/swarms: Achieve extraordinary results with claude code across a variety of tasks SPICE simulation โ†’ oscilloscope โ†’ verification with Claude Code โ€” Lucas Gerads Show HN: VCoding โ€“ A 5 MB native Windows IDE with no dynamic dependencies Show HN: LLMs don't hallucinate because they're bad at math, it's the format GitHub - Agent-FM/agentfm-core: AgentFM is a peer-to-peer network that turns everyday computers into a decentralized AI supercomputer. AgentFM lets you run massive AI workloads directly across a global mesh of idle CPUs and GPUs. Show HN: Tracking Top US Science Olympiad Alumni over Last 25 Years GitHub - Potarix/agent-hub: One place to talk to all your agents Show HN: Runtime security for AI agents(injection,tool abuse, data exfiltration) GitHub - dubeyKartikay/lazyspotify: Terminal Spotify client for macOS and Linux GitHub - the-banana-tool/king-louie: Easy to use GUI Personal AI Assistant. Win/Linux/Mac. Show HN I made my vacation rental bookable by AI agentsโ€“no Airbnb, 0% commission GitHub - basteez/jsf-autoreload: maven plugin to enable hot reload on jsf projects uvm32/hosts/host-gdbstub at main ยท ringtailsoftware/uvm32 GitHub - labsai/EDDI: Config-driven engine that turns JSON into production-grade AI agents. Multi-agent orchestration, 12+ LLM providers, MCP/A2A protocols, RAG, persistent memory, and enterprise compliance (EU AI Act, GDPR, HIPAA). Built on Quarkus. GitHub - glitchnsec/fortyone-oss: AI Executive Assistant Platform Quickstart | Alien GitHub - muxshed/shed: One stream in, or many. Every destination, simultaneously. No cloud middleman, no per-channel fees, no limits. GitHub - ocrbase-hq/ocrbase: ๐Ÿ“„ PDF/IMG ->.MD/JSON Document OCR API for PaddleOCR and GLMOCR. Self-hostable. GitHub - impactjo/home-memory: MCP server that lets your AI assistant remember everything about your home. GitHub - Sets88/dbcls: DbCls is a powerful terminal database client that supports various databases GitHub - neptun2000/heor-agent-mcp GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh RollQuation: Math Puzzles - Apps on Google Play GitHub - dropbox/witchcraft Show HN: Agent-cache โ€“ Multi-tier LLM/tool/session caching for Valkey and Redis GitHub - opentalon/opentalon: OpenTalon is an open-source platform built from the ground up in Go as a robust alternative to OpenClaw LinkedInโ„ข ่ŒไฝๆŠ“ๅ–ๅทฅๅ…ท - Chrome ๅบ”็”จๅ•†ๅบ—
GitHub - Miladxsar23/kip-pattern: ๐Ÿ›ก๏ธ Keep It Private (KIP...
milad_shiria ยท 2026-05-04 ยท via Hacker News: Show HN

A robust architectural pattern for React that enforces strict encapsulation, eliminates "God Files," and treats every component as an independent micro-domain.

React TypeScript

โŒ The Problem

As React applications grow, components tend to follow two destructive paths:

  1. The God File: A single .tsx file inflates to 1000+ lines containing UI, hooks, interfaces, and utilities.
  2. Leaky Internals: Developers split the file, but put component-specific utilities and types in global folders (e.g., src/utils), polluting the global namespace.

โœ… The KIP Solution

KIP (Keep It Private) solves this by enforcing Separation of Concerns (SoC) inside the component's folder while keeping those concerns strictly hidden from the rest of the app.

The Golden Rules

  1. _ means PRIVATE: Any file with an underscore prefix (e.g., _hook.ts) is strictly internal. Direct imports from outside the folder are forbidden.
  2. index.ts is THE GATE: This is the only API boundary. It gathers the internal pieces and explicitly exports only what the outside world is allowed to consume.

๐ŸŒŸ How KIP Solves the React Scaling Crisis:

  • True Separation of Concerns (SoC): No more 1000-line files. Your logic is cleanly separated into specialized micro-files, making debugging incredibly focused.
  • The index.ts API Boundary: Your component acts like a strict NPM package. index.ts ONLY exports what the rest of the application needs to know. The dirty work remains hidden.
  • Zero Global Namespace Pollution: That weird utility function that formats a specific table date? It stays in _util.ts. Your global src/utils folder is now strictly reserved for truly global helpers.
  • Instant Scalability: When a component grows, it doesnโ€™t rot. It simply utilizes its private ecosystem.

๐Ÿ“ˆ Progressive Scaling

KIP is highly flexible. It scales progressively based on the component's complexity. You only use the files you need.

Level 1: Simple Component (Button)

๐Ÿ“‚ src/components/Button/
 โ”œโ”€โ”€ ๐Ÿ“„ _type.ts       # ButtonProps, VariantTypes
 โ”œโ”€โ”€ ๐Ÿ“„ _component.tsx # Actual JSX
 โ””โ”€โ”€ ๐Ÿ“„ index.ts       # export { Button } from './_component';

Level 2: Medium Component (LoginForm)

๐Ÿ“‚ src/components/LoginForm/
 โ”œโ”€โ”€ ๐Ÿ“„ _hook.ts       # useLoginForm()
 โ”œโ”€โ”€ ๐Ÿ“„ _util.ts       # validateEmail(), formatPassword()
 โ”œโ”€โ”€ ๐Ÿ“„ _type.ts       # LoginFormProps, FormState
 โ”œโ”€โ”€ ๐Ÿ“„ _style.ts      # Component styles
 โ”œโ”€โ”€ ๐Ÿ“„ _component.tsx # The UI tying it together
 โ””โ”€โ”€ ๐Ÿ“„ index.ts       # Gate

Level 3: Complex Component (DataGrid)

๐Ÿ“‚ src/components/DataGrid/
 โ”œโ”€โ”€ ๐Ÿ“„ _hook.ts       # Data fetching, sorting logic
 โ”œโ”€โ”€ ๐Ÿ“„ _util.ts       # Data transformers
 โ”œโ”€โ”€ ๐Ÿ“„ _type.ts       # Complex generic types
 โ”œโ”€โ”€ ๐Ÿ“„ _store.ts      # Local component state (Zustand/Context)
 โ”œโ”€โ”€ ๐Ÿ“„ _style.ts      # Component styles
 โ”œโ”€โ”€ ๐Ÿ“„ _slots.tsx     # Internal sub-components (Row, Cell, Header)
 โ”œโ”€โ”€ ๐Ÿ“„ _component.tsx # Main Wrapper
 โ””โ”€โ”€ ๐Ÿ“„ index.ts       # Gate

๐ŸŒ Framework Agnostic

While the examples in this repository use React and TypeScript, the KIP Pattern is completely framework-agnostic. It is an architectural principle of encapsulation that can be applied to almost any modern tech stack.

The core formula of _scope.ext (private internals) + index.ext (public gatekeeper) is universal. Here is how KIP translates to other ecosystems:

Vue.js

Instead of dumping everything into a massive .vue file, split complex logic:

UserProfile/
โ”œโ”€โ”€ _types.ts
โ”œโ”€โ”€ _useProfile.ts (Composable)
โ”œโ”€โ”€ _ProfileAvatar.vue (Internal component)
โ””โ”€โ”€ index.vue (The Gate - public component)

Node.js / Backend (Express / NestJS)

Keep your domain logic cleanly separated and hide internal database queries or helper functions:

AuthModule/
โ”œโ”€โ”€ _utils.ts (Hash logic, token generation)
โ”œโ”€โ”€ _queries.ts (DB interactions)
โ”œโ”€โ”€ _types.ts (Internal DTOs)
โ””โ”€โ”€ index.ts (Exports only the Auth Controller or public Service methods)

Angular

Angular already encourages modularity, but KIP can be applied inside feature folders to hide internal pipes, directives, or sub-components that shouldn't be imported by other modules.

The Universal Rule

No matter the language or framework (JavaScript, Python, Go, etc.), the rule remains the same: If a file starts with _, it belongs to that folder. Do not import it from the outside.

๐Ÿš€ Enforcing KIP in Your Team

To ensure developers don't bypass the index.ts Gate, you can enforce KIP using ESLint no-restricted-imports rules to ban */_*.ts imports from outside their own directories.

๐Ÿ› ๏ธ Usage / Boilerplate

Clone this repository to see the KIP pattern implemented in a modern Vite + React + TypeScript + ESLint environment.

bash git clone https://github.com/Miladxsar23/kip-pattern.git cd kip-pattern-react npm install npm run dev

๐Ÿค Contribution

Have ideas to make KIP even better? Feel free to open an issue or submit a PR! Let's build cleaner, more encapsulated React apps together.