Karson Kalt
.devWriting
- Apr 13, 2025 Connecting The useFilterManager Hook to FilterConfig with Query Parsing Wiring up the FilterManager to a Filter config for modular, well-tested, scalable UI
- Apr 12, 2025 Building Config-Driven Rendering for a Data Explorer with Filtering A walkthrough of how we use a config-driven system to define filter behavior across different data explorer views Covers dynamic SQL-backed filters, input types, and rendering logic—all declaratively mapped and easy to scale
- Apr 10, 2025 Designing an Encapsulated Filter State Manager for Query Building Designing a predictable, composable filter state manager for query-building UIs. Covers API encapsulation, deduplication, and SQL query generation using React hooks.
- Apr 1, 2025 Building a Scalable Architecture Pattern to Migrate Off Supabase and Ship Quickly How I layered our Supabase app to stay modular, testable, and ready to scale
- Mar 18, 2025 Cleaning Up Routing with Type Safety in React A lightweight approach to centralizing and type-checking route definitions using React Router and TypeScript.
- May 1, 2024 Managing View State and Client-side Routing in SPAs A scalable routing approach to address routing challenges and illustrates a common pattern involving a collection rendering and routing in React.
Projects
-
JupiterOne Web Client Rearchitecture 2026 Full architectural overhaul of the JupiterOne web client — new global search palette (⌘K) with live results, a rebuilt GraphCanvas with zoom-based detail scaling and node spotlighting, AI query expansion generating multiple candidates, a universal entity inspector accessible from anywhere with shareable URLs, and a context-aware AI assistant embedded across the platform. Shipped alongside a new frontend architecture to support the scale of these features.
-
JupiterOne Dashboard Query Variables 2025 Query variables for dashboards — richer rollup visualizations and interactive filtering.
-
JupiterOne Data Explorer 2025 Config-driven graph database inspector with AI-powered custom views and dynamic drill-down.
-
JupiterOne Smart Classes 2024 User-defined asset classification for querying critical resources by custom business criteria.
-
JupiterOne Natural Language Querying 2023 AI search converting natural language to our query language, with vector embedding cache.
-
JupiterOne Design System 2022 Component library, design tokens, and theming system to streamline development across teams.
Artifacts
- Inspector component registry with pre-warm makeGetInspectorComponent — type/class → component resolver with a byHint() pre-warm path that avoids import cycles. Jun 25, 2026
- PointerTooltip pattern Cursor tooltip via CSS custom props on :root — no React re-render per move, edge flip in pure CSS. Jun 18, 2026
- ModalBoundary pattern Scoped portal target that exposes --bound-x/y/w/h CSS vars for CSS-only tooltip edge clamping. Jun 9, 2026
- Canary deploy with sticky PR comment S3 deploy on every PR push. Smart path from changed files. HTML comment as zero-cost state storage. Lands reviewers inside the feature. May 26, 2026
- Typed route path union Derive AppRoutePath from the generated route tree — one type alias, zero maintenance, compile-time enforcement. May 5, 2026
- Query waterfall profiler Subscribe to QueryCache events, cluster by start-time, expose on window. Zero component instrumentation. May 5, 2026
- AI agent render structure Chrome splits into RoutableArea and ObserverArea. AI reads TanStack cache, proposes URL writes. May 4, 2026
- Route guard functions beforeLoad composes typed guard functions. Denials throw typed errors. RouteErrorComponent maps them to UX — inside the app layout. Apr 16, 2026
- Authorization guards — one API for flags, entitlements, and ABAC requireFeatureFlag / requireEntitlement / requireAllAbac compose in beforeLoad. Storybook mocks the same session context. Nav gates and route gates can't drift. Apr 16, 2026
- Overrides pattern createOverrideStore<V> — guarded localStorage key-value store, reactive via useSyncExternalStore. Mar 30, 2026
- Route-modal + view transitions Modals are child routes. Close = history.back(). Exit animation via View Transition API. Mar 20, 2026
- Formatter pattern Pure format functions, locale-aware, Intl-cached, em-dash fallback. Mar 18, 2026
- API lib pattern fetcher → queryOptions factory → QueryClient. Typed errors, smart retry, auto-toast. Mar 3, 2026
- Storybook as offline test runner VITE_OFFLINE_MODE routes every queryFn to its co-located mock. One source of truth — Storybook renders it, Vitest runs it, no MSW needed. Feb 27, 2026
- Notify pattern notify.toast / .confirm / .interrupt — imperative, promise-based, no prop drilling. Feb 19, 2026
- Theme flash prevention Inline script sets .dark before first paint. .theme-switching kills all transitions for two rAF frames. Feb 10, 2026
- Method Chaining Exploring method chaining in JavaScript and how it can be used to transform data in a more readable way. Jun 15, 2024
- cleanup-node-modules.sh A simple script to cleanup node_modules from a development directory. Jun 15, 2024
Skills