[{"data":1,"prerenderedAt":1752},["ShallowReactive",2],{"compare:index":3},[4,216,360,520,637,826,946,1102,1256,1418,1593],{"id":5,"title":6,"body":7,"description":208,"extension":209,"meta":210,"navigation":211,"path":212,"seo":213,"stem":214,"__hash__":215},"compare/compare/ably.md","NoLag vs Ably",{"type":8,"value":9,"toc":199},"minimark",[10,14,18,21,26,113,117,146,150,161,165,176,180],[11,12,6],"h1",{"id":13},"nolag-vs-ably",[15,16,17],"p",{},"Ably is a mature realtime platform known for pub/sub, presence, message history, and strong delivery guarantees. NoLag is realtime messaging infrastructure with the same pub/sub foundation, plus two things Ably does not focus on: blueprint SDKs for common app patterns, and a coordination layer built for AI agents.",[15,19,20],{},"Short version: if you need a battle-tested realtime transport with rich delivery semantics, Ably is a strong choice. If you want to move faster with higher-level SDKs, or you are building agentic features, NoLag is built for that.",[22,23,25],"h2",{"id":24},"at-a-glance","At a glance",[27,28,29,44],"table",{},[30,31,32],"thead",{},[33,34,35,38,41],"tr",{},[36,37],"th",{},[36,39,40],{},"NoLag",[36,42,43],{},"Ably",[45,46,47,58,69,80,91,102],"tbody",{},[33,48,49,53,56],{},[50,51,52],"td",{},"Core model",[50,54,55],{},"Realtime pub/sub over WebSocket",[50,57,55],{},[33,59,60,63,66],{},[50,61,62],{},"High-level SDKs",[50,64,65],{},"Blueprints for chat, notify, feed, dashboards, tracking, sync, and more",[50,67,68],{},"Pub/sub, presence, history primitives",[33,70,71,74,77],{},[50,72,73],{},"AI-agent coordination",[50,75,76],{},"Built in: dispatch, share state, observe, approve",[50,78,79],{},"Not a focus",[33,81,82,85,88],{},[50,83,84],{},"Delivery",[50,86,87],{},"Presence, QoS levels",[50,89,90],{},"Presence, history, delivery guarantees",[33,92,93,96,99],{},[50,94,95],{},"Authentication",[50,97,98],{},"Actor tokens with per-topic ACL; short-lived browser JWTs minted offline",[50,100,101],{},"Token auth with capabilities, JWT support",[33,103,104,107,110],{},[50,105,106],{},"SDKs",[50,108,109],{},"JavaScript/TypeScript, Go, Python",[50,111,112],{},"Client and server libraries across many languages",[22,114,116],{"id":115},"where-nolag-is-different","Where NoLag is different",[118,119,120,128,134,140],"ul",{},[121,122,123,127],"li",{},[124,125,126],"strong",{},"Blueprint SDKs."," A domain-specific API for chat, notifications, dashboards, tracking, and more, so you skip the plumbing.",[121,129,130,133],{},[124,131,132],{},"A coordination layer for AI agents."," Dispatch, share state, observe decisions, and gate actions with human approval, framework-agnostic and on the same infrastructure as your app features.",[121,135,136,139],{},[124,137,138],{},"Agents and humans on one platform."," No separate stack for agentic features.",[121,141,142,145],{},[124,143,144],{},"Actor-based auth with offline JWTs."," Every credential resolves to a typed actor (user, device, server, session) whose permissions live server-side as per-topic ACL, not baked into each token. For browsers, your backend mints short-lived JWTs signed with a project signing key, with no round-trip to NoLag to issue one, so a leaked token expires on its own within minutes.",[22,147,149],{"id":148},"where-ably-is-a-strong-fit","Where Ably is a strong fit",[118,151,152,155,158],{},[121,153,154],{},"A mature, widely trusted realtime platform.",[121,156,157],{},"Rich delivery semantics and message history out of the box.",[121,159,160],{},"Broad official SDK coverage.",[22,162,164],{"id":163},"when-to-choose-nolag","When to choose NoLag",[118,166,167,170,173],{},[121,168,169],{},"You are building AI-agent features and want coordination primitives, not just transport.",[121,171,172],{},"You want higher-level SDKs to ship common realtime patterns quickly.",[121,174,175],{},"You want one platform for both human-facing and agent-facing realtime.",[22,177,179],{"id":178},"try-it","Try it",[15,181,182,183,188,189,193,194,198],{},"Follow the ",[184,185,187],"a",{"href":186},"/docs/getting-started","5-minute quick start",", then look at the ",[184,190,192],{"href":191},"/docs/high-level-sdks","high-level SDKs"," and the ",[184,195,197],{"href":196},"/docs/agents","AI agents"," guide.",{"title":200,"searchDepth":201,"depth":201,"links":202},"",2,[203,204,205,206,207],{"id":24,"depth":201,"text":25},{"id":115,"depth":201,"text":116},{"id":148,"depth":201,"text":149},{"id":163,"depth":201,"text":164},{"id":178,"depth":201,"text":179},"NoLag vs Ably: both are realtime pub/sub platforms with presence. NoLag adds a coordination layer for AI agents and ready-made high-level SDKs so you ship features faster.","md",{},true,"/compare/ably",{"title":6,"description":208},"compare/ably","aBVhYrVHLyZJHH-zHKaphwpW_8mrUeKonz2tkc8dtP0",{"id":217,"title":218,"body":219,"description":354,"extension":209,"meta":355,"navigation":211,"path":356,"seo":357,"stem":358,"__hash__":359},"compare/compare/autogen.md","NoLag with AutoGen",{"type":8,"value":220,"toc":348},[221,224,227,230,234,282,286,312,316,319,323],[11,222,218],{"id":223},"nolag-with-autogen",[15,225,226],{},"AutoGen is a framework for building applications with multiple agents that converse to solve a task. It is good at modelling agent-to-agent conversations and tool use within an application. NoLag is complementary: it is the realtime layer that connects those agents to each other, to your services, to a UI, and to a human, across processes and machines.",[15,228,229],{},"AutoGen structures the conversation; NoLag moves the messages between agents, your system, and the people watching.",[22,231,233],{"id":232},"what-each-layer-does","What each layer does",[27,235,236,247],{},[30,237,238],{},[33,239,240,242,245],{},[36,241],{},[36,243,244],{},"AutoGen",[36,246,40],{},[45,248,249,260,271],{},[33,250,251,254,257],{},[50,252,253],{},"Role",[50,255,256],{},"Multi-agent conversation and tool use",[50,258,259],{},"Realtime transport and coordination",[33,261,262,265,268],{},[50,263,264],{},"Scope",[50,266,267],{},"Within an application run",[50,269,270],{},"Across agents, services, humans, and UIs",[33,272,273,276,279],{},[50,274,275],{},"Gives you",[50,277,278],{},"Conversable agents, group chat, tools",[50,280,281],{},"Dispatch, shared state, live observation, approval gates, presence",[22,283,285],{"id":284},"why-add-nolag-under-autogen","Why add NoLag under AutoGen",[118,287,288,294,300,306],{},[121,289,290,293],{},[124,291,292],{},"Distribute agents."," Run agents in separate processes or services and route messages between them over topics.",[121,295,296,299],{},[124,297,298],{},"Share state in realtime."," Publish intermediate results so other agents, dashboards, or humans see them live.",[121,301,302,305],{},[124,303,304],{},"Stream the conversation to a UI."," Show the exchange and decisions as they happen.",[121,307,308,311],{},[124,309,310],{},"Human approval gates."," Pause a sensitive action until a person approves it.",[22,313,315],{"id":314},"how-it-fits","How it fits",[15,317,318],{},"Use the NoLag SDK from inside your AutoGen agents. Where an agent emits a message or needs input from elsewhere in your system, publish or subscribe on a NoLag topic. AutoGen keeps owning the conversation; NoLag carries the realtime communication.",[22,320,322],{"id":321},"get-started","Get started",[15,324,325,326,329,330,332,333,337,338,342,343,347],{},"Read the ",[184,327,328],{"href":196},"AI agents guide",", then the ",[184,331,187],{"href":186},". SDKs for ",[184,334,336],{"href":335},"/docs/sdks/python","Python",", ",[184,339,341],{"href":340},"/docs/sdks/javascript","JavaScript",", and ",[184,344,346],{"href":345},"/docs/sdks/go","Go",".",{"title":200,"searchDepth":201,"depth":201,"links":349},[350,351,352,353],{"id":232,"depth":201,"text":233},{"id":284,"depth":201,"text":285},{"id":314,"depth":201,"text":315},{"id":321,"depth":201,"text":322},"Use NoLag as the realtime coordination layer under AutoGen. Give multi-agent conversations shared state, task handoff, live observation, and human approval gates.",{},"/compare/autogen",{"title":218,"description":354},"compare/autogen","iUmI7EAlOQYZBuJHkcVrSw7Ywka6ZddUxLGAYkLVytM",{"id":361,"title":362,"body":363,"description":514,"extension":209,"meta":515,"navigation":211,"path":516,"seo":517,"stem":518,"__hash__":519},"compare/compare/convex.md","NoLag vs Convex",{"type":8,"value":364,"toc":507},[365,368,371,374,376,446,448,470,474,485,487,497,499],[11,366,362],{"id":367},"nolag-vs-convex",[15,369,370],{},"Convex is a reactive backend-as-a-service: you write TypeScript functions against a managed document database, and your app re-renders automatically when the underlying data changes. NoLag is dedicated realtime messaging infrastructure built on pub/sub, plus two things Convex does not focus on: blueprint SDKs for common app patterns, and a coordination layer built for AI agents.",[15,372,373],{},"Short version: if you want a full managed backend where reactive queries over your data are the model, Convex is a great fit. If you want an explicit realtime messaging layer, multi-language SDKs, and agent coordination that sits alongside whatever backend you already have, NoLag is built for that.",[22,375,25],{"id":24},[27,377,378,389],{},[30,379,380],{},[33,381,382,384,386],{},[36,383],{},[36,385,40],{},[36,387,388],{},"Convex",[45,390,391,400,411,420,428,437],{},[33,392,393,395,397],{},[50,394,52],{},[50,396,55],{},[50,398,399],{},"Reactive queries over a managed document database",[33,401,402,405,408],{},[50,403,404],{},"Backend model",[50,406,407],{},"Messaging layer in front of your stack",[50,409,410],{},"Full backend: database plus TypeScript functions",[33,412,413,415,417],{},[50,414,62],{},[50,416,65],{},[50,418,419],{},"Reactive query and mutation APIs",[33,421,422,424,426],{},[50,423,73],{},[50,425,76],{},[50,427,79],{},[33,429,430,432,434],{},[50,431,84],{},[50,433,87],{},[50,435,436],{},"Reactive subscriptions, transactional writes",[33,438,439,441,443],{},[50,440,106],{},[50,442,109],{},[50,444,445],{},"TypeScript-first, client libraries",[22,447,116],{"id":115},[118,449,450,456,460,464],{},[121,451,452,455],{},[124,453,454],{},"Messaging, not a backend runtime."," NoLag is pub/sub you can add to any stack, rather than a place to run your application functions and store your data.",[121,457,458,127],{},[124,459,126],{},[121,461,462,133],{},[124,463,132],{},[121,465,466,469],{},[124,467,468],{},"Multi-language."," First-class JavaScript/TypeScript, Go, and Python SDKs, not TypeScript only.",[22,471,473],{"id":472},"where-convex-is-a-strong-fit","Where Convex is a strong fit",[118,475,476,479,482],{},[121,477,478],{},"You want a single managed backend for data, functions, and reactivity.",[121,480,481],{},"Your app model is naturally reactive queries over stored state.",[121,483,484],{},"You are building primarily in TypeScript.",[22,486,164],{"id":163},[118,488,489,492,494],{},[121,490,491],{},"You are building AI-agent features and want coordination primitives, not just reactive state.",[121,493,172],{},[121,495,496],{},"You need realtime across JavaScript, Go, and Python, independent of your backend.",[22,498,179],{"id":178},[15,500,182,501,188,503,193,505,198],{},[184,502,187],{"href":186},[184,504,192],{"href":191},[184,506,197],{"href":196},{"title":200,"searchDepth":201,"depth":201,"links":508},[509,510,511,512,513],{"id":24,"depth":201,"text":25},{"id":115,"depth":201,"text":116},{"id":472,"depth":201,"text":473},{"id":163,"depth":201,"text":164},{"id":178,"depth":201,"text":179},"NoLag vs Convex: Convex is a reactive backend with a built-in database and TypeScript functions. NoLag is dedicated realtime messaging infrastructure with blueprint SDKs and a coordination layer for AI agents.",{},"/compare/convex",{"title":362,"description":514},"compare/convex","uFPkTH_EEglkr8-7EgceGn_0LIXlfxbGl8yMf58up_M",{"id":521,"title":522,"body":523,"description":631,"extension":209,"meta":632,"navigation":211,"path":633,"seo":634,"stem":635,"__hash__":636},"compare/compare/crewai.md","NoLag with CrewAI",{"type":8,"value":524,"toc":625},[525,528,531,534,536,578,582,606,608,611,613],[11,526,522],{"id":527},"nolag-with-crewai",[15,529,530],{},"CrewAI is a framework for orchestrating teams of role-playing autonomous agents, or crews, that collaborate on a task. It is good at defining roles, tasks, and how a crew works together within a run. NoLag is complementary: it is the realtime layer that connects those agents to each other, to your services, to a UI, and to a human, across processes and machines.",[15,532,533],{},"CrewAI defines the crew; NoLag moves the messages between the crew, the rest of your system, and the people watching.",[22,535,233],{"id":232},[27,537,538,549],{},[30,539,540],{},[33,541,542,544,547],{},[36,543],{},[36,545,546],{},"CrewAI",[36,548,40],{},[45,550,551,560,569],{},[33,552,553,555,558],{},[50,554,253],{},[50,556,557],{},"Agent roles, tasks, collaboration",[50,559,259],{},[33,561,562,564,567],{},[50,563,264],{},[50,565,566],{},"Within a crew run",[50,568,270],{},[33,570,571,573,576],{},[50,572,275],{},[50,574,575],{},"Roles, task delegation, process flow",[50,577,281],{},[22,579,581],{"id":580},"why-add-nolag-under-crewai","Why add NoLag under CrewAI",[118,583,584,590,595,601],{},[121,585,586,589],{},[124,587,588],{},"Coordinate beyond one run."," Dispatch tasks to workers in other processes or services over topics.",[121,591,592,594],{},[124,593,298],{}," Publish results so other agents, dashboards, or humans see them live.",[121,596,597,600],{},[124,598,599],{},"Stream the crew's progress to a UI."," Show what each agent is doing as it happens.",[121,602,603,605],{},[124,604,310],{}," Hold a sensitive action until a person approves it.",[22,607,315],{"id":314},[15,609,610],{},"Call the NoLag SDK from inside your CrewAI agents or tools. When an agent produces output or needs input from elsewhere, publish or subscribe on a NoLag topic. CrewAI keeps owning the crew logic; NoLag carries the realtime communication.",[22,612,322],{"id":321},[15,614,325,615,329,617,332,619,337,621,342,623,347],{},[184,616,328],{"href":196},[184,618,187],{"href":186},[184,620,336],{"href":335},[184,622,341],{"href":340},[184,624,346],{"href":345},{"title":200,"searchDepth":201,"depth":201,"links":626},[627,628,629,630],{"id":232,"depth":201,"text":233},{"id":580,"depth":201,"text":581},{"id":314,"depth":201,"text":315},{"id":321,"depth":201,"text":322},"Use NoLag as the realtime coordination layer under CrewAI. Give your crew shared state, task handoff, live observation, and human approval gates across processes.",{},"/compare/crewai",{"title":522,"description":631},"compare/crewai","sksBWpRIdJCGFIeYDxX9VC63cHdZQ2lFHCt9ztMx1CE",{"id":638,"title":639,"body":640,"description":820,"extension":209,"meta":821,"navigation":211,"path":822,"seo":823,"stem":824,"__hash__":825},"compare/compare/firebase.md","NoLag vs Firebase",{"type":8,"value":641,"toc":813},[642,645,648,651,653,745,747,775,779,790,792,803,805],[11,643,639],{"id":644},"nolag-vs-firebase",[15,646,647],{},"Firebase is Google's app development platform. Its realtime features, Realtime Database and Firestore, work by syncing documents and firing client listeners when stored data changes, alongside auth, hosting, and cloud functions. NoLag is dedicated realtime messaging infrastructure built on explicit pub/sub, plus two things Firebase does not focus on: blueprint SDKs for common realtime patterns, and a coordination layer built for AI agents.",[15,649,650],{},"Short version: if you want a managed database with data-sync realtime and the wider Google ecosystem, Firebase is a strong fit. If you want an explicit messaging layer with pub/sub, presence, QoS, and agent coordination that is independent of your database, NoLag is built for that.",[22,652,25],{"id":24},[27,654,655,666],{},[30,656,657],{},[33,658,659,661,663],{},[36,660],{},[36,662,40],{},[36,664,665],{},"Firebase",[45,667,668,677,688,699,709,717,726,736],{},[33,669,670,672,674],{},[50,671,52],{},[50,673,55],{},[50,675,676],{},"Data sync via database listeners",[33,678,679,682,685],{},[50,680,681],{},"Realtime primitive",[50,683,684],{},"Publish and subscribe to topics",[50,686,687],{},"Listen to changes on stored documents",[33,689,690,693,696],{},[50,691,692],{},"Database",[50,694,695],{},"Database-agnostic, bring your own",[50,697,698],{},"Realtime Database or Firestore, part of the platform",[33,700,701,703,706],{},[50,702,62],{},[50,704,705],{},"Blueprints for chat, notify, feed, dashboards, tracking, and more",[50,707,708],{},"Database, auth, functions, messaging services",[33,710,711,713,715],{},[50,712,73],{},[50,714,76],{},[50,716,79],{},[33,718,719,721,723],{},[50,720,84],{},[50,722,87],{},[50,724,725],{},"Offline sync, change listeners",[33,727,728,730,733],{},[50,729,95],{},[50,731,732],{},"Actor tokens with per-topic ACL; browser JWTs your backend signs",[50,734,735],{},"Security Rules language",[33,737,738,740,742],{},[50,739,106],{},[50,741,109],{},[50,743,744],{},"Client SDKs across many platforms",[22,746,116],{"id":115},[118,748,749,755,761,765,769],{},[121,750,751,754],{},[124,752,753],{},"Messaging, not data sync."," NoLag is explicit publish and subscribe over topics, rather than reacting to writes on a database you have to model around.",[121,756,757,760],{},[124,758,759],{},"Not tied to a database."," Add realtime to any stack instead of standardising on Realtime Database or Firestore.",[121,762,763,127],{},[124,764,126],{},[121,766,767,133],{},[124,768,132],{},[121,770,771,774],{},[124,772,773],{},"Actor-based auth instead of a rules language."," Permissions attach to a typed actor as per-topic ACL and are enforced at the broker, rather than written in a security-rules DSL. For browsers, your backend mints short-lived JWTs signed with a project signing key.",[22,776,778],{"id":777},"where-firebase-is-a-strong-fit","Where Firebase is a strong fit",[118,780,781,784,787],{},[121,782,783],{},"You want a managed database with offline sync and the Google ecosystem.",[121,785,786],{},"Your realtime needs map naturally to reacting to stored-data changes.",[121,788,789],{},"You are building mobile or web apps that benefit from the wider Firebase suite.",[22,791,164],{"id":163},[118,793,794,797,800],{},[121,795,796],{},"You want explicit pub/sub messaging, presence, and QoS rather than data-sync listeners.",[121,798,799],{},"You are building AI-agent features and want coordination primitives.",[121,801,802],{},"You want realtime that is independent of your database choice, across JavaScript, Go, and Python.",[22,804,179],{"id":178},[15,806,182,807,188,809,193,811,198],{},[184,808,187],{"href":186},[184,810,192],{"href":191},[184,812,197],{"href":196},{"title":200,"searchDepth":201,"depth":201,"links":814},[815,816,817,818,819],{"id":24,"depth":201,"text":25},{"id":115,"depth":201,"text":116},{"id":777,"depth":201,"text":778},{"id":163,"depth":201,"text":164},{"id":178,"depth":201,"text":179},"NoLag vs Firebase: Firebase syncs data through Realtime Database and Firestore listeners. NoLag is dedicated realtime pub/sub messaging with blueprint SDKs and a coordination layer for AI agents.",{},"/compare/firebase",{"title":639,"description":820},"compare/firebase","SDaYtOd2Jk6QLJ7SZsrQ5D60YEguFhEmgtiGrGHwMpE",{"id":827,"title":828,"body":829,"description":940,"extension":209,"meta":941,"navigation":211,"path":942,"seo":943,"stem":944,"__hash__":945},"compare/compare/langgraph.md","NoLag with LangGraph",{"type":8,"value":830,"toc":934},[831,834,837,840,842,884,888,913,915,918,920],[11,832,828],{"id":833},"nolag-with-langgraph",[15,835,836],{},"LangGraph is a framework for building stateful, multi-step agent workflows as graphs. It is excellent at modelling how an agent reasons and moves between steps inside your process. NoLag is complementary: it is the realtime layer that connects agents to each other, to your services, to a UI, and to a human, across processes and machines.",[15,838,839],{},"They are not competitors. LangGraph orchestrates the reasoning; NoLag moves the messages.",[22,841,233],{"id":232},[27,843,844,855],{},[30,845,846],{},[33,847,848,850,853],{},[36,849],{},[36,851,852],{},"LangGraph",[36,854,40],{},[45,856,857,866,875],{},[33,858,859,861,864],{},[50,860,253],{},[50,862,863],{},"Agent reasoning and control flow",[50,865,259],{},[33,867,868,870,873],{},[50,869,264],{},[50,871,872],{},"Within a process or run",[50,874,270],{},[33,876,877,879,882],{},[50,878,275],{},[50,880,881],{},"Graph state, branching, tool steps",[50,883,281],{},[22,885,887],{"id":886},"why-add-nolag-under-langgraph","Why add NoLag under LangGraph",[118,889,890,896,901,907],{},[121,891,892,895],{},[124,893,894],{},"Dispatch and hand off across workers."," Route a task from one agent or process to another over topics, rather than keeping everything in a single run.",[121,897,898,900],{},[124,899,298],{}," Publish intermediate results so other agents, dashboards, or humans see them as they happen.",[121,902,903,906],{},[124,904,905],{},"Stream decisions to a UI."," Send an agent's steps and outputs to a frontend live, without polling.",[121,908,909,912],{},[124,910,911],{},"Human-in-the-loop approval gates."," Pause an action until a person approves it, then resume.",[22,914,315],{"id":314},[15,916,917],{},"Use the NoLag SDK from inside your LangGraph nodes. Where a node produces a result or needs a decision, publish or subscribe on a NoLag topic. The graph keeps owning the control flow; NoLag carries the realtime communication between the moving parts.",[22,919,322],{"id":321},[15,921,325,922,924,925,927,928,337,930,342,932,347],{},[184,923,328],{"href":196}," for the coordination patterns, then the ",[184,926,187],{"href":186}," to connect, subscribe, and publish. SDKs for ",[184,929,341],{"href":340},[184,931,336],{"href":335},[184,933,346],{"href":345},{"title":200,"searchDepth":201,"depth":201,"links":935},[936,937,938,939],{"id":232,"depth":201,"text":233},{"id":886,"depth":201,"text":887},{"id":314,"depth":201,"text":315},{"id":321,"depth":201,"text":322},"Use NoLag as the realtime coordination layer under LangGraph. Let agents share state, hand off tasks, stream decisions to a UI, and gate actions with human approval.",{},"/compare/langgraph",{"title":828,"description":940},"compare/langgraph","6Rhenq_nE2f4-mb7wQhfYVPHfviHdXNaVocv4SL7Zvg",{"id":947,"title":948,"body":949,"description":1096,"extension":209,"meta":1097,"navigation":211,"path":1098,"seo":1099,"stem":1100,"__hash__":1101},"compare/compare/liveblocks.md","NoLag vs Liveblocks",{"type":8,"value":950,"toc":1089},[951,954,957,960,962,1033,1035,1052,1056,1067,1069,1079,1081],[11,952,948],{"id":953},"nolag-vs-liveblocks",[15,955,956],{},"Liveblocks is collaboration infrastructure focused on multiplayer experiences: presence, live cursors, comments, and conflict-free shared state for collaborative editors and whiteboards. NoLag is general-purpose realtime messaging infrastructure built on pub/sub, with a collaboration blueprint of its own, plus a coordination layer built for AI agents.",[15,958,959],{},"Short version: if your product is a collaborative document or canvas and you want conflict-free shared state out of the box, Liveblocks is purpose-built for that. If you need realtime across many app patterns, not just collaborative editing, and you are building agentic features, NoLag is built for that.",[22,961,25],{"id":24},[27,963,964,975],{},[30,965,966],{},[33,967,968,970,972],{},[36,969],{},[36,971,40],{},[36,973,974],{},"Liveblocks",[45,976,977,986,997,1007,1015,1024],{},[33,978,979,981,983],{},[50,980,52],{},[50,982,55],{},[50,984,985],{},"Collaboration primitives over WebSocket",[33,987,988,991,994],{},[50,989,990],{},"Primary focus",[50,992,993],{},"General realtime and agent coordination",[50,995,996],{},"Collaborative editing and multiplayer UIs",[33,998,999,1001,1004],{},[50,1000,62],{},[50,1002,1003],{},"Blueprints for chat, notify, feed, dashboards, tracking, collab, and more",[50,1005,1006],{},"Presence, comments, conflict-free storage",[33,1008,1009,1011,1013],{},[50,1010,73],{},[50,1012,76],{},[50,1014,79],{},[33,1016,1017,1019,1021],{},[50,1018,84],{},[50,1020,87],{},[50,1022,1023],{},"Presence, shared storage, awareness",[33,1025,1026,1028,1030],{},[50,1027,106],{},[50,1029,109],{},[50,1031,1032],{},"Client libraries and framework bindings",[22,1034,116],{"id":115},[118,1036,1037,1043,1047],{},[121,1038,1039,1042],{},[124,1040,1041],{},"General-purpose realtime."," Chat, notifications, dashboards, tracking, IoT, and collaboration are all blueprints on one platform, not a single collaboration model.",[121,1044,1045,133],{},[124,1046,132],{},[121,1048,1049,1051],{},[124,1050,468],{}," First-class JavaScript/TypeScript, Go, and Python SDKs for backends, devices, and agents, not just frontend collaboration.",[22,1053,1055],{"id":1054},"where-liveblocks-is-a-strong-fit","Where Liveblocks is a strong fit",[118,1057,1058,1061,1064],{},[121,1059,1060],{},"Your product is a collaborative editor, whiteboard, or design tool.",[121,1062,1063],{},"You want conflict-free shared state and awareness handled for you.",[121,1065,1066],{},"Your realtime needs are centred on multiplayer editing.",[22,1068,164],{"id":163},[118,1070,1071,1074,1076],{},[121,1072,1073],{},"You need realtime across many patterns, not just collaborative editing.",[121,1075,799],{},[121,1077,1078],{},"You want one platform for human-facing and agent-facing realtime.",[22,1080,179],{"id":178},[15,1082,182,1083,188,1085,193,1087,198],{},[184,1084,187],{"href":186},[184,1086,192],{"href":191},[184,1088,197],{"href":196},{"title":200,"searchDepth":201,"depth":201,"links":1090},[1091,1092,1093,1094,1095],{"id":24,"depth":201,"text":25},{"id":115,"depth":201,"text":116},{"id":1054,"depth":201,"text":1055},{"id":163,"depth":201,"text":164},{"id":178,"depth":201,"text":179},"NoLag vs Liveblocks: Liveblocks specialises in collaborative editing with presence and conflict-free state. NoLag is general realtime messaging infrastructure with blueprint SDKs and a coordination layer for AI agents.",{},"/compare/liveblocks",{"title":948,"description":1096},"compare/liveblocks","aK8KmPqknAD0QWHjQJqNVE4EtuDCHz2sG-X6_HEEyb4",{"id":1103,"title":1104,"body":1105,"description":1250,"extension":209,"meta":1251,"navigation":211,"path":1252,"seo":1253,"stem":1254,"__hash__":1255},"compare/compare/pubnub.md","NoLag vs PubNub",{"type":8,"value":1106,"toc":1243},[1107,1110,1113,1116,1118,1187,1189,1206,1210,1220,1222,1232,1234],[11,1108,1104],{"id":1109},"nolag-vs-pubnub",[15,1111,1112],{},"PubNub is a realtime messaging platform known for pub/sub at scale, presence, and serverless Functions for handling events. NoLag shares the realtime pub/sub foundation and adds two things: blueprint SDKs for common app patterns, and a coordination layer built for AI agents.",[15,1114,1115],{},"Short version: if you want large-scale messaging with serverless event handlers, PubNub is a strong fit. If your focus is shipping realtime features quickly, or coordinating AI agents, NoLag is built for that.",[22,1117,25],{"id":24},[27,1119,1120,1131],{},[30,1121,1122],{},[33,1123,1124,1126,1128],{},[36,1125],{},[36,1127,40],{},[36,1129,1130],{},"PubNub",[45,1132,1133,1142,1151,1159,1170,1179],{},[33,1134,1135,1137,1139],{},[50,1136,52],{},[50,1138,55],{},[50,1140,1141],{},"Realtime pub/sub messaging",[33,1143,1144,1146,1148],{},[50,1145,62],{},[50,1147,65],{},[50,1149,1150],{},"Pub/sub, presence, Functions",[33,1152,1153,1155,1157],{},[50,1154,73],{},[50,1156,76],{},[50,1158,79],{},[33,1160,1161,1164,1167],{},[50,1162,1163],{},"Server-side logic",[50,1165,1166],{},"Webhooks and topic configs",[50,1168,1169],{},"Serverless Functions",[33,1171,1172,1174,1176],{},[50,1173,95],{},[50,1175,98],{},[50,1177,1178],{},"Access Manager grants",[33,1180,1181,1183,1185],{},[50,1182,106],{},[50,1184,109],{},[50,1186,112],{},[22,1188,116],{"id":115},[118,1190,1191,1196,1201],{},[121,1192,1193,1195],{},[124,1194,126],{}," Ship chat, notifications, dashboards, and tracking with a domain-specific API instead of assembling primitives.",[121,1197,1198,1200],{},[124,1199,132],{}," Dispatch work, share state, observe decisions, and gate actions with human approval, on the same infrastructure as your app.",[121,1202,1203],{},[124,1204,1205],{},"One platform for agents and humans.",[22,1207,1209],{"id":1208},"where-pubnub-is-a-strong-fit","Where PubNub is a strong fit",[118,1211,1212,1215,1218],{},[121,1213,1214],{},"Proven at very large messaging scale.",[121,1216,1217],{},"Serverless Functions for in-stream event processing.",[121,1219,160],{},[22,1221,164],{"id":163},[118,1223,1224,1226,1229],{},[121,1225,799],{},[121,1227,1228],{},"You want higher-level SDKs to move faster on common patterns.",[121,1230,1231],{},"You want a single realtime platform for both humans and agents.",[22,1233,179],{"id":178},[15,1235,182,1236,1238,1239,193,1241,198],{},[184,1237,187],{"href":186},", then explore the ",[184,1240,192],{"href":191},[184,1242,197],{"href":196},{"title":200,"searchDepth":201,"depth":201,"links":1244},[1245,1246,1247,1248,1249],{"id":24,"depth":201,"text":25},{"id":115,"depth":201,"text":116},{"id":1208,"depth":201,"text":1209},{"id":163,"depth":201,"text":164},{"id":178,"depth":201,"text":179},"NoLag vs PubNub: both deliver realtime messaging at scale. NoLag adds a coordination layer for AI agents and blueprint SDKs for chat, notifications, and dashboards.",{},"/compare/pubnub",{"title":1104,"description":1250},"compare/pubnub","lp4qzIBXNE2a7x4qAbZ_IxnwaMK0W_WsiWg7EWoguSY",{"id":1257,"title":1258,"body":1259,"description":1412,"extension":209,"meta":1413,"navigation":211,"path":1414,"seo":1415,"stem":1416,"__hash__":1417},"compare/compare/pusher.md","NoLag vs Pusher",{"type":8,"value":1260,"toc":1405},[1261,1264,1267,1270,1272,1340,1342,1366,1370,1381,1383,1394,1396],[11,1262,1258],{"id":1263},"nolag-vs-pusher",[15,1265,1266],{},"Pusher Channels is a well-established hosted pub/sub service for adding realtime features to web and mobile apps. NoLag is realtime messaging infrastructure that goes further in two directions: ready-made high-level SDKs for common app patterns, and a coordination layer purpose-built for AI agents.",[15,1268,1269],{},"Short version: for classic channels-and-events pub/sub, both work well. If your roadmap includes AI agents, or you would rather not rebuild chat, presence, and dashboards from primitives, NoLag saves you the wiring.",[22,1271,25],{"id":24},[27,1273,1274,1285],{},[30,1275,1276],{},[33,1277,1278,1280,1282],{},[36,1279],{},[36,1281,40],{},[36,1283,1284],{},"Pusher Channels",[45,1286,1287,1295,1304,1312,1322,1332],{},[33,1288,1289,1291,1293],{},[50,1290,52],{},[50,1292,55],{},[50,1294,55],{},[33,1296,1297,1299,1301],{},[50,1298,62],{},[50,1300,65],{},[50,1302,1303],{},"Channels and events primitives",[33,1305,1306,1308,1310],{},[50,1307,73],{},[50,1309,76],{},[50,1311,79],{},[33,1313,1314,1317,1319],{},[50,1315,1316],{},"Presence and delivery",[50,1318,87],{},[50,1320,1321],{},"Presence channels",[33,1323,1324,1326,1329],{},[50,1325,95],{},[50,1327,1328],{},"One actor token authenticates; ACL enforced at the broker, no per-subscribe callback",[50,1330,1331],{},"Auth endpoint callback for private and presence channels",[33,1333,1334,1336,1338],{},[50,1335,106],{},[50,1337,109],{},[50,1339,112],{},[22,1341,116],{"id":115},[118,1343,1344,1349,1354,1360],{},[121,1345,1346,1348],{},[124,1347,126],{}," Chat with presence, typing, and replay; notifications with unread counts; live dashboards; asset tracking. You get a domain-specific API instead of wiring events by hand.",[121,1350,1351,1353],{},[124,1352,132],{}," Dispatch work, share state, observe decisions live, and gate actions with human approval, on the same infrastructure as your human-facing features.",[121,1355,1356,1359],{},[124,1357,1358],{},"One platform for humans and agents."," The realtime substrate is shared, so an agentic feature and a chat feature run on the same connection model.",[121,1361,1362,1365],{},[124,1363,1364],{},"Actor-based auth, no auth endpoint to build."," A connection authenticates once with an actor token, and read/write permissions are enforced at the broker, so there is no per-subscribe callback to your server for private or presence channels. For browsers, your backend mints short-lived JWTs signed with a project signing key.",[22,1367,1369],{"id":1368},"where-pusher-is-a-strong-fit","Where Pusher is a strong fit",[118,1371,1372,1375,1378],{},[121,1373,1374],{},"Mature and widely adopted, with a large body of community examples.",[121,1376,1377],{},"Simple channels-and-events mental model.",[121,1379,1380],{},"Broad official library coverage across languages.",[22,1382,164],{"id":163},[118,1384,1385,1388,1391],{},[121,1386,1387],{},"You are building for AI agents, or expect to soon.",[121,1389,1390],{},"You want higher-level SDKs rather than assembling primitives.",[121,1392,1393],{},"You want chat, dashboards, or tracking without rebuilding them.",[22,1395,179],{"id":178},[15,1397,182,1398,1400,1401,193,1403,198],{},[184,1399,187],{"href":186}," to connect, subscribe, and publish your first message, then explore the ",[184,1402,192],{"href":191},[184,1404,197],{"href":196},{"title":200,"searchDepth":201,"depth":201,"links":1406},[1407,1408,1409,1410,1411],{"id":24,"depth":201,"text":25},{"id":115,"depth":201,"text":116},{"id":1368,"depth":201,"text":1369},{"id":163,"depth":201,"text":164},{"id":178,"depth":201,"text":179},"NoLag vs Pusher: both add realtime pub/sub to your app. NoLag also gives you AI-agent coordination and ready-made high-level SDKs for chat, notifications, and dashboards.",{},"/compare/pusher",{"title":1258,"description":1412},"compare/pusher","oV0R5UJXjqvgAeiSue8UOb5NMKnWc6vWtKvVx2qZP0E",{"id":1419,"title":1420,"body":1421,"description":1587,"extension":209,"meta":1588,"navigation":211,"path":1589,"seo":1590,"stem":1591,"__hash__":1592},"compare/compare/socketio.md","NoLag vs Socket.io",{"type":8,"value":1422,"toc":1580},[1423,1426,1429,1432,1434,1519,1521,1543,1547,1558,1560,1570,1572],[11,1424,1420],{"id":1425},"nolag-vs-socketio",[15,1427,1428],{},"Socket.io is a widely used library for realtime events between a Node.js server and its clients. It is flexible and battle-tested, but you run and scale the server yourself: sticky sessions, a Redis adapter for multiple nodes, and your own auth, presence, and delivery logic. NoLag is managed realtime infrastructure that ships those pieces built in, plus a coordination layer for AI agents.",[15,1430,1431],{},"Short version: if you want full control and are happy operating your own realtime server, Socket.io is a solid library. If you would rather not run and scale that infrastructure, and you want presence, access control, QoS, and blueprint SDKs out of the box, NoLag is built for that.",[22,1433,25],{"id":24},[27,1435,1436,1447],{},[30,1437,1438],{},[33,1439,1440,1442,1444],{},[36,1441],{},[36,1443,40],{},[36,1445,1446],{},"Socket.io",[45,1448,1449,1460,1471,1482,1493,1502,1510],{},[33,1450,1451,1454,1457],{},[50,1452,1453],{},"Model",[50,1455,1456],{},"Managed realtime infrastructure",[50,1458,1459],{},"Self-hosted realtime library",[33,1461,1462,1465,1468],{},[50,1463,1464],{},"Operations",[50,1466,1467],{},"Fully managed, nothing to run",[50,1469,1470],{},"You run and scale the server yourself",[33,1472,1473,1476,1479],{},[50,1474,1475],{},"Scaling",[50,1477,1478],{},"Handled for you",[50,1480,1481],{},"Sticky sessions plus a Redis adapter for multi-node",[33,1483,1484,1487,1490],{},[50,1485,1486],{},"Presence and access control",[50,1488,1489],{},"Built in",[50,1491,1492],{},"Build it yourself",[33,1494,1495,1497,1499],{},[50,1496,62],{},[50,1498,705],{},[50,1500,1501],{},"Event emit and listen primitives",[33,1503,1504,1506,1508],{},[50,1505,73],{},[50,1507,76],{},[50,1509,79],{},[33,1511,1512,1514,1516],{},[50,1513,106],{},[50,1515,109],{},[50,1517,1518],{},"JavaScript-first, community ports",[22,1520,116],{"id":115},[118,1522,1523,1529,1535,1539],{},[121,1524,1525,1528],{},[124,1526,1527],{},"Nothing to operate."," No realtime server to run, scale, or patch, and no Redis adapter to wire up for multiple nodes.",[121,1530,1531,1534],{},[124,1532,1533],{},"Presence, access control, and QoS built in."," These come with the platform instead of being your responsibility.",[121,1536,1537,127],{},[124,1538,126],{},[121,1540,1541,133],{},[124,1542,132],{},[22,1544,1546],{"id":1545},"where-socketio-is-a-strong-fit","Where Socket.io is a strong fit",[118,1548,1549,1552,1555],{},[121,1550,1551],{},"You want maximum control and are comfortable operating your own server.",[121,1553,1554],{},"You have a single Node.js app and simple realtime needs.",[121,1556,1557],{},"You prefer a library dependency over a managed service.",[22,1559,164],{"id":163},[118,1561,1562,1565,1568],{},[121,1563,1564],{},"You do not want to run and scale realtime infrastructure.",[121,1566,1567],{},"You want presence, access control, QoS, and higher-level SDKs without building them.",[121,1569,799],{},[22,1571,179],{"id":178},[15,1573,182,1574,188,1576,193,1578,198],{},[184,1575,187],{"href":186},[184,1577,192],{"href":191},[184,1579,197],{"href":196},{"title":200,"searchDepth":201,"depth":201,"links":1581},[1582,1583,1584,1585,1586],{"id":24,"depth":201,"text":25},{"id":115,"depth":201,"text":116},{"id":1545,"depth":201,"text":1546},{"id":163,"depth":201,"text":164},{"id":178,"depth":201,"text":179},"NoLag vs Socket.io: Socket.io is a self-hosted realtime library you run and scale yourself. NoLag is managed realtime infrastructure with presence, QoS, blueprint SDKs, and a coordination layer for AI agents.",{},"/compare/socketio",{"title":1420,"description":1587},"compare/socketio","jllVbfqClB7eOUUXembK15W-GF0sGqJa7KYjFtbGqkA",{"id":1594,"title":1595,"body":1596,"description":1746,"extension":209,"meta":1747,"navigation":211,"path":1748,"seo":1749,"stem":1750,"__hash__":1751},"compare/compare/supabase.md","NoLag vs Supabase Realtime",{"type":8,"value":1597,"toc":1739},[1598,1601,1604,1607,1609,1686,1688,1703,1707,1718,1720,1729,1731],[11,1599,1595],{"id":1600},"nolag-vs-supabase-realtime",[15,1602,1603],{},"Supabase is an all-in-one backend built around Postgres, with authentication, storage, edge functions, and a Realtime feature for broadcasting database changes, presence, and messages over WebSocket. NoLag is dedicated realtime messaging infrastructure with the same pub/sub foundation, plus two things Supabase Realtime does not focus on: blueprint SDKs for common app patterns, and a coordination layer built for AI agents.",[15,1605,1606],{},"Short version: if you want a managed Postgres backend and realtime is one feature alongside it, Supabase is a great fit. If realtime messaging and agent coordination are the core of what you are building, and you do not want to be tied to a specific database, NoLag is built for that.",[22,1608,25],{"id":24},[27,1610,1611,1622],{},[30,1612,1613],{},[33,1614,1615,1617,1619],{},[36,1616],{},[36,1618,40],{},[36,1620,1621],{},"Supabase Realtime",[45,1623,1624,1633,1642,1651,1659,1668,1677],{},[33,1625,1626,1628,1630],{},[50,1627,52],{},[50,1629,55],{},[50,1631,1632],{},"Realtime over WebSocket, coupled to Postgres",[33,1634,1635,1637,1639],{},[50,1636,692],{},[50,1638,695],{},[50,1640,1641],{},"Postgres, part of the platform",[33,1643,1644,1646,1648],{},[50,1645,62],{},[50,1647,65],{},[50,1649,1650],{},"Realtime channels: broadcast, presence, Postgres changes",[33,1652,1653,1655,1657],{},[50,1654,73],{},[50,1656,76],{},[50,1658,79],{},[33,1660,1661,1663,1665],{},[50,1662,84],{},[50,1664,87],{},[50,1666,1667],{},"Presence, broadcast, change data capture",[33,1669,1670,1672,1674],{},[50,1671,95],{},[50,1673,98],{},[50,1675,1676],{},"Postgres Row Level Security via JWT",[33,1678,1679,1681,1683],{},[50,1680,106],{},[50,1682,109],{},[50,1684,1685],{},"Client libraries across several languages",[22,1687,116],{"id":115},[118,1689,1690,1695,1699],{},[121,1691,1692,1694],{},[124,1693,759],{}," NoLag is a messaging layer you can put in front of any stack, rather than realtime bound to Postgres change feeds.",[121,1696,1697,127],{},[124,1698,126],{},[121,1700,1701,133],{},[124,1702,132],{},[22,1704,1706],{"id":1705},"where-supabase-is-a-strong-fit","Where Supabase is a strong fit",[118,1708,1709,1712,1715],{},[121,1710,1711],{},"You want a managed Postgres backend with auth, storage, and functions in one place.",[121,1713,1714],{},"Your realtime needs are mostly reacting to database changes.",[121,1716,1717],{},"You are happy to standardise on the Supabase ecosystem.",[22,1719,164],{"id":163},[118,1721,1722,1724,1726],{},[121,1723,169],{},[121,1725,172],{},[121,1727,1728],{},"You want realtime messaging that is independent of your database choice.",[22,1730,179],{"id":178},[15,1732,182,1733,188,1735,193,1737,198],{},[184,1734,187],{"href":186},[184,1736,192],{"href":191},[184,1738,197],{"href":196},{"title":200,"searchDepth":201,"depth":201,"links":1740},[1741,1742,1743,1744,1745],{"id":24,"depth":201,"text":25},{"id":115,"depth":201,"text":116},{"id":1705,"depth":201,"text":1706},{"id":163,"depth":201,"text":164},{"id":178,"depth":201,"text":179},"NoLag vs Supabase Realtime: both give you realtime over WebSocket. Supabase ties realtime to a Postgres backend; NoLag is dedicated realtime infrastructure with blueprint SDKs and a coordination layer for AI agents.",{},"/compare/supabase",{"title":1595,"description":1746},"compare/supabase","ZA8uo1X6oiRC8bMIWKc-66zwSeqLKSpqCDndBFhh3kU",1788160345035]