Lorebase

Editors publish articles; a workflow splits each one into passages and re-indexes it on every edit. Teammates ask in plain words: a server function retrieves passages with Postgres full-text search, re-ranks them with BM25 and has the app's AI answer from those passages only, with numbered citations. Without an AI key it answers extractively from the same passages. Thumbs-down answers and unanswered questions land on the editors' gaps board, where one click drafts the missing article.

Invite-only. Teammates ask and rate answers. Knowledge editors run the articles, passages and gaps.

Lorebase on desktopLorebase on a phone

What's inside

Ask page with cited answers, thumbs up or down and question history. Library of published articles with their indexed passages. Gaps board: unanswered and low-rated questions, draft-an-article in one click. Article, passage, source and citation management for editors. Weekly gaps digest by notification and email.

Tables

  • editor name, email, team
  • member name, email, department
  • source name, kind, description, owner_id
  • document title, source_id, status, summary, body, url, version, word_count, …
  • chunk document_id, source_id, doc_title, seq, heading, text, words, active
  • question member_id, text, answer, outcome, follow_up, mode, confidence, latency_ms, …
  • citation question_id, chunk_id, document_id, rank, score, snippet
  • feedback question_id, member_id, rating, comment

Roles

  • editor Knowledge editor, staff
  • member Teammate, staff

Pages

  • /ask Ask (member, editor)
  • /library Library (member)
  • /gaps Gaps (editor)
  • /documents Articles (editor)
  • /documents/:id Article (editor, member)
  • /sources Sources (editor)
  • /questions Questions (editor)
  • /questions/:id Question (editor)
  • /passages Passages (editor)
  • /citations Citations (editor)
  • /people Teammates (editor)
  • /editors Editors (editor)

Components

  • AskDesk Ask a question, read the cited answer, rate it, and revisit past questions
  • GapsBoard Editors' view of unanswered and low-rated questions, with draft-an-article and resolve actions

Rules on every write

  • feedback You can only rate answers to questions you asked

How its workflows run

Each one is a server workflow in your project: it runs on its trigger, with retries, and its runs show in the builder's log.

  1. Index a new article

    When a row changes: document created. Then: Look up chunk, then Update chunk, then Create chunk.

  2. Re-index an edited article

    When a row changes: document updated. Then: Look up chunk, then Update chunk, then Create chunk, then Look up question, then Update question.

  3. Answer a question from the knowledge base

    When the app calls it: server function (member, editor). Then: Look up member, then Create question, then Notify.

  4. Draft an article from a question

    When the app calls it: server function (editor). Then: Look up question, then Create document, then Update question.

  5. Flag answers marked not helpful

    When a row changes: feedback created. Then: Look up question, then Update question, then Notify.

  6. Weekly knowledge gaps digest

    On a schedule: schedule weekly mon 09:00 over question. Then: Notify editor, then Send email.

Set it up

It starts a new project, with its data, roles and sign-in ready.

  1. Start the project

    Use the button above, or ask your coding agent with the Appbricx MCP server connected (quickstart).

  2. Sign in as each role

    The demo logins open each role's home. Change what you like in plain words or in the contract.

  3. Deploy

    When dev looks right, deploy. Production gets a snapshot first, so you can roll back.

Use it with your coding agent

The agent creates the project, builds it and signs in as each role.

Prompt
Start a new Appbricx project from the Lorebase template (slug "lorebase") with use_template. Call it "My Lorebase", then sign in as each role, verify it and tell me what to change first.
MCP call
{
  "tool": "use_template",
  "arguments": {
    "slug": "lorebase",
    "name": "My Lorebase"
  }
}
CLI
appbricx templates use lorebase --name "My Lorebase"

Make it yours in plain words.