Mermaid diagram renderer
  • Python 38.6%
  • TypeScript 19.4%
  • Rust 16.8%
  • HTML 11.1%
  • Shell 8.6%
  • Other 5.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-04-17 15:05:25 +02:00
.vscode yep 2026-04-06 20:38:53 +02:00
.windsurf chore: restore vendor submodules and reorganize directory structure 2026-04-17 11:13:36 +02:00
.woodpecker chore: sync submodules and clean up vendor directories 2026-04-17 10:55:26 +02:00
.zed Hard birth 2026-03-28 10:56:10 +01:00
ansible chore: sync submodules and clean up vendor directories 2026-04-17 10:55:26 +02:00
assets/murmur Initial commit 2026-01-26 20:05:49 +01:00
chacha_benchmark yep 2026-04-06 20:38:53 +02:00
config Remove blog-forge service and vendor Pelican 2026-04-15 12:51:34 +02:00
content/posts Temporarily remove LFS files to allow Woodpecker YAML fix push 2026-04-16 17:55:48 +02:00
data/audio/speech tiny cleanup 2026-02-13 14:47:56 +01:00
deployment-docs chore: sync submodules and clean up vendor directories 2026-04-17 10:55:26 +02:00
deployment-scripts Temporarily remove LFS files to allow Woodpecker YAML fix push 2026-04-16 17:55:48 +02:00
docs chore: sync submodules and clean up vendor directories 2026-04-17 10:55:26 +02:00
e2e Complete blog-cms documentation and e2e tests 2026-04-15 13:18:19 +02:00
examples Rewrite README to match monads style, add benchmark tables 2026-04-15 00:12:45 +02:00
experimental blep 2026-04-14 00:32:13 +02:00
forgejo-binaries Hard birth 2026-03-28 10:56:10 +01:00
intrinsic_complexity_decay blep 2026-04-14 00:32:13 +02:00
mindmap Remove blog-forge service and vendor Pelican 2026-04-15 12:51:34 +02:00
nginx Restore 216 README files from archive, enhancing documentation for services and components. Add new examples and demos, including AI productivity and 3D applications, along with a comprehensive animation system showcase. Introduce a pytest cache README and update CHANGELOG for added features and fixes. 2026-01-29 12:17:39 +01:00
nginx-templates Temporarily remove LFS files to allow Woodpecker YAML fix push 2026-04-16 17:55:48 +02:00
output Fix blog-cms config and test API/SSG 2026-04-15 13:26:08 +02:00
packages fix: checkout main and reinitialize remaining service submodules 2026-04-17 13:29:36 +02:00
scripts chore: restore vendor submodules and reorganize directory structure 2026-04-17 11:13:36 +02:00
services chore: sync submodules and clean up vendor directories 2026-04-17 10:55:26 +02:00
systemd chore: sync submodules and clean up vendor directories 2026-04-17 10:55:26 +02:00
templates/starter stuff 2026-04-10 14:34:21 +02:00
tests/turboquant hnggh... 2026-03-28 17:44:54 +01:00
tools chore: sync submodules and clean up vendor directories 2026-04-17 10:55:26 +02:00
vendor chore: sync dependencies (monorepo) 2026-04-17 14:50:54 +02:00
wgpu-bench changes 2026-04-03 11:10:10 +02:00
.env.shared blep 2026-04-05 13:31:57 +02:00
.gitattributes attempt at stuff 2026-02-11 14:13:14 +01:00
.gitignore Convert packages/core/monads to git submodule 2026-04-14 19:28:24 +02:00
.gitmodules fix: use forgejo branch for vendor/forgejo, delete main branch 2026-04-17 15:05:25 +02:00
.npmrc Initial commit 2026-01-26 20:05:49 +01:00
.pnpmfile.cjs yep 2026-04-05 11:30:00 +02:00
.prettierignore Initial commit 2026-01-26 20:05:49 +01:00
.prettierrc Initial commit 2026-01-26 20:05:49 +01:00
.upstream-config.yaml Really important changes 2026-03-25 20:04:36 +01:00
.woodpecker.yml Remove blog-forge service and vendor Pelican 2026-04-15 12:51:34 +02:00
.workspace-optimized yep 2026-04-05 11:30:00 +02:00
advanced_benchmark_analysis.py stuff 2026-04-08 11:26:18 +02:00
ahash-decompilation-report.md yep 2026-04-11 09:42:13 +02:00
analyze_benchmarks.py stuff 2026-04-08 11:26:18 +02:00
analyze_dtolnay_dependencies.py stuff 2026-04-08 11:26:18 +02:00
analyze_vendor_dependencies.py yep 2026-04-06 20:38:53 +02:00
analyze_vendor_dependencies_fast.py yep 2026-04-06 20:38:53 +02:00
analyze_vendor_dependencies_robust.py yep 2026-04-06 20:38:53 +02:00
benchmark_analysis.json stuff 2026-04-08 11:26:18 +02:00
blitz-iter-integration.md stuff 2026-04-08 11:26:18 +02:00
blitz-vendortodo.md blep 2026-04-14 00:32:13 +02:00
CHANGELOG.md docs: update changelog for vendoring cleanup 2026-04-17 11:21:04 +02:00
check_blog_post.py stuff 2026-04-08 11:26:18 +02:00
check_missing_vendor_crates.py yep 2026-04-06 20:38:53 +02:00
comprehensive_vendor_analysis.json yep 2026-04-06 20:38:53 +02:00
comprehensive_vendor_analysis.py yep 2026-04-06 20:38:53 +02:00
config-forgejo.yaml chore: sync submodules and clean up vendor directories 2026-04-17 10:55:26 +02:00
criterion_changes.rs stuff 2026-04-08 11:26:18 +02:00
CRYPTGRAPHIC_STANDARDIZATION_PLAN.md stuff 2026-04-08 11:26:18 +02:00
DEPRECATION-EVACUATION-PLAN.md Remove blog-forge service and vendor Pelican 2026-04-15 12:51:34 +02:00
detailed_test.py stuff 2026-04-08 11:26:18 +02:00
dtolnay_analysis_report.json stuff 2026-04-08 11:26:18 +02:00
dtolnay_dependencies.png stuff 2026-04-08 11:26:18 +02:00
dtolnay_spiderweb.png stuff 2026-04-08 11:26:18 +02:00
dtolnay_spiderweb_analysis.py stuff 2026-04-08 11:26:18 +02:00
dtolnay_spiderweb_improved.png stuff 2026-04-08 11:26:18 +02:00
edit-prediction-iter-integration.md stuff 2026-04-08 11:26:18 +02:00
editor-refactor-plan.md stuff 2026-04-08 11:26:18 +02:00
eslint.config.js Convert packages/core/monads to git submodule 2026-04-14 19:28:24 +02:00
FORGEJO_VERSION_MISMATCH_INVESTIGATION.md Temporarily remove LFS files to allow Woodpecker YAML fix push 2026-04-16 17:55:48 +02:00
fox-agent.md sniffing things 2026-04-12 09:27:40 +02:00
fox-brand-analysis.json this is a lot of stuff 2026-04-09 01:53:51 +02:00
fox-brand-history.json this is a lot of stuff 2026-04-09 01:53:51 +02:00
git-upstream-merging-guide.md Remove blog-forge service and vendor Pelican 2026-04-15 12:51:34 +02:00
k_smallest_winner.png stuff 2026-04-08 11:26:18 +02:00
mappy-server-30s-flamegraph.svg yep 2026-04-11 09:42:13 +02:00
mappy-server-perf-script.txt yep 2026-04-11 09:42:13 +02:00
mappy-server-perf-structured.txt yep 2026-04-11 09:42:13 +02:00
nist-easter-special.md yep 2026-04-06 20:38:53 +02:00
package.json Remove blog-forge service and vendor Pelican 2026-04-15 12:51:34 +02:00
package.json.shared blep 2026-04-05 13:31:57 +02:00
pnpm-lock.yaml Rewrite README to match monads style, add benchmark tables 2026-04-15 00:12:45 +02:00
pnpm-workspace.yaml Rewrite README to match monads style, add benchmark tables 2026-04-15 00:12:45 +02:00
proc-macro-boundaries.md yep 2026-04-11 09:42:13 +02:00
README.md test: trigger pipeline after schema fix 2026-04-15 09:53:09 +02:00
restore-submodules.sh blep 2026-04-14 00:32:13 +02:00
reynard-standard-rng-plan.md stuff 2026-04-08 11:26:18 +02:00
reynard.code-workspace Convert packages/core/monads to git submodule 2026-04-14 19:28:24 +02:00
REYNARD_BRANDING.md this is a lot of stuff 2026-04-09 01:53:51 +02:00
SECURITY_AUDIT_REPORT.md sniffing things 2026-04-12 09:27:40 +02:00
SERVICES_RANDOMNESS_AUDIT.md stuff 2026-04-08 11:26:18 +02:00
solid2.md getting ready to play with tsconfig again 2026-04-09 18:29:36 +02:00
SOLIDJS_HOSTING_QUEST.md Temporarily remove LFS files to allow Woodpecker YAML fix push 2026-04-16 17:55:48 +02:00
SQLX_VENDOR_HARMONIZATION_PLAN.md this is a lot of stuff 2026-04-09 01:53:51 +02:00
test.md Temporarily remove LFS files to allow Woodpecker YAML fix push 2026-04-16 17:55:48 +02:00
text-layout-integration-plan.md blep 2026-04-04 17:33:27 +02:00
text-layout-pretext-harmonization-plan.md blep 2026-04-04 17:33:27 +02:00
the-fox-developer.md bleh 2026-04-11 18:05:45 +02:00
tsconfig.base.json sniffing things 2026-04-12 09:27:40 +02:00
tsconfig.json blep 2026-04-05 13:31:57 +02:00
tsconfig.projects.json Remove blog-forge service and vendor Pelican 2026-04-15 12:51:34 +02:00
tsconfig.shared.json blep 2026-04-05 13:31:57 +02:00
tsconfig.typecheck-base.json yep 2026-04-11 09:42:13 +02:00
turboquant.md blasted llms 2026-03-28 14:58:21 +01:00
update_vendor_resolver.sh yep 2026-04-06 20:38:53 +02:00
vendor_analysis_final_summary.md yep 2026-04-06 20:38:53 +02:00
vendor_crates_test.sh yep 2026-04-06 20:38:53 +02:00
vendor_dependency_report.json yep 2026-04-06 20:38:53 +02:00
vendor_lint.sh yep 2026-04-11 09:42:13 +02:00
websocket-responses.md baby thats so you 2026-03-27 16:00:39 +01:00
wg-serve-pyo-mio.md yep 2026-04-11 09:42:13 +02:00
ws-blitz.md yep 2026-04-01 01:23:12 +02:00

