# smriti
**A workspace for hierarchical notes and tasks in LLM-assisted workflows.**
smriti represents hierarchical "stuff" — notes, tasks, anything that nests —
and is built to be driven by LLM-assisted workflows. This repository is the
project scaffold: the full toolchain and layout are in place, and the running
app is a **hello-world** page. Behaviour grows from here.
Browser (SolidJS) ↔ server (Bun), wired for the typed reactive transport
[`@kolu/surface`](https://kolu.dev) — the seam the hierarchical model lands on
next.
## Stack
- **[Bun](https://bun.sh)** — runtime, bundler, test runner, package manager.
- **[TypeScript](https://www.typescriptlang.org)** — strict, across a small
workspace monorepo.
- **[SolidJS](https://www.solidjs.com)** — the browser client.
- **[`@kolu/surface`](https://kolu.dev)** — typed reactive client↔server
contract (defined in `packages/common`, hydrated from the Nix store).
- **[Nix](https://nixos.org)** — reproducible dev shell and build
(`nix run github:srid/smriti`). Bun deps are pinned via
[`bun2nix`](https://github.com/juspay/bun2nix); nixpkgs + kolu via
[`npins`](https://github.com/andir/npins).
## Quick start
```sh
just dev # bundle the client + boot the server (hot-reload)
```
Then open <http://localhost:7721>. Or run the Nix-built server:
```sh
nix run # this checkout
nix run github:srid/smriti # straight from GitHub
```
## Layout
```
flake.nix · default.nix · shell.nix Nix entry points (dev shell + build)
nix/ overlay, env, kolu-package factory, build derivation
npins/ pinned nixpkgs + kolu sources
ci/mod.just justci pipeline
packages/
common/ smriti-common — the @kolu/surface contract (the seam)
src/surface.ts reactive contract (a `greeting` cell today)
src/greeting.ts the shared greeting constant
app/ smriti-app
src/client/ SolidJS client (index.html, App.tsx, …)
src/server/ Bun server: build.ts (bundler), serve.ts, main.ts
```
## Development
| Command | What it does |
| --- | --- |
| `just dev` | Bundle the client and run the server with hot-reload. |
| `just check` | Typecheck + lint + format-check (the static-correctness gate). |
| `just fmt` | Format TypeScript/JSON/CSS (biome) and `*.nix` (nixpkgs-fmt). |
| `just test` | Run the test suite (`bun test`). |
| `just nix-build` | Reproducible Nix build of the server. |
| `just regenerate-bun-nix` | Refresh `bun.nix` after `bun install` changes `bun.lock`. |
`@kolu/surface` is not published to npm; it is materialized from the pinned
kolu source into `node_modules/@kolu/surface` by
`scripts/hydrate-kolu-packages.sh` (run automatically by the dev shell, the
`just install` recipe, and the Nix build).
README 원본 보기