Web TippsUse custom web fonts in Google Sheets charts(08.09.2026 um 17:05 Uhr)
Web TippsIntroducing the new 1Password App for Google Chat(08.09.2026 um 18:02 Uhr)
Web TippsUse custom web fonts in Google Sheets charts(08.09.2026 um 17:05 Uhr)
Web TippsIntroducing the new 1Password App for Google Chat(08.09.2026 um 18:02 Uhr)

🔧 Programmierung 🕛 vor 1 Monat 5 Min Lesezeit SECURITY-FEED
0

Crucible v1.2 — Interactive TUI, Component Lifecycle Commands, React Native, and Security Hardening

↗ Quelle (dev.to)
🗣️ Stimme:
📑 Inhaltsübersicht

TL;DR: Crucible is a code generation CLI that scaffolds production-ready components (React / Vue / Angular / React Native) directly into your project. You own every generated file. v1.2 ships a full terminal UI wizard, five component lifecycle commands, a React Native target, and a round of security hardening. Also — I'm deep in a second project: Min-Mozhi, the first Tamil-rooted hardware description language.







What is Crucible?



One line: it's like shadcn/ui, but framework-agnostic and engine-driven.




CODE
npx crucible add Button
# → Button/Button.tsx
# → Button/Button.module.css
# → Button/README.md
# Zero runtime deps. Pure code you own.






Crucible generates idiomatic source files for React, Vue, and Angular (and now React Native) from a single component spec. Once generated, the files live in your project — no package import, no black box. The CLI is a devDependency and has zero runtime footprint in your bundle.









What's new in v1.2






crucible ui — TUI wizard






CODE
crucible ui   # aliases: wizard, tui






A menu-driven interactive console built on @inquirer/prompts (zero new deps). From the console you can:




  • Browse all available components and their metadata

  • Run a guided install: pick framework → style system → theme → components → Storybook stories

  • Run diff / status / update / remove



Bare crucible still prints help; the console only runs when you invoke it explicitly.






5 new lifecycle commands






CODE
crucible info Button           # metadata: variants, props, deps, peer deps
crucible info Button --deps-tree # hierarchical dependency tree
crucible status # drift report (ok / modified / missing); CI-friendly --json
crucible diff Button # preview what regeneration would change
crucible update # regenerate all tracked components (preserves edits)
crucible update Button --force # regenerate + overwrite local edits
crucible remove Button # delete + untrack; warns on dependents
crucible remove Button --dry-run






The status command is particularly useful for CI: it exits non-zero when tracked files are missing or when your config or engine has drifted from what generated the files.






React Native target (Beta)






CODE
crucible add Button --framework react-native
crucible add Button --framework react-native -s nativewind # NativeWind classes
crucible add Button --framework react-native -s stylesheet # StyleSheet.create






First-wave components: Button, Input, Card, Alert, Badge. Same manifest spec, native RN output.






CLI DX wins






CODE
crucible completion bash    # shell tab completion (bash/zsh/fish)
crucible list --json # machine-readable component registry
crucible doctor --json # structured check result, exits non-zero on failure
crucible add Button --strict # hard errors on plugin collisions / incompatible versions






Package-manager detection: peer installs now read your lockfile to pick pnpm / yarn / bun / npm — no more stray package-lock.json in bun projects.






Security fixes





  • Prototype pollutiondeepMerge skips __proto__ / constructor / prototype


  • Path traversal — boundary check uses path.relative, not startsWith


  • CodeQL code-injection — template compilation validates framework/styleSystem/component against known enums before any path resolution


  • Math.random() removed from generated component IDs — Vue uses useId() (3.5+), Angular uses a module-level counter






Other notable fixes





  • --framework now actually changes the generated output (was only affecting dependency checks)

  • Component dependencies are now correctly auto-added (crucible add Dialog pulls in Button)

  • Vue DropdownMenu no longer leaks styles — namespaced from .content to .menu-content

  • Package-manager-aware Tailwind installs (respects --cwd)

  • SCSS Table camelCase class names fixed (&Bordered not &-bordered)









Current state




































What Numbers
Components 25 (+ 5 in RN beta)
Frameworks React, Vue 3.5+, Angular, React Native (Beta)
Style systems CSS Modules, SCSS Modules, Tailwind v4, NativeWind, StyleSheet
Unit tests 556
E2E phases 245
Runtime footprint 0








Install / update






CODE
npm i -D @cruciblelab/crucible
# or: yarn add -D / pnpm add -D / bunx add -D

npx crucible init # first time
npx crucible update # pull latest templates into existing projects














Heads-up: what I'm building in parallel



While v1.2 was stabilizing, I've been full-focus on a very different project — Min-Mozhi (மின்மொழி).



Min-Mozhi is a hardware description language written in Rust. The pitch:





  • Modern syntax — Go/TypeScript-style braces, : type annotations, expression-oriented if/match. No begin/end, no preprocessor.


  • Safe by default — inferred latches, silent truncation, multiple drivers, uninitialized registers, and signed/unsigned mixing are all compile-time errors with stable E-codes and teaching-quality diagnostics.


  • Trilingual — English, Tanglish, and Tamil are keyword skins over one grammar; mimz translate converts losslessly between them. The first Tamil-rooted HDL.


  • Own simulatormimz sim runs an in-house event-driven engine, validated bit-for-bit against Icarus Verilog.




CODE
module Counter(WIDTH: int = 8) {
clock clk
reset rst
out count: bits[WIDTH]

reg value: bits[WIDTH] = 0

on rise(clk) {
value <- value +% 1
}

count = value
}






v0.1.0 shipped in June with 432 tests and the full compiler + simulator pipeline. The unreleased branch currently has CDC synchronizer primitives (sync.double_flop / sync.pulse), hardware emulation with real LED/UART/audio peripherals, array types, foreach sugar, extern module Verilog FFI, tagged-union construction syntax, and structural bundle matching — all in active development.



I'll write a dedicated post about Min-Mozhi once the next wave of features stabilizes — but wanted to give you a heads-up that this is where most of my engineering hours are going right now.






Happy building. ⚗️

Vollständiger Original-Bericht
Ausführliche Details, Code-Beispiele & Hersteller-Stellungnahme auf dev.to.
↗ Original-Artikel auf dev.to lesen
Wie bewertest du diesen Beitrag?
1 Klick Feedback
Teilen mit Netzwerk & Team:
Community Threat-Level Barometer
Live Votum

Wie stufst du das Risiko dieser Schwachstelle / Bedrohung für dein Unternehmen ein?

Noch keine Stimmen — schätze das Risiko als Erster ein.

Community-Analysen & Experten-Meinungen 0

Verfasse deine eigene Analyse, teile Workarounds oder diskutiere diesen Vorfall im Blog.
Noch keine Community-Analyse verfasst. Markiere einen Textabschnitt oder klicke oben auf Eigene Analyse verfassen“!
Community Pulse: Relevanz-Einschätzung
1 Klick Experten-Votum
🔴 Akute Relevanz 0%
🟡 In Evaluierung 0%
🟢 Keine Auswirkung 0%
Spannende Innovation 0%
Verwandte Story-Cluster & Quellen (Vektor-KI)
Port 8095 Engine
3 Quellen
Use custom web fonts in Google Sheets charts
2 Quellen
Introducing the new 1Password App for Google Chat
1 Quelle
Context-aware access controls are available for Gemini Enterprise in the Admin console
Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten Crucible v1.2 — Interactive TUI, Component Lifecycle Commands, React Native, and Security Hardening

Thematisch verwandte Begriffe: Crucible, Interactive, Component, Lifecycle · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...