Releases: zig-nostr/plaza
Release list
Plaza v0.12.3
Plaza is a fast, local-first Nostr client, built natively in Zig. macOS (Apple Silicon), ad-hoc signed (not notarized).
What's new in v0.12.3
The sign-in sheet had a hole in it. The sheet is a card centred in a dimmed window, and the box holding that card was 48 points wider than the card itself. The card takes presses so it does not close the sheet from under you, and the dim behind it closes the sheet, but that 48 point band did neither, and it sits in front of the dim. Clicking there did nothing at all except reach the feed underneath, so a click beside the sheet opened whatever picture happened to be behind it.
There is one width now, the wider of the two, so the sheet is a little roomier as well as solid. Clicking anywhere outside the card closes it and does nothing else.
The sheet spaces itself properly. Every gap in it used to be placed by hand, nine separate numbers that nobody could see next to each other, and the sheet ended up with 44 points of margin down its sides, 50 above the heading and 26 below the way out. It now uses one scale throughout and sits evenly inside its own edges, so the heading, the three ways in, and the way out are all where they should be.
Install
curl -fsSL https://raw.githubusercontent.com/zig-nostr/plaza/main/scripts/install-macos.sh | bashThe installer downloads this release, verifies its SHA-256, installs Plaza.app to /Applications, clears the download-quarantine flag, and opens it.
It touches the app bundle and nothing else. Your session and your local store live in ~/.plaza, your key in the login Keychain, and both are left alone, so upgrading never costs you your identity.
Why it is not notarized
Plaza signs notes with your key. The trust anchor for that is a build you can reproduce from source, not an Apple signature you cannot inspect. Read the installer, or skip it and build from source: the same scripts/package-macos.sh that produced this artifact runs on your machine.
If you would rather not connect a key at all, Plaza reads without one, and every gated verb asks at the moment you reach for it.
Plaza v0.12.2
Plaza is a fast, local-first Nostr client, built natively in Zig. macOS (Apple Silicon), ad-hoc signed (not notarized).
What's new in v0.12.2
Faces that were stuck behind a proxy refusing their host. Plaza asks an image proxy to fetch and shrink pictures, and the default one refuses whole domains by policy rather than by picture: any .pub address comes back as "Domain or TLD blocked by policy". Ditto's media server is blossom.ditto.pub, so anybody whose picture lives there arrived as initials and a flat colour band, on every screen, and stayed that way.
The feed's own pictures already knew what to do about this: when the proxy refuses the host rather than the picture, ask the host itself. Faces and banners never learned it, so notes rendered and the people in them did not. Both now do, once per picture, and only when it was the host that was refused. A picture the proxy could not find is not asked for again, because it will not be at the host either.
A face fetched this way is the full-size file rather than the small one the proxy would have returned, which costs more to download and is why this happens only when there is no other way to get the picture at all.
Install
curl -fsSL https://raw.githubusercontent.com/zig-nostr/plaza/main/scripts/install-macos.sh | bashThe installer downloads this release, verifies its SHA-256, installs Plaza.app to /Applications, clears the download-quarantine flag, and opens it.
It touches the app bundle and nothing else. Your session and your local store live in ~/.plaza, your key in the login Keychain, and both are left alone, so upgrading never costs you your identity.
Why it is not notarized
Plaza signs notes with your key. The trust anchor for that is a build you can reproduce from source, not an Apple signature you cannot inspect. Read the installer, or skip it and build from source: the same scripts/package-macos.sh that produced this artifact runs on your machine.
If you would rather not connect a key at all, Plaza reads without one, and every gated verb asks at the moment you reach for it.
Plaza v0.12.1
Plaza is a fast, local-first Nostr client, built natively in Zig. macOS (Apple Silicon), ad-hoc signed (not notarized).
What's new in v0.12.1
Logging out takes your places with you. The list of places you have entered is a file on your own disk, which is what keeps it private, and it is also why it outlived the account: a list kept on a relay goes when your key does, and a file sits there until something deletes it. So logging out left the rail exactly as it was, and the next person to sign in on that Mac opened straight into whichever place the last one had been reading. Logout already cleared the follows, the mutes, the drafts and everything else that belongs to an account rather than to a machine. Places are newer than that and were never added to it.
Nothing you paste disappears without being told. Paste a note longer than the composer holds and the overflow was simply gone, cut mid-word, with the counter reading "0 left" as though you had filled it exactly. On a six thousand character paste that is nearly two thousand characters of your own writing, thrown away in silence. It now says how much did not fit.
The starter pack names the right people. Three of the nine accounts a new install follows were labelled with somebody else's name. The keys were always right, so nobody has been following anyone they should not have been, but the app was telling newcomers the wrong thing about who they were reading, and saying it about real people. Every one of the nine is now checked against its owner's own domain.
The feed stops giving up on history. Scrolling to the bottom asks the relays for older notes, and if that attempt came back empty the feed decided there was nothing older and never asked again. It could not tell "every relay says that is all of it" from "nothing answered", so one attempt made offline ended your feed until you restarted the app. It now waits to be told.
Install
curl -fsSL https://raw.githubusercontent.com/zig-nostr/plaza/main/scripts/install-macos.sh | bashThe installer downloads this release, verifies its SHA-256, installs Plaza.app to /Applications, clears the download-quarantine flag, and opens it.
It touches the app bundle and nothing else. Your session and your local store live in ~/.plaza, your key in the login Keychain, and both are left alone, so upgrading never costs you your identity.
Why it is not notarized
Plaza signs notes with your key. The trust anchor for that is a build you can reproduce from source, not an Apple signature you cannot inspect. Read the installer, or skip it and build from source: the same scripts/package-macos.sh that produced this artifact runs on your machine.
If you would rather not connect a key at all, Plaza reads without one, and every gated verb asks at the moment you reach for it.
Plaza v0.12.0
Plaza is a fast, local-first Nostr client, built natively in Zig. macOS (Apple Silicon), ad-hoc signed (not notarized).
What's new in v0.12.0
Places. A place is somebody's corner of nostr: their relays, their people. Open one with a link and you are reading that place, not your own feed with a banner on top. Walk in, look around, and leave, and nothing has changed about your account.
Following a plaza://place/... link opens the place it names, from anywhere, including from a browser and from a cold start. You arrive as a visitor, which means you can already read and post, and closing the app forgets you were ever there. If you want to keep it, Enter puts it on a rail down the side of the window, and from then on it is one press away. Leaving takes it off again, and the link still works if you change your mind.
Entering gates nothing at all, posting included. Whether a post lands is between you and that place's relays: if they turn it away, that is theirs to say, not a wall this app invents. And the list of places you have entered is a file on your own disk, not something published anywhere, because which communities somebody belongs to is nobody else's business.
Switching between them is the point, so there are keys for it: Cmd+Option+S shows the rail, Cmd+Option+Up and Down walk your places, and Cmd+Option+Right steps out of a place and back into it.
The format is fiatjaf's, exactly. Anyone who has deployed a site with Hallway has already written one of these, and the same document means the same thing in both.
Text sits where it should now. Every mention, every bold name, every timestamp in the app was drawing two points below the line it belonged to. It is the sort of thing you feel before you can point at it, and it turned out to be the four bundled fonts disagreeing about where their own baselines are.
Install
curl -fsSL https://raw.githubusercontent.com/zig-nostr/plaza/main/scripts/install-macos.sh | bashThe installer downloads this release, verifies its SHA-256, installs Plaza.app to /Applications, clears the download-quarantine flag, and opens it.
It touches the app bundle and nothing else. Your key, your session and your local store live in ~/.plaza and are left alone, so upgrading never costs you your identity.
Why it is not notarized
Plaza signs notes with your key. The trust anchor for that is a build you can reproduce from source, not an Apple signature you cannot inspect. Read the installer, or skip it and build from source: the same scripts/package-macos.sh that produced this artifact runs on your machine.
If you would rather not connect a key at all, Plaza reads without one, and every gated verb asks at the moment you reach for it.
Plaza v0.11.0
Plaza is a fast, local-first Nostr client, built natively in Zig. macOS (Apple Silicon), ad-hoc signed (not notarized).
What's new in v0.11.0
Some of the people you follow were invisible, and now they are not. Plaza works out where each person you follow publishes, and connects there, so you see them even when they are nowhere near your own relays. That has been true since v0.4.0 with one gap nobody could see: to find out where somebody publishes, Plaza has to read a small note they signed saying so, and it only ever looked for that note on relays it was already connected to.
If yours were not among them, that person stayed missing. Not with an error, not with an empty space, just absent, exactly the thing the whole feature exists to prevent.
Plaza now asks four well-known relays that one question, and only about the people it has no answer for. They are asked and nothing more: never joined, never published as yours, and never counted among your relays.
Whether you notice depends on who you follow. On an account whose relays already cover its follows there is nothing to fix and you will see no difference. On a fresh install it found relay lists for every single account it could not previously place.
Install
curl -fsSL https://raw.githubusercontent.com/zig-nostr/plaza/main/scripts/install-macos.sh | bashThe installer downloads this release, verifies its SHA-256, installs Plaza.app to /Applications, clears the download-quarantine flag, and opens it.
It touches the app bundle and nothing else. Your key, your session and your local store live in ~/.plaza and are left alone, so upgrading never costs you your identity.
Why it is not notarized
Plaza signs notes with your key. The trust anchor for that is a build you can reproduce from source, not an Apple signature you cannot inspect. Read the installer, or skip it and build from source: the same scripts/package-macos.sh that produced this artifact runs on your machine.
If you would rather not connect a key at all, Plaza reads without one, and every gated verb asks at the moment you reach for it.
Plaza v0.10.0
Plaza is a fast, local-first Nostr client, built natively in Zig. macOS (Apple Silicon), ad-hoc signed (not notarized).
What's new in v0.10.0
The signer stays on. Turning Plaza into a signer for your other apps did not survive quitting it, and the toggle switching itself off was the smaller half of that. Plaza also handed out a new connect secret each launch, which meant the link you had already pasted into another app quietly stopped working. From that app's side it does not look like Plaza forgot anything, it looks like the connection broke.
Now it stays as you left it: on if it was on, with the same link. The link survives being switched off and on again, so you never have to go and re-paste it. Removing your key removes the link with it, because the next key set up on this Mac must not inherit one that other apps are already holding.
Faces and profile banners show up now too. The last release fixed photos in the feed that were too large to arrive in one piece. Profile pictures and banners had the same problem and were still landing on the old path, so somebody whose picture was a full-size photo showed up as initials, and their banner as a flat colour band. All three now arrive the same way.
Install
curl -fsSL https://raw.githubusercontent.com/zig-nostr/plaza/main/scripts/install-macos.sh | bashThe installer downloads this release, verifies its SHA-256, installs Plaza.app to /Applications, clears the download-quarantine flag, and opens it.
It touches the app bundle and nothing else. Your key, your session and your local store live in ~/.plaza and are left alone, so upgrading never costs you your identity.
Why it is not notarized
Plaza signs notes with your key. The trust anchor for that is a build you can reproduce from source, not an Apple signature you cannot inspect. Read the installer, or skip it and build from source: the same scripts/package-macos.sh that produced this artifact runs on your machine.
If you would rather not connect a key at all, Plaza reads without one, and every gated verb asks at the moment you reach for it.
Plaza v0.9.0
Plaza is a fast, local-first Nostr client, built natively in Zig. macOS (Apple Silicon), ad-hoc signed (not notarized).
What's new in v0.9.0
Photos show up now. A whole class of pictures never appeared in the feed: a blank cell, or a blurred placeholder that never resolved. It was not the picture, and it was not the host. Plaza could only take a picture that arrived in one piece under 240 KB, and an ordinary phone photo is several times that. Every photo in the notes I was staring at was between 313 KB and 612 KB.
It had been hidden by the image proxy, which hands back a shrunken copy. The proxy refuses some hosts outright, and the ones it refuses are exactly where a lot of Nostr photos live, so those notes fell through to a direct download and hit the limit. Plaza now asks for a big picture in pieces and puts it back together, so the size of the file stopped being the thing that decides whether you see it.
More pictures on screen at once. There are sixteen slots for every image in the app, and they were carved up in advance: nine for faces, one for a profile banner, six for photos. A feed with two four-picture notes in it needs seven, so the seventh cell could never hold anything no matter how much of the rest sat idle.
There is no carve-up now. Faces, photos and banners draw from the same sixteen, and what gets a slot is whatever has been on your screen most recently. A page of photos can use nearly all of them; a profile page full of faces can too. Whichever you are looking at is the one that gets the room.
Install
curl -fsSL https://raw.githubusercontent.com/zig-nostr/plaza/main/scripts/install-macos.sh | bashThe installer downloads this release, verifies its SHA-256, installs Plaza.app to /Applications, clears the download-quarantine flag, and opens it.
It touches the app bundle and nothing else. Your key, your session and your local store live in ~/.plaza and are left alone, so upgrading never costs you your identity.
Why it is not notarized
Plaza signs notes with your key. The trust anchor for that is a build you can reproduce from source, not an Apple signature you cannot inspect. Read the installer, or skip it and build from source: the same scripts/package-macos.sh that produced this artifact runs on your machine.
If you would rather not connect a key at all, Plaza reads without one, and every gated verb asks at the moment you reach for it.
Plaza v0.8.1
Plaza is a fast, local-first Nostr client, built natively in Zig. macOS (Apple Silicon), ad-hoc signed (not notarized).
What's new in v0.8.1
A maintenance release. Nothing here changes what Plaza does.
The permission model behind the signer, which decides what a connected app may do and for how long your answer stands, has moved into the nostr library that Plaza and Notary both build on. It was written twice, once in each, and two copies of a rule about what may sign with your key is one copy too many. Now there is one, with one set of tests over it, and both signers behave the same way by construction rather than by my keeping them in step.
Install
curl -fsSL https://raw.githubusercontent.com/zig-nostr/plaza/main/scripts/install-macos.sh | bashThe installer downloads this release, verifies its SHA-256, installs Plaza.app to /Applications, clears the download-quarantine flag, and opens it.
It touches the app bundle and nothing else. Your key, your session and your local store live in ~/.plaza and are left alone, so upgrading never costs you your identity.
Why it is not notarized
Plaza signs notes with your key. The trust anchor for that is a build you can reproduce from source, not an Apple signature you cannot inspect. Read the installer, or skip it and build from source: the same scripts/package-macos.sh that produced this artifact runs on your machine.
If you would rather not connect a key at all, Plaza reads without one, and every gated verb asks at the moment you reach for it.
Plaza v0.8.0
Plaza is a fast, local-first Nostr client, built natively in Zig. macOS (Apple Silicon), ad-hoc signed (not notarized).
What's new in v0.8.0
Plaza can sign for other apps. Turn it on in Settings, copy the link, paste it into Coracle or Jumble or anything else that speaks NIP-46, and that app signs with your key without ever holding it. This is the thing a browser extension does, done by the process on your Mac that already holds your key instead of by an extension living inside your browser.
It is off unless you turn it on. While it is on, Plaza connects to relays and other apps can reach it, and an app nobody asked to be a signer should not open that up because it happens to hold a key.
Nothing signs without you. An app has to be let in first, and being let in does not let it sign: the first time it wants to do something, Plaza asks, and asks again separately for each kind of thing. Signing a note and changing who you follow are different questions, because they are different risks.
Each answer carries how long it lasts. Allow once, allow for a day, always, or deny. A denial is remembered too, so an app that asks for something you do not want can be told no and stop asking. When an answer runs out the question simply opens again, and a prompt you never answered is not treated as a no: walking away from your machine is not a decision.
The question is asked in terms of what would happen, not which method was called. "An app wants to change who you follow" rather than "sign_event kind 3".
You can see and undo all of it. Settings lists every app that is connected, with a button to disconnect any of them. Turning the whole thing off ends every session at once. That visibility is the point: a signer you cannot audit is one you have to trust.
The link also appears in the Notary window, so it is where the key is, not only in Settings.
Install
curl -fsSL https://raw.githubusercontent.com/zig-nostr/plaza/main/scripts/install-macos.sh | bashThe installer downloads this release, verifies its SHA-256, installs Plaza.app to /Applications, clears the download-quarantine flag, and opens it.
It touches the app bundle and nothing else. Your key, your session and your local store live in ~/.plaza and are left alone, so upgrading never costs you your identity.
Why it is not notarized
Plaza signs notes with your key. The trust anchor for that is a build you can reproduce from source, not an Apple signature you cannot inspect. Read the installer, or skip it and build from source: the same scripts/package-macos.sh that produced this artifact runs on your machine.
If you would rather not connect a key at all, Plaza reads without one, and every gated verb asks at the moment you reach for it.
Plaza v0.7.0
Plaza is a fast, local-first Nostr client, built natively in Zig. macOS (Apple Silicon), ad-hoc signed (not notarized).
What's new in v0.7.0
A note with several pictures draws them all. Somebody posts three photos, which is what a phone's share sheet produces, and Plaza drew the first and left the other two underneath as raw URLs. It draws up to four now, as a row of cells, and no image link is left sitting in the text.
The pictures fill in as slots free up. There are sixteen image slots in the whole app and a gallery wants several at once, so the later cells of a busy screen borrow the note's own blurhash, which is drawn as flat colour rather than a registered image and so costs nothing. The row reads as photographs the whole time.
Pictures that would not load, now load. Some hosts came back as an empty frame saying so. The host was fine; the image proxy in front of it was refusing them by policy, and blossom servers were the common casualty. When the proxy refuses a host, Plaza now asks the host directly and the picture appears.
The proxy is still on by default, and still there for the reason it always was: without it, every image host in your feed learns your address as you scroll. The fallback fires only on a refusal, never on a host that is simply down, so a dead link does not turn into a second pointless request. Both are switches in Settings, with the privacy note beside them.
Reactions, replies and zap totals appear with the feed. They were arriving only for whichever relay happened to answer the note first, so a note usually showed nothing until you opened it and came back, and then the numbers were there. They are counted on every relay that carries the note now, so they are there the first time you look.
Under it: the check that decides whether your old key file may be deleted after moving into the Keychain is now tested against every way it can go wrong, rather than only read.
Install
curl -fsSL https://raw.githubusercontent.com/zig-nostr/plaza/main/scripts/install-macos.sh | bashThe installer downloads this release, verifies its SHA-256, installs Plaza.app to /Applications, clears the download-quarantine flag, and opens it.
It touches the app bundle and nothing else. Your key, your session and your local store live in ~/.plaza and are left alone, so upgrading never costs you your identity.
Why it is not notarized
Plaza signs notes with your key. The trust anchor for that is a build you can reproduce from source, not an Apple signature you cannot inspect. Read the installer, or skip it and build from source: the same scripts/package-macos.sh that produced this artifact runs on your machine.
If you would rather not connect a key at all, Plaza reads without one, and every gated verb asks at the moment you reach for it.