Meetings, documented.
Learn how to run a meeting, understand its retained record, or work on the code. This guide describes the released product and its limits.
The product
A shared workspace with a traceable record.
LOR. combines a link-based video call with chat, screen sharing, a shared board, and notes. Optional retained captions become the source for reviewed decisions and follow-up work in the same room.
Transcription is designed for mixed Arabic and English speech. Accuracy still depends on audio and the selected provider: review the record before relying on it.
Explore the productOne room, one thread
Use the room from start to finish.
Check your devices before joining. Choose the tools you need during the call, then review the resulting evidence with the host.
- 01
Check and join
Open the invitation, enter a display name, and check the camera and microphone in prejoin. A waiting room may require the host to admit you.
- 02
Work together
Use chat, screen sharing, the board, and shared notes without an AI key. Captions and local recording are optional actions, with their own notices.
- 03
Review and return
The host reviews decisions and confirms participant-owned commitments. Timeline, Memory, and search let you return to retained sources within this room.
Released product
Know what the product includes.
The left column describes available features. The right explains their boundaries or the release that will extend them.
Video meeting
Shipped today
LiveKit room, prejoin, chat, screen share
Scope and next steps
Join with a link and a display name; no account required.
Retained evidence
Shipped today
Captions, decisions, tasks, Timeline, Memory, search
Scope and next steps
Search excludes other rooms, the live occurrence, expired data, and unreviewed proposals.
Privacy edges
Shipped today
Room-scoped records, deletion, retention rules, and browser-local recording
Scope and next steps
Retention is up to 30 days. Expired rows are cleaned on read. Official self-hosting is planned for v0.9.
Extensions
Shipped today
A focused repository and public issues
Scope and next steps
Integrations in v0.8; plugin ecosystem in v1.0
Under the surface
How the pieces fit together.
Media and shared meeting state travel over LiveKit. Next.js handles short request/response work; Postgres holds the retained projection.
- 01
Browser
Displays the call and collaboration tools and holds encrypted user keys.
- 02
Live room
LiveKit carries media and shared state between participants.
- 03
Retained record
Postgres stores room-scoped transcripts and decisions under retention rules.
The application does not run its own long-lived WebSocket server. That boundary keeps the same code usable on a hosted or future self-hosted box.
Start locally
Run the project locally.
Use the hosted app to try a meeting now. For code review or development, start with these commands and then add your local service settings.
Quick start
Run these in a terminal, then configure services
git clone https://github.com/Lord-shaban/lor && cd lor
cp .env.example .env.local
npm install && npm run devConfigure LiveKit and Postgres in .env.local using .env.example. AI keys are optional. These are development steps; the official Docker deployment is planned for v0.9.
Pick up a thread
Make a change others can verify.
Every contribution starts with a scoped issue, a branch, the required checks, and a pull request that explains what changed. Arabic RTL is the first layout pass; English LTR follows.
- 01Read the contribution contract
- 02Choose a focused issue with acceptance criteria
- 03Run typecheck, lint, tests, build, docs checks, and relevant browser verification
Before you open an issue
Common questions
Understand the data and service boundaries before starting a meeting or opening an issue.
Do API keys reach storage?
No. Operator keys stay server-only, and a participant's key is encrypted in the browser and forwarded without being written to the database, logs, or cache.
Does an AI outage break the call?
No. AI features degrade to their bounded fallback; video, audio, collaboration, and local recording keep their own path.
Can I self-host it now?
The self-hosting contract is planned for v0.9. The current public path is the hosted demo and the reproducible local development setup.
Why is Arabic the first pass?
Mixed Arabic/English speech and RTL layout are first-class product constraints. Every UI change is checked in Arabic before English.