🦊 Reynard Monorepo

A SolidJS framework and ecosystem for building reactive web applications with AI services, authentication, and real-time collaboration.

Overview

Reynard is a monorepo containing a web development ecosystem built around SolidJS (custom vendored: solid-js 2.0.0-beta.5, solid-web 2.0.0-beta.5). It includes frontend packages, backend services, vendored Rust dependencies, AI integrations, and development tooling.

The monorepo has a structured architecture separating packages (TypeScript/SolidJS), services (Rust backend), vendor (vetted Rust dependencies), and examples. This enables shared tooling and integration testing across the stack.

Monorepo Architecture

graph TB
    subgraph "Frontend Layer"
        UI[packages/ui/*<br/>31 UI Packages]
        CORE[packages/core/*<br/>18 Core Packages]
        AI[packages/ai/*<br/>18 AI Packages]
        GAMES[packages/games<br/>ECS, Physics, UI]
    end

    subgraph "Backend Services"
        GK[services/gatekeeper<br/>Auth & RBAC]
        MP[services/mappy<br/>Maplet Data Structures]
        BL[services/blitz<br/>Code Editor]
        SS[services/securestore<br/>Secret Management]
        OTHER_SERVICES[13 Other Services]
    end

    subgraph "Vendor Dependencies"
        RUST_VENDOR[vendor/*<br/>207 Vendored Crates]
        SOLID_TP[packages/third_party<br/>SolidJS Ecosystem]
    end

    subgraph "Data & Media"
        DATA[packages/data/*<br/>Repository & Scraping]
        MEDIA[packages/media/*<br/>3D, Audio, Video]
    end

    subgraph "Dev Tools"
        TOOLS[packages/dev-tools/*<br/>Build & Deploy]
        CATALYST[catalyst<br/>Development Scripts]
    end

    subgraph "Applications"
        EXAMPLES[examples/*<br/>4 Example Apps]
        APPS[packages/apps/*<br/>8 Applications]
    end

    UI --> CORE
    AI --> CORE
    GAMES --> CORE
    CORE --> SOLID_TP

    GK --> RUST_VENDOR
    MP --> RUST_VENDOR
    BL --> RUST_VENDOR
    SS --> RUST_VENDOR

    EXAMPLES --> UI
    EXAMPLES --> CORE
    APPS --> UI
    APPS --> AI

    TOOLS --> CORE
    TOOLS --> GK

    style CORE fill:#e1f5ff
    style GK fill:#e1ffe1
    style MP fill:#fff4e1
    style RUST_VENDOR fill:#ffe1f5

Package Ecosystem

Core Packages (18 packages)

Foundation utilities, composables, and framework primitives.

Package Purpose Key Features
reynard-core Framework foundation 16+ composables, security module, HTTP clients
reynard-monads Functional programming Option, Result, Task monads, Kleisli composition
reynard-algorithms Computational utilities 40+ algorithms, spatial structures, pathfinding
reynard-i18n Internationalization 900+ translation keys, locale management
reynard-composables Reactive utilities SolidJS 2.x native action integration
reynard-connection HTTP & telemetry ApiClient, Mappy metrics integration
reynard-auth-core Authentication base JWT handling, session management
reynard-auth-composables Auth integration useAuth, permission-based rendering
reynard-http-client Network layer Request deduplication, caching, retries
reynard-testing Test utilities SolidJS testing helpers, mock factories
reynard-validation Input validation JSON schema validation, form validation
reynard-settings Configuration User preferences, feature flags
reynard-features Feature flags Toggle management, A/B testing support
reynard-dynamic-enum Type system Runtime enum generation
reynard-config App configuration Environment-based config loading
reynard-selection-primitives Selection handling Multi-select, range selection
reynard-color-types Color system OKLCH color utilities
reynard-analytics Telemetry Event tracking, metrics collection
reynard-collaboration Real-time collab Operational transforms, presence

UI Packages (31 packages)

Component library with theming, animation, and specialized UI elements.

graph TB
    subgraph "Component Hierarchy"
        PRIM[reynard-primitives<br/>Base Components]
        THEME[reynard-themes<br/>Theme System]
        ICONS[reynard-fluent-icons<br/>Icon Library]
    end

    subgraph "Specialized UI"
        CHARTS[reynard-charts<br/>Data Visualization]
        FORMS[forms<br/>Form Controls]
        EDITORS[codemirror<br/>monaco<br/>Code Editors]
        ANIM[animation<br/>Transition Effects]
    end

    subgraph "Advanced Components"
        DASH[dashboard<br/>Layout System]
        KANBAN[kanban<br/>Board Component]
        GRAPH[graphs<br/>Network Visualization]
        DRAWING[drawing<br/>Canvas Tools]
    end

    THEME --> PRIM
    ICONS --> PRIM
    PRIM --> CHARTS
    PRIM --> FORMS
    PRIM --> EDITORS
    ANIM --> PRIM

    style PRIM fill:#e1f5ff
    style THEME fill:#e1ffe1

AI Packages (18 packages)

AI/ML integration stack for computer vision, captioning, and model management.

Package Purpose
reynard-annotating-core Base annotation primitives
reynard-annotating-florence2 Florence2 model annotator
reynard-annotating-joy Joy caption model annotator
reynard-annotating-jtp2 JTP2 tag model annotator
reynard-annotating-jtp3 JTP3 tag model annotator
reynard-annotating-wdv3 WDV3 tag model annotator
reynard-annotating-ui Annotation UI components
reynard-caption Image captioning system
reynard-caption-core Base captioning infrastructure
reynard-caption-multimodal Multi-modal caption support
reynard-caption-ui Captioning UI components
reynard-model-management ML model lifecycle
reynard-rag Retrieval-augmented generation
reynard-multimodal Multi-modal AI integration
reynard-comfy ComfyUI integration
reynard-nlweb Natural language web interface
reynard-responses AI response handling
reynard-ai-shared Shared AI utilities

Games Package

Modular game development system with ECS, physics, and UI components.

graph LR
    ECS[reynard-games-ecs<br/>Entity-Component-System]
    PHYS[reynard-games-physics<br/>Physics Engine]
    GUI[reynard-games-ui<br/>Game UI Components]
    HOWL[reynard-games-howler<br/>Audio System]

    ECS --> PHYS
    ECS --> GUI
    PHYS --> GUI
    HOWL --> GUI

    style ECS fill:#e1f5ff
    style PHYS fill:#fff4e1

Data & Media (17 packages)

Repository management, file processing, and multimedia handling.

Category Packages
Repository repository-core, repository-multimodal, repository-search, repository-storage, unified-repository
File Processing file-processing, scraping
3D/Media 3d, audio, video, image, image-service, shader-core, shader-audio, shader-dsl
AI Media gallery, gallery-ai, gallery-dl, segmentation, boundingbox
Music music

Backend Services (17 services)

Rust services providing authentication, data structures, and specialized compute.

Core Services

Service Language Purpose Key Features
gatekeeper Rust Authentication & RBAC JWT tokens, Argon2 hashing, PostgreSQL backend, SSH key auth
mappy Rust Probabilistic data structures Maplets (space-efficient filters), 10-60M ops/sec, Python bindings
securestore Rust Secret management AES-256-GCM encryption, PBKDF2 key derivation, systemd daemon
blitz Rust Code editor Fork of Zed, 200+ crates, multiplayer editing, AI agent integration

AI Services

Service Purpose
neuspell Neural spell checking (Rust HTTP + Python inference)
nlp-gateway NLP API gateway
murmur Whisper-based transcription (Rust HTTP + Python inference)
voxy Text-to-speech via VoxCPM (Rust HTTP + Python inference)
chatter Chat backend with AI agents
stanza Stanford NLP pipeline (Rust HTTP + Python inference)
jtp3 Image tagging with JTP-3 Hydra model

Infrastructure Services

Service Purpose
wg-serve WireGuard-bound file server for internal dataset/ML transfer
blog-forge Blog platform with NLP integration and SSG
agent-thread-feedback Agent feedback pipeline for model training
blitz-webrtc-signaling WebRTC coordination for Blitz multiplayer
ambiggy Ambiguity resolution

Blitz Code Editor (200+ crates)

Blitz is a fork of the Zed editor focused on local-first AI integration. It differs from upstream by:

  • Using OpenAI-compatible Responses over a single websocket
  • Making llama.cpp the primary inference backend
  • Removing cloud provider integrations to reduce complexity
  • Adding a native thread runtime for agent conversations
  • Implementing systemd-run sandboxing for tool execution
  • Providing an optional virtual filesystem for agent interactions

Key crate categories:

Category Crates
Core blitz, gpui (UI framework), settings, workspace
Editor editor, buffer_diff, multi_buffer, language, lsp
AI/Agent agent, native_thread_runtime, language_model, edit_prediction
Terminal terminal, terminal_view
Git git, git_ui, git_graph, git_hosting_providers
Collaboration collab, collab_ui, call, remote
Extensions extension, extension_host, extension_api

Service Architecture

graph TB
    subgraph "Authentication Flow"
        CLIENT[Client Application]
        GK[Gatekeeper Server<br/>Port 8002 / Unix Socket]
        POSTGRES[(PostgreSQL)]
        SS[SecureStore<br/>Secret Storage]

        CLIENT -->|Auth Request| GK
        GK -->|Validate| POSTGRES
        GK -->|Fetch Secrets| SS
        GK -->|JWT Token| CLIENT
    end

    subgraph "Metrics Collection"
        APP[Reynard App]
        MAPPY[Mappy Server<br/>Port 8003]
        PROXY[Mappy Proxy<br/>Port 8004]

        APP -->|HTTP Metrics| PROXY
        PROXY -->|Unix Socket| MAPPY
    end

    style GK fill:#e1f5ff
    style MAPPY fill:#fff4e1
    style SS fill:#e1ffe1

Vendor Dependencies (207 crates)

Vendored Rust dependencies for reproducible builds and security auditing.

Complete Crate List

Async Runtime (16) async-channel, async-compat, async-executor, async-fs, async-io, async-lock, async-net, async-pipe, async-process, async-trait, async-tungstenite, asynchronous-codec, atomic-waker, blocking, futures-lite, futures-rs

Cryptography (47) aeads, ahash, arbitrary, asn1-rs, base64, bit-vec, bitvec, block-ciphers, block-modes, bytemuck, crypto-bigint, crypto-formats, crypto-primes, crypto-utils, curve25519-dalek, digest, ecdsa, ed25519, elliptic-curves, faster-hex, generic-array, getrandom, hashes, heapless, hmac, hybrid-array, kdfs, macs, md-5, password-hashes, p256, p384, rand, rand_core, rand_distr, rcgen, ring, rsa, rngs, rustls, rustls-native-certs, rustls-pki-types, rustls-platform-verifier, sha1, sha2, sha3, signatures, subtle, universal-hashes, wycheproof, x509-parser, yasna, zeroize

Web & Networking (27) axum, bytes, h2, hickory-dns, http, http-body, hyper, hyper-rustls, hyper-tls, hyper-util, jsonwebtoken, mime (via reqwest), multra (patched), pin-project-lite, polling, reqwest, rust-url, serde, serde_json, slab, smol, smol-axum, smol-hyper, smol-macros, tokio, tokio-rustls, tokio-socks, tokio-tls, tokio-tungstenite, tower, tower-http, tungstenite, warp, webpki-roots

Data Serialization (8) bitcode, ciborium, csv (via image), json, postcard, serde, serde_json, toml

Database & Storage (7) dashmap, deadpool, redis (via vendor), rust-postgres, sled, sqlx

Graphics & Media (13) cavif-rs, flamegraph, gungraun, image, libyuv, plotters, rav1e, rgb (via image), svg (via image), tiff (via image), webp (via image), wgpu

Testing & Dev Tools (13) anes, anndists, cargo-show-asm, criterion, flamegraph, imara-diff, insta (via vendor), libfuzzer-sys, libtest-mimic, proptest (via vendor), quickcheck, test-case (via vendor), trybuild

System & OS (18) cc, cfg-if, chrono, crossbeam (via vendor), either, env_logger, glob, human_bytes, indexmap, itertools, itoa, jemalloc (via vendor), libc, memchr, memmap2, mio, nix (via vendor), once_cell, parking_lot, portable-atomic, portable-atomic-util, tempfile, thiserror, typenum, walkdir, zerocopy

Parser & Language (13) aho-corasick, bstr, ego-tree, html5ever, logos (via vendor), regex, rowan (via vendor), syn, tree-sitter-cpp, tree-sitter-git-rebase, tree-sitter-markdown, tree-sitter-python

Concurrency (7) crossbeam, dashmap, lock_api, once_cell, parking_lot, rayon, thread_local (via vendor)

Terminal & TUI (7) crossterm (via vendor), ratatui (via vendor), termcolor, termion (via vendor), tui (via vendor), tui-rs (via vendor), tui-textarea (via vendor)

Wasm & WebAssembly (5) wasm-bindgen (via vendor), wasm-tools, wasmtime, wit-bindgen

Search & NLP (4) tantivy, tiktoken-rs, unicode-normalization (via vendor), unicode-segmentation (via vendor)

Git & VCS (3) forgejo, git2, gix (via vendor)

LLM & AI (3) llama.cpp, rust-bert (via vendor), tokenizers (via vendor)

Other Tools (16) anyhow, clap, config, der, dotenvy, fastrand, num-bigint, num-derive, num-integer, num-iter, num-traits, oo7, pem-rfc7468, schemastore, time, uuid, zlib-rs

ZBus & IPC (1) zbus

ZeroMQ (1) zeromq

Notable Projects

  • blitz: Fork of Zed editor
  • wgpu: WebGPU implementation
  • llama.cpp: Local LLM inference
  • tantivy: Full-text search engine
  • garou-harness: Benchmarking and analysis
  • forgejo: Git hosting (Gitea fork)
  • vecstore: Vector database
  • woodpecker: CI/CD (Drone fork)
  • docs.rs: Documentation hosting
  • ripgrep: Fast grep implementation

Examples (4 applications)

Example applications demonstrating framework capabilities.

Example Purpose Technologies
basic-app Todo application SolidJS 2.x, actions, optimistic updates, themes
ecommerce-tshirt-store E-commerce demo Cart management, product catalog, checkout
garou-harness-app Benchmark UI Performance visualization, dependency graphs
mappy-visualizer Error tracking Real-time metrics, SSE streaming, dashboard

Example Architecture: basic-app

stateDiagram-v2
    [*] --> Idle: User initiates action

    Idle --> OptimisticUpdate: Action called
    OptimisticUpdate --> PendingAPI: State updated optimistically

    PendingAPI --> Success: API call succeeds
    PendingAPI --> Failure: API call fails

    Success --> Commit: Clear pending state
    Failure --> Rollback: Revert optimistic update

    Commit --> Idle: Show success notification
    Rollback --> Idle: Show error notification

Development Tools (12 packages)

Tooling for building, deploying, and maintaining the monorepo.

Package Purpose
catalyst Development automation scripts
deployment Ansible-based deployment
dev-server-management Local development servers
code-quality Linting and validation
vscode-linting VS Code extension
public-package-manager NPM publishing automation
adr-system Architecture Decision Records
dependency-graph Dependency visualization
dependency-checker Security scanning
project-architecture Architecture documentation
reynard-config-generator Config file generation
oklch-color-manager Color system management
queue-watcher CI/CD monitoring

Installation

Prerequisites

  • Node.js >= 25.2.1
  • pnpm >= 10.33.0
  • Rust >= 1.94.1
  • Python >= 3.13.5
  • Ansible >= 2.19.4

Quick Setup

# Clone the repository
git clone https://git.sly.so/kade/reynard
cd reynard

# Install dependencies (uses shared build setup)
pnpm install

# Build all packages
pnpm run build:fast

# Run tests
pnpm test

Service Setup

# Build all Rust services
cd services/gatekeeper && cargo build --release
cd ../mappy && cargo build --release
cd ../securestore && cargo build --release

# Or build specific service
cd services/gatekeeper && cargo build --release -p gatekeeper-server

Development Workflow

Package Development

# Start dev server for specific package
pnpm --filter reynard-core dev

# Run tests for specific package
pnpm --filter reynard-core test

# Type check
pnpm typecheck

# Lint
pnpm lint

Service Development

# Run Gatekeeper with memory backend (from services/gatekeeper/)
GATEKEEPER_SECRET_KEY=dev-key ./target/release/gatekeeper-server

# Run Mappy with HTTP enabled (from services/mappy/)
MAPPY_ENABLE_HTTP=true ./target/release/mappy-server

# Deploy with Ansible (from repo root)
cd packages/dev-tools/deployment/ansible
ansible-playbook -i inventory/hosts.yml playbooks/deploy-mappy.yml -l local -b

Workspace Commands

Command Purpose
pnpm dev Start template dev server
pnpm dev:backend Start Python backend
pnpm dev:full Frontend + backend + API watch
pnpm build:fast Fast workspace build
pnpm test:coverage Full coverage report
pnpm typecheck:full TypeScript checking
pnpm lint:fix Auto-fix linting issues

Key Technologies

Frontend Stack

  • SolidJS (custom vendored: 2.0.0-beta.5): Reactivity framework
  • TypeScript 6.0.2: Type system
  • Vite 8.0.7: Build tooling
  • Vitest: Unit testing
  • Playwright: E2E testing

Backend Stack

  • Rust: Systems programming
  • Tokio: Async runtime
  • Axum: Web framework
  • SQLx: SQL toolkit
  • PyO3: Python bindings

Vendor Philosophy

External Rust dependencies are vendored in vendor/ for:

  • Reproducible builds: Exact versions locked
  • Security auditing: Code review capability
  • Offline builds: No external fetch required
  • Patch management: Local fixes possible

Documentation Structure

docs/
├── architecture/          # System architecture docs
├── development/         # Developer guides
├── integrations/        # Third-party integrations
├── research/           # Research documents
├── solidjs/            # SolidJS-specific docs
├── turboquant/         # Quantitative analysis
├── guides/             # User guides
├── forgejo/            # Git hosting docs
└── deployment/         # Deployment guides

Key documentation files:

  • docs/overview.md - System overview
  • docs/tutorial.md - Step-by-step tutorial
  • docs/packages.md - Package reference
  • docs/authentication.md - Auth system guide
  • docs/performance.md - Optimization guide

Testing Strategy

Frontend Testing

# Unit tests
pnpm --filter reynard-core test

# E2E tests
cd e2e && pnpm test

# Coverage
pnpm test:coverage

Service Testing

# Rust tests (run from service directory, e.g., services/gatekeeper/)
cargo test

# With coverage (requires cargo-tarpaulin: cargo install cargo-tarpaulin)
cargo tarpaulin

# Python bindings
pytest services/mappy/test_mappy_python.py

Testing Architecture

graph TB
    subgraph "Test Layers"
        UNIT[Unit Tests<br/>Vitest/Jest]
        INT[Integration Tests<br/>Playwright]
        E2E[E2E Tests<br/>Playwright]
    end

    subgraph "Test Types"
        COMP[Component Tests]
        COMPOSABLE[Composable Tests]
        UTIL[Utility Tests]
        SERVICE[Service Tests]
    end

    UNIT --> COMP
    UNIT --> COMPOSABLE
    UNIT --> UTIL
    INT --> SERVICE
    E2E --> SERVICE

    style UNIT fill:#e1f5ff
    style E2E fill:#e1ffe1

License

MIT License - see LICENSE file for details.


For detailed information on specific packages or services, see their individual README files within their directories.

Test pipeline trigger