11 ms·
JMAP for Calendars, Contacts and Files Now in Stalwart
- pluto_modadic 1y agoif they pull out the AI stuff that'll be soooo cool :D
- lifty 1y agoWhy does the optional (supported only in the enterprise version) feature bother you?
- jasonriddle 1y agoWhat AI stuff are you referring to? I just learned about this project from this blog post, so I don't have the full context on their AI work.
- doublerabbit 1y agoIt seems the enterprise edition has AI features and the community version doesn't. So if you don't want AI, use the community version. https://stalw.art/compare/ https://stalw.art/compare/
- antx 1y agoFrom the site [0]: > Stalwart Enterprise leverages AI technology to provide unparalleled email security and management. With AI-powered features, Stalwart Enterprise excels in accurately classifying spam, detecting sophisticated phishing attempts, and blocking various types of network attacks. This intelligent approach ensures that your email environment remains secure and reliable. Stalwart Enterprise comes equipped with a pre-trained large language model (LLM), offering robust out-of-the-box protection. Additionally, it supports integration with leading AI providers such as OpenAI, Anthropic, and other cutting-edge platforms, allowing you to enhance and customize your security measures. By utilizing AI, Stalwart Enterprise delivers a smarter, more efficient email solution that proactively safeguards your communications and data. [0]: https://stalw.art/enterprise/ https://stalw.art/enterprise/
- batisteo 1y agoDo you mean the spam detection algorythm or something else?
- 9dev 1y agoWhile 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 format, IMHO. Then again, a lot of solid thinking went into these things, so there probably are a lot of good reasons that I’m not aware of. Still, it’s an interesting space, I think.
- WorldMaker 1y ago> binary protocol Email was never a binary protocol. Notoriously so, it's why MIME types and MIME encodings get so complicated. Most of the "old internet" protocols (email, FTP, even HTTP itself) were bootstrapped on top of built-mostly-for-plaintext Telnet. HTTP as the new telnet has a bunch of improvements when it comes to binary data, request/response-based data flows, and some other considerations. HTTP/3 is even inherently a binary protocol, it's lack of "telnet-compatibility" one of the concerns about switching the majority of the web to it. vCard/vCal/iCard/iCal were also deeply "plaintext formats". JSON is an improvement because it is more structured, even more efficient, than those predecessors. JSON may not look efficient, but it compresses extremely well and can be quite efficient in gzip and Brotli streams. I feel like "JSON over HTTP" is a subtle improvement over "custom text formats over telnet", even if it doesn't sound like "binary protocol efficiency" at first glance. Especially as HTTP/3 pushes HTTP more efficient and more "binary", and arguably "more fundamental/basic" with HTTP/3 even taking over more roles in the TCP/UDP layer of the internet stack. (Telnet would never try to replace TCP.) HTTP isn't the worst bootstrap layer the internet could use to build new protocols and apps on top of. Sure, it would be neat to see more variety and experiments outside of the HTTP stack, too, but HTTP is too useful at this point not to build a bunch of things on top of it instead of as their own from-scratch protocol.
- p_l 1y agoA lot of the textual nature of older IETF protocols, including the CR LF line endigns, can be probably traced to how easy it was to bang out a bad implementation full of subtle problems that could be debugged by sitting an undergrad student at a teletype instead of spending time on having some binary serializer (that telecom companies definitely had money for)
- lifty 1y agoIt’s such a breeze to self-host your own email server using Stalwart. It has been a new era for email self-hosters like myself since these kind of fully integrated email servers like Stalwart appeared. Another good one but not as actively maintained is Maddy.
- zenmac 1y agoYes, are there any decent JMAP web mail client that we can use? I have asked sooo many times since Stalwart first was introduced, but not got a straight answer. It is just FastMail or Topicbox. I want something like roudcoube or wildduck that can be used over https that I can self-host!
- realityfactchex 1y agoIt looks like Cypht [0] is the most actively maintained JMAP webmail client listed at [1], assuming that works. [0] https://github.com/cypht-org/cypht [1] https://jmap.io/software.html
- audelair 1y agoI tried very hard to get it to work, but I simply couldn't get it to connect with my Stalwart instance over JMAP. I do have the permissive CORS and end-points and proxy-protocol seemingly working with my test HTTPS requests, and I also successfully got JMAP to work with the Mailtemi app, but no luck yet with Cypht[0].
- realityfactchex 1y agoDarn. This looks like the open issue: https://github.com/cypht-org/cypht/issues/931 https://github.com/cypht-org/cypht/issues/931
- zenmac 1y agoYeah that is kind of issue had me flintch when thinking of using stalwart. As much as it is so nice to install it as a server and ideologies behind it. Looks like gonna just stick with wildduck for now. Just don't like to hedge our email bets on mongodb community edition.
- btown 1y agoFor those needing to deal with customers/clients/internal teams with Google Workspace/Outlook and wanting JMAP-style (though not JMAP) modern JSON APIs, Nylas might be a viable option: https://www.nylas.com/ https://www.nylas.com/ Nylas pricing has gotten better recently, but is still quite high though - at $1.50/connected account/month at scale, it's likely material to your per-user margin if it's part of your SaaS offering. But if you have a use case where this is a no-brainer (like capturing/analyzing/building custom real-time UI around your internal sales team's emails) then it's remarkably powerful.
- refulgentis 1y agoAnyone got a link to a better sales job on JMAP & friends? It sounds awesome but the way it is intro'd here: Over the past few years, the IETF has been redefining how email, calendars, and contacts are synchronized and shared. Building upon the success of JMAP for Mail, several new protocol extensions have been introduced: JMAP for Calendars - A modern replacement for CalDAV and CalDAV Scheduling. JMAP for Contacts – A powerful alternative to CardDAV. JMAP for File Storage – A replacement for WebDAV-based file storage. JMAP Sharing – A modern successor to WebDAV ACL. JSCalendar - A clean, JSON-based evolution of iCalendar. JSContact – A modernized, JSON-native successor to vCard. ...gave me pause. A protocol I've never heard even though I hang out here for an hour a day, was so successful, that it launched 6 new projects? Sounds more like the parts of the web dev that give me ick (new and shiny; rush to copy new and shiny in other contexts; give it a year; and all of a sudden only 1 of the 6 actually was successful)
- candiddevmike 1y agoJMAP and friends are very niche, none of the "mainstream" email clients (that ship with most computers/phones) support it. So this feature being available is unlikely to grow the userbase, IMO. Now JMAP is quite a bit nicer to use than IMAP's API, but IMAP's gravitational field is too strong to be supplanted. IMAP is also becoming somewhat of a niche protocol, as the majority of users use vendor proprietary protocols for accessing their emails on Gmail, Outlook/Hotmail, etc. So why invest the time to add a niche replacement for IMAP when the entire protocol is a second class citizen to mainstream email clients.
- StopDisinfo910 1y agoThis is a circular self-defeating reasoning. If you want to push a new technology, you need to start somewhere. That's exactly what's happening with JMAP. It was created by Fastmail to use as a bridge between their servers and their own apps a case for which popularity doesn't matter. It's basically a modern vendor proprietary protocol but done in the open. From there, support is only a matter of someone being interested enough to implement it and manifestly it's working. There are now three servers (Apache James, Cyrus and Stalwart) and some clients.
- matesz 1y agoRunning Stalwart in production for ~20 heavily used accounts for some company and no problems so far! The simplicity for such a complex stack and flexibility of deployments is off the charts!
- jdalsgaard 1y agoI second that; only running it for personal use on a few domains, but handles all the complexity _extremely_ easily.
- Bender 1y agoOut of curiosity do you front-end SMTP with postfix to have many queues/MX entries and a battle hardened front-end or is Stalwart handling inbound connections directly? Im thinking of moving from Dovecot to Stalwart so family members have more modern features on my fallback domains about half of my domains do not use Fastmail. In multiple companies I had several Postfix inbound servers to keep the internet from touching Exchange directly and have multiple nodes for companies to quickly hand off to in multiple locations.
- matesz 1y agoI just run single instance for now with RocksDB backend for internal / search and S3 for blobs - that is what made me think it’s so flexible. Never hosted Postfix / Dovecot stack, in fact this is the first time I host emails, but from what I understand Stalwart is designed to handle inbound directly. For very high throughput inbound you could check out KumaMTA - it was designed specifically for that, but I think Stalwart doesn’t have bottlenecks in it’s clustered topologies which would require it unless you are doing something crazy. They have very good docs in general IMO, here are docs on how to cluster - https://stalw.art/docs/cluster/configuration https://stalw.art/docs/cluster/configuration
- quicksilver03 1y agoCan you share what's your solution for filtering incoming spam? I've had to abandon Stalwart because its spam filter is so ineffective and inconsistent.
- sylens 1y agoWe need better client support for JMAP. Apple Mail, Thunderbird, Outlook (as if), and so on. I'm surprised some of the smaller ones like Canary or Spark don't implement it as a product differentiator.
- woodruffw 1y agoSerious question: what’s the differentiator if major email providers don’t support it? (This should not be interpreted as a defense of IMAP.)
- dijit 1y agoI'd make a reasonable guess that it enables much better Javascript clients, either via Electron or the Web Browser. You don't need major providers to support it, they support SMTP and that's how messages are relayed. JMAP is just so you: the client, can fetch your mail from wherever you host your mail.
- sylens 1y agoFastmail supports it, and it sounds like Thundermail will too
- Vinnl 1y agoThundermail will be built on Stalwart, so yeah :)
- mjrpes 1y agoOne big differentiator is JMAP allows one network connection to track new emails that may get delivered across different folders. With IMAP you need a connection open for each folder.
- woodruffw 1y agoOkay, that's a great feature! But I guess I'm asking what the differentiator is if major email providers don't use it.
- woleium 1y agoI wish there was an easy auto-update process for Stalwart. is anyone hosting an apt repo for it? edit: we use it on very resource constrained environments, the container version is too much overhead.
- dijit 1y agoisn't it a static binary? Can't you do it the old-school sysadmin way and pull down a binary from github releases and update a symbolic link?
- woleium 1y agoyes, but that’s not as simple as apt automatic upgrades
- dijit 1y agowant me to write the script out for you? 1. systemd timer 2. curl github api 3. if new release, fetch, verify checksum 4. update symlink 5. restart service i don’t think repackaging is actually easier here, for main services of a system is ok to skip the package manager.
- heavyset_go 1y agoYou will eventually break your email setup by doing this, see my other comment.
- heavyset_go 1y agoThey make breaking changes to settings (and possibly data stores, but I forget) between versions, so to go from, for example, x.y.1 to x.z.5 might involve doing migrations between x.y.2 through x.z.5 just to use the latest version. This is not the case for all versions, but I've found it to be common enough that I have to read all of the release notes between point versions when upgrading. It can definitely be improved.
- yyyk 1y agoI can understand why JMAP instead of IMAP given the latter's antiquated design. I don't see the advantage to clients in replacing WebDAV though, and the others are a bit iffy too. They'll need to make a way better sales pitch than 'JSON vs XML' (serialization ain't tough, XML is supported everywhere). I guess contacts/calendar follows JMAP naturally when the clients already implement it, but that only applies in the 'already wrote a JMAP email client' case. Virtually any other case would rather stay with widely supported protocols?
- sureglymop 1y agoYeah because everything already supports WebDAV. It works well with iOS and Android which is imo a big advantage. However, doesn't stalwart already also support WebDAV though?
- Gormo 1y ago> I can understand why JMAP instead of IMAP given the latter's antiquated design. I think we're about ten years past the point where "newer = better" was a reasonable starting presumption.
- yyyk 11mo agoIf "newer = better" was my thinking, I'd be all for these new protocols on top of JMAP. But I actually think they're useful only in a limited context. JMAP is better than IMAP because IMAP is a too stateful design, the IMAP/SMTP distinction allows for misconfigurations where sending doesn't work, has dozens of extensions where key extensions are inconsistently supported, doesn't have as many batched operations, etc. One could make an effort to improve IMAP - but the effort to do this consistently in server software would likely be comparable to adding JMAP and the result worse... OTOH, the new protocols intrude on areas that go far beyond email software (you're very unlikely to get support for these in older Androids/iOS/Windows even if the modern OSs ever consider them), and don't offer as much as JMAP offers over IMAP. The cost/benefit is worse. They may make sense for a JMAP email client but IMHO not elsewhere.
- vamega 1y agoI really hope Fastmail implements the JMAP spec for calendars and contacts soon. They’ve had the mail part of the spec implemented for a while, but it still requires CardDAV/CalDAV for contacts and calendar access.
- alberth 1y agoI don’t think JMAP Calendar spec has been ratified yet. https://datatracker.ietf.org/doc/draft-ietf-jmap-calendars/ https://datatracker.ietf.org/doc/draft-ietf-jmap-calendars/ And Contacts was only 10-months ago. https://www.rfc-editor.org/rfc/rfc9610.html https://www.rfc-editor.org/rfc/rfc9610.html
- drnick1 1y agoWhat good is a protocol like JMAP as long as common clients like Thunderbird, K-9 Mail, the iPhone email client and others don't support it? Without some concerted effort it will never take off. Then there is the question of what problem it solves that isn't already solved by existing solutions.
- nine_k 1y agoNext time an iCal event invitation screws up the time zone, return to this question.
- indigo945 1y agoiCal is timezone-aware, if something goes missing there, that's the fault of a broken implementation.
- tristan957 1y agoJMAP works in my email client, aerc.
- AnonC 1y agoThe lack of support for JMAP in common mail clients has been my concern for years. And recently Fastmail went ahead with releasing its own Electron-based desktop app that uses JMAP for its mail service. Mozilla Thunderbird could do with some support (financial and/or people wise) to get JMAP implemented. I don’t know if Fastmail the company has done much on this aspect, but hope they do.
- apitman 1y agoI didn't realize JMAP had a file system protocol. I'd be very interested to learn how it compares to Solid.
- NoboruWataya 1y ago> They are robust, widely adopted, and battle-tested. Yet, their XML-based design is notoriously verbose, inconsistent, and difficult to implement correctly. Information is scattered across HTTP headers, XML payloads, and even embedded iCalendar data, creating endless compatibility and interoperability challenges between clients and servers. Can others confirm if these problems are widespread? I get that these protocols are probably a pain to develop for but given they are "robust, widely adopted and battle-tested" it seems that is probably a solved problem. It's better to have one standard that is used everywhere than to have to choose between two standards.
- bmelton 1y agoYou're right to ask it Always relevant: https://xkcd.com/927/ https://xkcd.com/927/
- kridsdale1 1y agoOne of the handful of xkcd numbers I recognize without having to open.
- rswail 1y agoYou could say that it's a standard.
- kridsdale1 1y agoI worked on the iCalendar, CalDAV, and CardDAV parsers at Apple in 2010 or so, and I see no reason to believe that today’s Macs, iPhones, and Watches, are using anything more modern. I haven’t been there in more than a decade. I really am curious what the response in Apple (and Google) is to this spec.
- frumplestlatz 1y agoOf all of their proposals, this is the most interesting part to me. I researched what it would take to implement a full calendaring server once, and after reading all the RFCs, just backed away slowly from the whole idea and never thought about it again.
- kridsdale1 1y agoYeah. It’s a super messy domain. You never know when the parliament of Brazil will pass a law changing the time zone definition.
- warkdarrior 1y agoHow does JMAP solve this?
- raybb 1y agoDoes it seem like the calendar protocol will be able to replace the VTODO bit of ical so that Todo applications can be built on top of it? I've played around with ics files a bit for the tasks app in nextcloud and it wasn't a pleasant experience so I kinda dropped the project.
- blacklion 1y agoWhat next? Replacing Sieve with something cumbersome, but JSON based? There is no good desktop implementation of MUA with old technologies (IMAP, Sieve), will all this JMAP help? I don't think so. 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? IMAP4 is underused by modern clients: it allows to effectively store client configuration on server, nobody implements it on client side. It allows to configure per-folder Sieve scripts, nobody implements it on client side. Nobody implements good Sieve client (with folder name autocomplition and such) even for global script, not to mention per-folder ones. Heck, there is no good Sieve editor! (I know about Sieve client built on Electron, it is not good, it is incomplete and buggy). Servers are solved problem (sendmail, exim, postfix, dovecot, cyrus). Clients are not, they stagnated at the moment GMail was announced.
- mmooss 1y ago> 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.
- blacklion 11mo agoProblem 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 let me start to rant about message editor itself, especially in text-only (as opposite to HTML) mode with proper quoting & such.
- mmooss 11mo agoOn 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).
- solarkraft 1y agoReading 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 push!
- tristan957 1y agoThere are clients. I use one called aerc.
- calvinmorrison 1y agoCyrus was probably the first
- audelair 1y agoI'm cautiously optimistic that Stalwart is a game-changer. I would normally stick with a simpler platform (like mox) if I wasn't interested in the groupware space. I've previously tried Nextcloud and SoGo and left disappointed, and have more or less been waiting for a project like this to come along. Nextcloud was such a terrible experience for me (the file sharing/storage was good, but the groupware aspect was incredibly buggy). But knowing that Nextcloud is partnering with Stalwart to hopefully overhaul their stack, Opencloud is developing their JMAP integration, and Mozilla/Thunderbird is using it too (they already have a webmail in development here: https://github.com/thunderbird/stormbox https://github.com/thunderbird/stormbox)... we might finally see some exciting development in this space. And now is also a ripe time, as there seems to be a perfect storm of people wanting to get away from Big Tech platforms.
- AndrewDavis 1y ago> Stalwart is essentially the first server implementation of JMAP Just to clarify. Stalwart is the first to have JMAP contacts and calendars. Cyrus has had JMAP mail since the beginning of JMAP.
- philipwhiuk 1y ago
- artooro 1y agoIf the Mimestream mail app supported JMAP, I'd be switching away from Gmail asap.
- solarkraft 1y agoStalwart is, from what I’ve read, an excellent JMAP server. JMAP is, from what I’ve read, a great protocol for building an E-Mail (and now also others) client on top of. Since I would like an innovative way to access my E-Mails, but do not want to self-host, I would find it interesting to use Stalwart as the server component of an E-Mail client: Data is somehow synced into Stalwart via the “ugly” protocols and I get a nice API to build an elegant client on top of. My basic research shows that something like IMAP-IMAP sync seems to be a thing. Has anyone done something like this, perhaps even with Stalwart? (this of course grows in complexity for each new protocol to be proxied). I believe having this kind of setup easily accessible could jumpstart a new generation of E-Mail clients on top of JMAP because it (relatively elegantly?) circumvents the chicken-egg problem by allowing all existing IMAP mailboxes to be accessed via JMAP.
- Fire-Dragon-DoL 1y agoI have been looking for something like this for ages. Everything I found so far is overpriced, so this is great development.
- keeganpoppen 1y agoi have also been pondering this for the exact same reason... unfortunately, i don't have much to show for said pondering... yet...
- abound 1y agoThis 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 <-> IMAP should work fine. [1] https://isync.sourceforge.io/mbsync.html https://isync.sourceforge.io/mbsync.html
- jamespo 1y agoimapgoose which was recently featured here I think is another option: https://whynothugo.nl/journal/2025/10/15/introducing-imapgoose/ https://whynothugo.nl/journal/2025/10/15/introducing-imapgoo...
- Mailtemi 1y agoAs a JMAP client implementer, there’s a big plus, beside JMAP, in having an integrated server for email, contacts, and files. Some setups take days even for email, so an easy, fast setup saves a lot of time. Also, after code the CalDAV ↔ JSCalendar part, using only IANA time zones instead of scattered ones in CalDAV components makes things much simpler.
- commandersaki 1y agoInteresting I didn't know that JMAP for File Storage is a replacement for WebDAV. My experience with WebDAV is that it has traditionally been sluggish and clunky; I'm not sure if that's due to the protocol or the backend. I'm hoping this could be a huge improvement.
- bruce343434 1y agoI 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 running on a machine, with sparse documentation for any other setup. I tried getting help on the discord server but the tone seemed to be of a sort of "it's quite obvious, you should already know this". At that point, it's so much friction to reverse engineer it that it might just be easier to set up dovecot and postfix.
- bityard 11mo agoThe 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 https://stalw.art/docs/install/platform/docker).
- audelair 11mo agoI 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.
- audelair 11mo agoI 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.
- Ey7NFZ3P0nzAe 11mo agoFor those who like me had never heard of JMAP: https://jmap.io/ https://jmap.io/