Live data from Hacker News

JMAP for Calendars, Contacts and Files Now in Stalwart

stalw.art

171–180 of 204 posts

Re: JMAP for Calendars, Contacts and Files Now in Stalwart

#171

I tried to set up stalwart, but I didn't understand exactly what it wanted me to do. It's a webserver (for webmail and admin) and mail server in one, but I already run a webserver and I already have cert infra. So I couldn't figure out what dns settings to use and what ports to reverse proxy. And how to get it to play nice and share the certificate. Seems like stalwart has been designed as if it is the only thing run…

I have had similarly been unable to get as much help from their Discord as I had hoped.

That said, I'd give this another shot. What I discovered is that Stalwart is incredibly flexible and designed to be used in any configuration you want, and the documentation and examples are incredible, compared to most other projects. BTW, there is no webmail yet, but you are right that there is the admin that is served over HTTP/S, as well as MTA_STS, JMAP. The default listeners get you started and it's kind of out-of-the-scope of Stalwart in terms how you want your server to interact with those listeners. But whether you containerize it or setup a reverse proxy, the documentation has a lot of examples, including how to pick up the certificates, if not managed by Stalwart itself.

I landed on a Caddy for HTTPS and haproxy for proxy protocol on just JMAP, and the remaining TCP services directly binded to the host for the main mail services.

Traefik is another example that I had initially prepped and got working that also handled TCP connections with proxy protocol where needed. The Stalwart documentation was very helpful with that.

In short, I was impressed with how easy it was to integrate Stalwart into whatever setup I wanted, and how open the developer is to different setups. For instance, mox (while awesome in its own right) considers containerized setups to be not-recommended, and generally expects it to live on its own server. Stalwart is flexible, but the side effect is that it is overwhelming at first... but becomes quite elegant once you get the hang of it.

Re: JMAP for Calendars, Contacts and Files Now in Stalwart

#172

I tried to set up stalwart, but I didn't understand exactly what it wanted me to do. It's a webserver (for webmail and admin) and mail server in one, but I already run a webserver and I already have cert infra. So I couldn't figure out what dns settings to use and what ports to reverse proxy. And how to get it to play nice and share the certificate. Seems like stalwart has been designed as if it is the only thing run…

The installation instructions seem to agree with you: 1. curl this shell script 2. Run it as root. Anytime you see that, you can assume the software wants to take over the whole box and isn't likely to make any attempt to play nicely with other services/software/users already running on the same host. To their credit, they do have a docker image ( https://stalw.art/docs/install/platform/docker ).

I feel like the developer is just as serious about containerized setup as letting it take over the whole box. I've run it both ways, and have found it works incredibly well in Docker and the documentation is very good at treating all setups equally.

Re: JMAP for Calendars, Contacts and Files Now in Stalwart

#173
post #147

Earlier quoted context omitted.

I heard some second-hand accounts that Hetzner's object storage was pretty slow even in the same location. For email, that sounded not too ideal. Also, I only have 5 mailboxes right now holding less than 15GB of data total... S3 is still cheaper than the minimum at Hetzner since I don't need anything close to a TB.

Good to know, I thought about using this with stalwart, as I moving to hetzner.

The nice thing about S3-compatible blob storage is that it is extremely easy to move the objects to another provider (or roll your own MinIO or similar setup) and point your server to it. I initially went with the File-System since it made incremental backups much easier, but ultimately, S3-compatible opened me up to more options and setups.

Re: JMAP for Calendars, Contacts and Files Now in Stalwart

#174
post #115

Earlier quoted context omitted.

This should be pretty straightforward to do with an IMAP IMAP syncing tool, like mbsync [1]. You'd run it periodically in the background to sync the remote IMAP to Stalwart's local IMAP server, and Stalwart can then automatically serve that via JMAP, doing the translation internally. I was originally thinking you'd need to go remote IMAP maildir Stalwart IMAP, which would be really complicated, but I think the IMAP I…

imapgoose which was recently featured here I think is another option: https://whynothugo.nl/journal/2025/10/15/introducing-imapgoo...

Stalwart currently does not support the NOTIFY extension to IMAP, needed for ImapGoose, though it is planned: https://github.com/stalwartlabs/stalwart/issues/484

Re: JMAP for Calendars, Contacts and Files Now in Stalwart

#175
post #6

While JMAP seems to scratch every itch of a sucker for proper web API design, I’m wondering if the design space for new protocols should really be constrained to layers on top of HTTP. Is there really any new-ish binary protocol these days? Stuff like file sharing or groupware, mail, calendars, and so on—these things could be a lot more efficient and don’t really need the overhead of JSON as the message interchange f…

> I’m wondering if the design space for new protocols should really be constrained to layers on top of HTTP It shouldn't. For some cases it helps, but other times it doesn't. Sometimes it helps but there would be better ways to do it, making it on a simpler protocol or making an entirely new protocol (which might or might not use TCP; sometimes it is better to use TCP and sometimes not) depending on the specific case…

Is der the same as ASN.1?

Re: JMAP for Calendars, Contacts and Files Now in Stalwart

#176

Earlier quoted context omitted.

Not sure if yours is setup different, but there are several key fields that need to be written to the config.toml file, and I've seen my file get updated when I make changes to the listeners or stores settings. But in general, I agree that it has not been a very smooth experience. Having messed around with maddy and mox, Stalwart has had quite a few gotchas. Despite being a single binary promising simplicity, I'm fin…

This will get better soon. The next step on the roadmap is to refactor the configuration format and migrate most APIs to JMAP.

This is awesome to hear, thank you. I have more-or-less figured out how to configure things, and finally found the "local configuration keys" section, but I think I can live with the current setup (mixed toml + db) until Version 1 when I can refactor my configuration. I just installed 0.14 last night and everything went smoothly.

Re: JMAP for Calendars, Contacts and Files Now in Stalwart

#177

Reading weirdly many “but there are no clients” posts. Of course something has to come first. You can’t really develop a client without a server implementation and Stalwart is essentially the first server implementation of JMAP. With Stalwart in place, there’s finally a reason to develop a client for JMAP. I hope y’all are aware that Mozilla’s new mail service will use it, so that is likely going to give JMAP a big p…

if I recall correctly FastMail uses JMAP already in production. They were one of the co-authors of the RFC behind it as well

Re: JMAP for Calendars, Contacts and Files Now in Stalwart

#178
post #6

While JMAP seems to scratch every itch of a sucker for proper web API design, I’m wondering if the design space for new protocols should really be constrained to layers on top of HTTP. Is there really any new-ish binary protocol these days? Stuff like file sharing or groupware, mail, calendars, and so on—these things could be a lot more efficient and don’t really need the overhead of JSON as the message interchange f…

People think serializers are easy, when suddenly this makes a whole raft of choices your problem. You can write your own, and now you have two problems; or you can build on top of capnproto or grpc or, if you really want to get retro, ASN.1 and inherit the problems of your serializer framework.

JSON by comparison has simple, obvious limitations that more people are familiar with dealing with.

There's also the tendency to tie your protocol to implementation. The Microsoft Exchange "protocol" didn't get reverse engineered for so long because it's basically the COM structure of Outlook fed through (if I remember rightly) DCOM-RPC.

Re: JMAP for Calendars, Contacts and Files Now in Stalwart

#179
post #87

Earlier quoted context omitted.

> What is profit to have good server with new good (assume it is good, I'm not sure, but lets assume) protocols without good client? You need both. You could say, what profit is a good client without a server? By that reasoning, we never stake a step forward without a complete solution. Now a better mail implementation is just a client away.

Problem with clients not protocols but UI&UX. New protocols can change nothing in this area. Maybe, Apple Mail is good, again, I don't know as I'm not using Apple, but I don't know any client for Windows and/or OSS with Windows support which has as basic features as support of per-folder settings (identity, sorting mode, etc.) stored on server or proper support for Sieve. In my eyes it is basic features. And don't le…

On a tangent: For do you use format-flowed in text-only that you send? I'm never quite sure if it's universally and effectively supported enough to implement for less-technical users, or better to just define the EOL (and lose dynamic adjustment to viewer width).

Re: JMAP for Calendars, Contacts and Files Now in Stalwart

#180
post #115

Earlier quoted context omitted.

This should be pretty straightforward to do with an IMAP IMAP syncing tool, like mbsync [1]. You'd run it periodically in the background to sync the remote IMAP to Stalwart's local IMAP server, and Stalwart can then automatically serve that via JMAP, doing the translation internally. I was originally thinking you'd need to go remote IMAP maildir Stalwart IMAP, which would be really complicated, but I think the IMAP I…

imapgoose which was recently featured here I think is another option: https://whynothugo.nl/journal/2025/10/15/introducing-imapgoo...

and it's excellent, I have run it since the HN post. Replaced all the old ways for regular IMAP. Gmail still using lieer.
Post reply on HN