Zed opens up, Ollama gets JS & Python libs, the story of Scrapscript, notes from a tired maintainer & more

Changelog News

Developer news that’s all THAT

Hello again! 👋

I’m filing this issue* early, because on Monday Adam & I will be hallway trackin’ it at THAT Conference. Stop by if you’ll be there. We’ll also be recording on the main stage at 4pm and frontend feuding at game night!

Oh, and I’m punting on the Apple/EU App Store story. It’s big & complicated! Also there’s lots of good coverage of it.

(*old metaphors die hard)

Ok, let’s get into the news. (Audio Edition)

💬 Quote of the week

Proprietary software is like creating art which no-one can see. Open Source elevates software engineering to a collaborative art form. Code is poetry.

— Tom Willmot (via ma.tt)

💰 Rune open source grants: $100k for indie game devs

I volunteered to judge the last couple React Game Jams. (It’s a fun way to help out and all I have to do is play some video games with my kids and talk about which ones we like the best!) As a result, I’ve come to know of the Rune platform for multiplayer mobile games. Looks like the folks behind Rune would like more people to know about it:

We at Rune believe that tons of amazing multiplayer games are just waiting to be made by talented indie devs. We’ve created this $100k grants program to help such indie devs and grow the open-source web game community. Based on us searching GitHub, we’ve found only 25 open-source multiplayer JS games. We hope that these grants will dramatically boost the ecosystem!

$500 “spark” grants and $5000 “ignite” grants are both on offer. If you needed a good excuse to finally build that game you’ve been thinking about forever…

🤲 Zed is now open source

Zed, the multiplayer code editor from the team behind Atom, is now open source. Listeners of our conversation with Nathan Sobo on The Changelog know, this has been on Nathan’s mind for a very long time.

We’re excited to announce that Zed is now an open source project. The code for Zed itself will be made available under a copyleft license to ensure any improvements will benefit the entire community (GPL for the editor, AGPL for server-side components). GPUI, the UI framework that powers Zed, will be distributed under the Apache 2 license, so that you can use it to build high-performance desktop applications and distribute them under any license you choose.

They also took this opportunity to introduce Fireside Hacks based on a new Zed feature called Zed Channels.

Starting tomorrow, we’ll be using Channels to run a new program called Fireside Hacks, in which we’ll be streaming into a public channel regularly we work on Zed live with whoever shows up. We’ll be experimenting with different formats, but we’re hoping these regular sessions give us all an opportunity to get to know each other better, beyond what’s possible in a static pull request.

I love this idea! Unfortunately, I missed the first stream, but I’m excited to see if and how this format takes off.

🦙 Get up and running with LLMs, locally

Ollama is an open source effort to help devs run llama2, mistral & many other language models on your own hardware. This week, they released Python & JavaScript libraries:

Both libraries make it possible to integrate new and existing apps with Ollama in a few lines of code, and share the features and feel of the Ollama REST API.

Now you can pip install ollama or npm install ollama to be up and running in no time. Basic usage requires very little code. Here’s some JS:

import ollama from 'ollama'

const response = await ollama.chat({
  model: 'llama2',
  messages: [{ role: 'user', content: 'Why is the sky blue?' }],

🆙 Time to take NATS to the next level

Thanks to Synadia for sponsoring Changelog News 💰

NATS is becoming the go-to open source tech that brings secure, multi-tenant, connectivity-first thinking to distributed systems design that scales with your application and your organization.

Want to use it? Choose the idiomatic NATS client SDK for the language of your choice and build all of your core services and data streams. Pub-sub? Request-reply? Data streaming? Key-value storage? Object storage? NATS does that!

Synadia is helping teams take NATS to the next level with a global, multi-cloud, multi-geo & extensible service that is fully managed. Learn more and try it out for FREE by going to synadia.com/changelog

🤝 The story of Scrapscript (so far)

When Taylor Troesh was on The Changelog last year, I asked him about Scrapscript, his in-development programming language that solves the software sharability problem. At the time, the project’s status:

I hope it comes out in 2024. I just put that there because it’s not coming out this year. [laughs]

And when I drilled down on the project’s status, Taylor said:

The only reason it’s private right now is I’m trying to get – I’ve already been getting some feedback and trying to tune a few more things in private, so that when I put it out, I think everyone can have like a little bit more fruitful discussion…

I don’t know, it’s hard as an open source person trying to make something…

That was the beginning of the story, from my perspective. But little did I know about Max Bernstein & Chris Gregory. Max:

In April of 2023, I saw scrapscript posted on Hacker News and sent it to Chris. We send each other new programming languages and he’s very into functional programming, so I figured he would enjoy it. He did!

But we didn’t see any links to download or browse an implementation, so we were a little bummed. We love trying stuff out and getting a feel for how it works. A month or two passed and there still was not an implementation, so we decided to email Taylor and ask if we could help.

This was the beginning of a beautiful friendshipimplementation that Max writes all about in the linked blog post.

🗒️ Notes from a tired maintainer

Pooya Parsa, creator of UnJS and one of the maintainers of Nuxt, saying what so many maintainers have (or haven’t) said before:

The thing is, maintaining multiple open-source projects is not as easy as you might imagine. As a full-time open-source maintainer, I roughly receive more than 200 notifications every 12 hours plus random messages and all are expected to be responded to. They often come from completely different people with different contexts, skill levels, priorities concerns, and so on.

He goes on to describe various circumstances in which messages come to him and responses from a tired maintainer.

🛠️ Tools for your trade

  • remoteStorage: persists data across browsers & devices reusing the localStorage API
  • dive: a tool for exploring each layer in a docker image
  • deadcode: finds unreachable functions in Go programs
  • Tart: a virtualization toolset to build, run & manage macOS / Linux VMs on Apple Silicon
  • Refine: a React framework for building internal tools with “unmatched flexibility”
  • WhisperSpeech: a text-to-speech system built by inverting Whisper
  • Keploy: converts user-traffic to test cases and data stubs
  • pgxman: like npm, but for Postgres extensions
  • verto.sh: a directory of open source projects that are beginner-friendly

🎞️ Clip of the week

Our Frontend Feud game shows are a riot. Here’s round 3 from the most recent feud in its entirety 💯

Frontend Feud round 3 thumbnail

🎧 ICYMI: Recent good pods from us

💚 Gradually gradually typing Elixir – Our old friend José Valim & his team have been hard at work adding gradual typing to Elixir. They’re only 1-3% of the way there, but a lot of progress has been made. So, we invited him back on the show for a deep-dive on why, how & when Elixir will be gradually typed.

🎙️ Shift left, seriously. – Adam is joined by Justin Garrison (co-host of Ship It!), plus two members of the BoxyHQ team: Deepak Prabhakara & Schalk Neethling. We discuss how to shift left, the role of the developer and the burden of security, the importance of tooling, authentication vs authorization & a mindset change for when security takes place.

The past, present & future of Go Time – Over the past 8 years, Go Time has published 300 episodes! In this episode, the panel discusses which ones they loved the most, some current stuff that’s in the works, what struggles the podcast has had & what we’re planning for the future.

🪩 From sales to engineeringShaundai Person joins Nick & I for a fascinating discussion of her transition from a sales position to Senior Software Engineer at Netflix. Along the way, we discuss sales as a superpower, how to build confidence in yourself & even sneak a little TypeScript talk in there because you know who…

🤖 Collaboration & evaluation for LLM appsRaza Habib from Humanloop helps us understand how non-technical prompt engineers can productively collaborate with technical software engineers while building AI-driven apps.

That’s the news for now! Have a great week, forward this to a friend if you dig it, and I’ll talk to you again real soon. 💚