THE STACK
THAT THINKS.

Building the engineering tools we wished already existed.

From trustless blockchain verification and semantic code analysis to AI-ready backend blueprints and a software engineering model trained on real engineering knowledge, every product started as a problem worth solving.

EXPLORE
Structural stack illustration
01
67Semantic rules
108Domain contracts
14BModel params
83Adapters
01 STRUCTURAL POSITION

THE
FOUNDATION

Friehub started as a personal engineering research lab built around problems I kept running into across real production systems. On-chain data was either centralised or fragile. Linters approved code that deadlocked in production. Every new backend project reinvented the same service interfaces from scratch. General-purpose LLMs hallucinated on specialised engineering questions.

Instead of patching around those problems, I decided to build dedicated systems from the ground up, one for each failure mode. The Oracle Network handles trustless data verification. Frensense catches the semantic bugs compilers cannot see. Blueprinter standardises backend contracts so AI agents and engineers share the same language. Fwen 14B is a domain-specialist model trained specifically on engineering knowledge.

Each product has its own runtime, codebase, and deployment. They are independent tools built under one research lab, not a pipeline. The connection is the engineering mindset, not a shared runtime.
02 COMPONENT REGISTRY
ORACLE NETWORK

ORACLE
NETWORK

Decentralised Data Verification
Built because every oracle I evaluated was either centralised or relied on a single off-chain provider: one point of failure dressed up as decentralisation.

A general-purpose decentralised oracle built on EigenLayer. Consumers submit capability requests on-chain. A network of staked operator nodes races to fetch, attest, and submit results, secured by Threshold BLS signatures and economic slashing. Three consensus strategies: BLS Quorum (67% reputation-weighted), Weighted Median for numeric feeds, and SingleTEE for high-integrity attestations. Node personas: Standard, Automation (sovereign cron), and Attestation. Runtime: Rust kernel with V8 native isolate for sandboxed JS plugins (<1ms dispatch).

Rust EigenLayer Threshold BLS V8 Isolate NATS Solidity
FRENSENSE

FREN
SENSE

Semantic Diagnostic Engine
Built because production incidents kept tracing back to code that passed all linting: async mutexes held over awaits, validators that never rejected, AI-generated assertions that were trivially true.

Detects logical flaws, security risks, and unoptimised patterns that conventional linters miss: code that compiles and type-checks but deadlocks, leaks secrets, or contains subtly wrong AI-generated logic. Core: Semantic Program Graph (SPG), temporal taint tracking, and algebraic flow combinators. All policy ships as external YAML rule catalogues in v0.4.0. Exposes an MCP server for direct AI agent integration.

Rust SPG Taint Tracking MCP Protocol YAML Catalogues
GitHub Docs MCP Server External Rules
BLUEPRINTER

BLUE
PRINTER

Domain Contract Catalogue
Built because every backend project rewrites the same payment, auth, and storage interfaces from scratch. A shared contract layer means one source of truth across languages and providers.
TypeScript YAML CLI Node.js
BLUEPRINTER_SESSION
/*
 * BLUEPRINTER
 * Domain Contract Catalogue · 108 Modules
 */

$ blueprinter generate --module billing --lang typescript

// generated/interfaces/payments.ts
export interface PaymentsContract {
  initiatePayment(orderId: string, amount: number, currency: string): Promise<Payment>;
  verifyPayment(paymentId: string): Promise<Payment>;
}

// generated/adapters/payments/stripe.ts
export class StripeAdapter implements PaymentsContract {
  async initiatePayment(orderId, amount, currency) {
    const pi = await this.stripe.paymentIntents.create({
      amount: Math.round(amount * 100),
      currency: currency.toLowerCase(),
    });
    return this.toPayment(pi);
  }
}
FWEN 14B

FWEN
14B

Fine-tuned Qwen 2.5 · 14B Parameters
Built because general-purpose models kept hallucinating on specialised engineering questions: quoting incorrect algorithms, confusing API semantics, inventing method signatures that do not exist.

Qwen 2.5 14B fine-tuned on technical domain corpora built by the Friehub ingestion pipeline. Semantic paragraph-level chunks from authoritative PDFs across 17 engineering domains. Anti-hallucination discipline at every stage: quiz answers are verbatim source text, code blocks bypass the LLM and return verbatim, grounding scores flag low-confidence summaries before output. Trained via Modal + LoRA. SM-2 spaced repetition tracks evaluation quality across training cycles.

Python Qwen 2.5 LoRA Modal ChromaDB MiniLM-L6
Model: 14B Anti-Hallucination 17 Domains Hugging Face
03 SYSTEM DETAIL

FRENSENSE
RULES

Semantic rules that operate one level above the type system. None of these are caught by clippy, eslint, or tsc.

BLUEPRINTER
MODULES

108 domain contracts. 83 adapters across 33 modules. Provider-agnostic, language-portable, AI-consumable.

ORACLE
CONSENSUS

Three consensus strategies. Decentralised operator network secured by EigenLayer's restaking and economic slashing.

04 INTEGRATION
Oracle Network

CONSUME
ON-CHAIN

Deploy the consumer interface. Submit a capability request specifying data type, consensus strategy, and TTL. Operators respond automatically. Results are written on-chain and verifiable by any contract.

$ forge install friehub/oracle-consumer
// Solidity: request a price feed
IOracleConsumer(oracle).request(
  DataType.Numeric, "ETH/USD",
  ConsensusStrategy.WeightedMedian
);
Frensense

ANALYSE
A REPO

Run the CLI against any Rust or TypeScript codebase. Outputs a structured report of semantic violations ranked by severity. Plug into CI or wire the MCP server into your AI agent for inline diagnostics.

$ cargo install frensense
$ frensense scan ./src --rules catalogue/security.yaml
# or wire the MCP server
frensense mcp --port 7700
Blueprinter

GENERATE
CONTRACTS

Install the CLI. Specify a domain module and target language. Blueprinter emits a typed interface and provider-specific adapter stubs. Drop them into your project or feed them directly to an LLM as grounded context.

$ npm install -g @friehub/blueprinter
$ blueprinter generate --module payments --lang typescript
# outputs: interfaces/ + adapters/stripe.ts
05 TRAINING PIPELINE

THE FWEN LEARNING PIPELINE

From raw PDFs to a fine-tuned 14B model five deterministic stages.

01
INGEST

PDFs parsed into semantic units: paragraphs, code blocks, headings. Embedded with MiniLM-L6-v2 (ONNX, 2-3x faster). Stored in ChromaDB. Manifest prevents reprocessing.

02
CLASSIFY

17-domain classifier assigns each PDF to algorithms, databases, compilers, ML, security, and more. Stratified semantic sampling + filename heuristics with cross-validation.

03
RETRIEVE

Queries embedded and matched against vector store via cosine similarity. Minimum score threshold discards low-quality hits. Domain-scoped retrieval available.

04
GUARD

Every LLM output embedded and compared against source chunks. Grounding score < threshold flags response. Code blocks bypass the LLM entirely and are returned verbatim.

05
FINE-TUNE

Curated dataset of QA pairs, open-code samples, and triplets used to fine-tune Qwen 2.5 14B via Modal + LoRA. SM-2 spaced repetition tracks evaluation quality.

TRY IT NOW