Skip to content
PhilipJohnBasilePublic

About

Experimental TypeScript UI framework with reactive signals, rendering and routing packages, and a dependency-free core demo.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

4 stars

Watchers

0 watching

Forks

Latest commit

 

History

263 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PhilJS

A TypeScript UI framework built around reactive signals, with packages for rendering, routing, and server-side applications. I built it to explore how much of an application can share one reactive model across the browser and server.

Core demo MIT license

Status: experimental, version 0.1.0. Start with the core below. Packages in this monorepo have different levels of completeness; the small verified example is not a claim that every integration is ready for production.

Try the reactive core

With Node.js 24 or newer, this example runs directly from a fresh checkout without installing dependencies:

git clone https://github.com/PhilipJohnBasile/philjs.git
cd philjs
node examples/signals-demo.mjs

It uses the actual signals implementation to calculate an order total. Changing the quantity updates the total; batching a price and quantity change triggers one effect update; disposing the effect stops its subscription. The example checks those behaviors before printing:

Initial total: $20
Three items: $60
Batched price + quantity update: $60
Effect disposed; derived total still updates: $40
Signals, memoization, batching, and disposal checks passed.

The Core demo workflow runs the same command. It covers this source-based example, not a full framework build or browser compatibility matrix.

Where to look

Area Source What it explores
Reactivity Core Signals, derived values, effects, batching, and cleanup
Rendering JSX runtime, SSR Browser rendering and HTML generation
Navigation Router Application routing
Applications Todo example, demo app Larger examples that require the workspace toolchain
Systems work Rust packages Rust-side framework experiments

Work on the framework

The monorepo uses Node.js 24+ and pnpm 9.15.4, as declared in package.json.

pnpm install --frozen-lockfile
pnpm --filter @philjs/core test
pnpm --filter @philjs/core build

These are the package's development commands. The dependency-free demo above is the smallest entry point; see CONTRIBUTING.md for the wider development workflow and verification notes for the checks exercised in the latest documentation refresh.

Design notes

The core tracks which computations read each signal. Updates notify those computations, memos compute derived values lazily, and explicit cleanup controls subscription lifetime. That makes dependency tracking and update behavior visible in a relatively small implementation.

The surrounding packages are experiments in applying that model to more of an application. Their presence in the repository does not imply a shared maturity level. Check an individual package's code, tests, and example before depending on it.

Documentation · Examples · Change log · Issues

License

MIT.

About

Experimental TypeScript UI framework with reactive signals, rendering and routing packages, and a dependency-free core demo.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages