The cool thing about using ForeverVM with LLMs is that you can create diagrams almost as quickly as you can think of them.
25.03.2025 15:03 β π 1 π 0 π¬ 0 π 0@jamsocket.com.bsky.social
Company updates from Jamsocket, the platform for scaling sync engines.
The cool thing about using ForeverVM with LLMs is that you can create diagrams almost as quickly as you can think of them.
25.03.2025 15:03 β π 1 π 0 π¬ 0 π 0Code execution is the ultimate tool call.
Here we're using ForeverVM with boto3 to visualize our AWS infrastructure without needing specialized tools.
Had a blast hosting MCP Lightning talks SF with Cloudflare! Thanks to everyone who spoke.
Doing it again next week in NYC.
Install ForeverVM in your @windsurf_ai editor: https://forevervm.com/docs/guides/forevervm-mcp-server/
24.02.2025 18:01 β π 0 π 0 π¬ 0 π 0Code execution is the ultimate tool call. Once an LLM can run its own code, it can run loops, access APIs, and extract the result.
In this video, Windsurf uses ForeverVM to make HTTP calls to check a list of Python packages against the latest PyPi version.
Because ForeverVM keeps REPLs alive forever, you can ask Claude unlimited queries about a dataset and Claude can always access the same context.
20.02.2025 18:01 β π 2 π 0 π¬ 0 π 0Give Claude the power of a Python REPL. Perform complex data analysis or draw a mandlebrot with ASCII characters.
Install ForeverVM as a tool on Claude Desktop: https://forevervm-com.vercel.app/docs/guides/forevervm-mcp-server/
Signups for ForeverVM are now open! If you have node.js or uv, you can sign up from your terminal with a one-liner.
npx forevervm signup
Or read our new docs for more: https://forevervm.com/docs
Jamsocket is now officially SOC 2 Type II compliant!
Whether you use our managed platform or bring-your-own-cloud, rest easy knowing that we put security and reliability first.
Giving an LLM a code sandbox massively increases its capabilities, but managing VM lifecycles is a pain.
Introducing foreverVM, a Python REPL-as-a-service. Under the hood, we swap between memory and durable storage. To you (and your agent) it acts like an always-on REPL.
See more at forevervm.com
Y-Sweet now supports Read-Only Tokens for use cases where a client should only have read access to a document.
See docs at https://docs.jamsocket.com/y-sweet/features/read-only-tokens
New demo drop! https://demos.y-sweet.dev/monaco
Collaborate in code with Monaco and Y-Sweet
The trick is a technique called fractional indexing, in which indices are fractions rather than integers. Can you solve the exercise and implement it?
Give it a shot at https://learn.yjs.dev/lessons/03-todo-list/!
Instead of keeping the todos in an array, try keeping them in a map.
We can give each todo an index property. The ordered list of todos is an array of the map values sorted by the index property. To move a todo, simply set a new index!
It sounds good in theory, butβ¦
Hereβs a curious fact about Yjs. Once you add a shared type to a document, it can never be moved. You can change what it contains and you can delete it, but you canβt move it from one place to another.
That means moving array elements really means deleting and re-adding them.
Just like before, though, things can get a little wonky when we start adding latencyβ¦
17.01.2025 17:00 β π 0 π 0 π¬ 1 π 0In Learn Yjs lesson 3, we look at another classic app: the todo list!
This demo allows each client to reorder the todos and toggle their checkboxes.
Can you solve the exercise and implement a counter that shows the correct count, even when clients update it concurrently?
Give it a shot at https://learn.yjs.dev/lessons/02-counter/!
Not so fast! This demo happens to be working because updates are synchronous. Every time the button gets clicked, the other client instantly receives the update.
When we add a little latency, the counter breaks!
In Learn Yjs lesson 2, we look at the βhello worldβ of JavaScript framework demos: the humble click counter.
Seems pretty simple, right?
Can you solve the exercise and implement a function that returns whether all the keys in a map are true?
Give it a shot at https://learn.yjs.dev/lessons/01-introduction/!
Like JavaScriptβs Map object, a Yjs map holds key/value pairs.
Here you can see how Yjs syncs the values between two maps, with latency added to simulate a network connection.
Y.Array stores an ordered list of items. Y.Map stores key/value pairs. Y.Text stores a string of plain or formatted text. Y.XmlElement stores a node found in an HTML-like tree structure. Y.XmlFragment stores a collection of Y.XmlElements. Y.XmlText stores text found within a Y.XmlElement.
A Yjs document is like a container for your state. To read and update that state, Yjs has a feature called shared types. Theyβre similar to JavaScript data structures such as Map β except shared types automatically sync between clients.
All in all, there are six shared types:
Yjs is a CRDT that stores its state in documents and syncs them between clients.
Here you can see how Yjs syncs documents between clients. When one client moves a slider, the other client automatically sees the updated value.
Want to learn about building local-first apps? Check out Learn Yjs, our interactive guide to Yjs! Featuring three lessons jam-packed with explorable explanations and coding exercises.
14.01.2025 16:00 β π 11 π 2 π¬ 0 π 2Something cool coming tomorrow π
13.01.2025 20:19 β π 10 π 1 π¬ 0 π 1Read our interview with @bastiendolla.bsky.social, cofounder of Rayon. We talk about why Rayon replaced their database with Jamsocket, building Rayon V2 and features like version control.
jamsocket.com/blog/why-ray...
Easily build collaborative apps like Google Docs using our new Y-Sweet x InstantDB starter kit: https://buff.ly/40nbfbe
07.01.2025 17:00 β π 1 π 0 π¬ 0 π 0Y-Sweet now has offline support! Read about it and the other changes in the newly-released Y-Sweet 0.7.0.
jamsocket.com/blog/y-sweet...
@jamsocket.com & @extism.bsky.social gang π«‘
03.12.2024 22:41 β π 6 π 2 π¬ 1 π 0