Hacker News new | past | comments | ask | show | jobs | submit login
Why Lotus Domino? (2024) (moohar.com)
87 points by wonger_ 1 day ago | hide | past | favorite | 60 comments





I know Domino exceedingly well. I started working with it in '94, and continued with it in one form or another until 2021. My last gig with it was even a Domino-based SaaS that reached over 8 figures ARR, and is still up and running. Everything in this post sounds completely accurate. Domino is absolutely a viable platform from the back-end, database perspective.

But that is not the important point when deciding whether to use it, because it is absolutely not a viable platform from the "Can you find a team to actually code on this platform?" perspective.

By the time I had finished with that last gig, I told everyone the same thing: That I personally knew both Domino and modern web frameworks and could blend them together to have a modern front-end on that back-end. But I figure there are a couple dozen people in the world who know both sides well enough to do so, because the industry moved on. The talent moved on. Or retired. Most of my work post-2009 was decommission projects. At the same time, new frameworks have come to fruition since the 90s, so all the special features Domino has baked in just aren't that unique anymore. There are also almost no jobs in it, so no reason for people to learn it.

At the end of the day, you cannot run a company on a tech stack where there is no talent pool.


I worked with Domino extensively and some of the core technology was great. But with a 64GB database size limit it was really only suitable for small applications. We tried to work around that limit with sharding but it wasn't very practical.

Yeah, and that was not the only odd limit. 64K limit on fieldnames in the entire app was my favorite weird one. At one point there were docs online of all the various limits in Domino, and you had to work around them all.

This is also why I say there are few people who know Domino well enough to run it today - even in its heydey there was some mad science to do large apps on it, knowing not only all the quirks but how to work around them.


Assuming the space was being consumed by attachments, DAOS can help with this. There's reports [1] of people getting up to 2TB once you get the attachments out of the NSF.

[1]: https://ds_infolib.hcltechsw.com/ldd/nd85forum.nsf/DateAllFl...


Ya, that didn't help. We were dealing with high volumes of healthcare structured text data, not attachments. I never understood why IBM couldn't just fix the NSF size limit. It was so stupid.

I have no specific knowledge of the Domino database format, but extrapolating from my knowledge of database storage formats in general: the database file almost certainly contained data structures of fixed size. Many of the fields in these data structures likely contained offsets to other data structures, such as an index that contains the offsets of each item. Fixing the size limit would require migrating to a new file format with different data structures. Migrations are always hard to sell to customers and a ripe opportunity for data corruption, and horizontal sharding can solve the same problem while also addressing other scalability and reliability issues.

I never claimed that changing database file formats was easy, but IBM had already increased the size limit once before from 4GB to 64GB. So obviously increasing it further could have been done. Unfortunately IBM leadership never saw Domino as anything more than a platform for small internal corporate IT applications so they didn't care about fixing the limitations; it was a total failure of vision.

IBM didn't provide any tools for horizontal sharding either. We had to roll our own, which was a huge expense and made every part of the application far more complex. And it actually made reliability worse; because displaying incomplete data was not acceptable to customers, if any one database got corrupted then everything failed.


Reading about this some more..

Domino runs on Lotuscript.. which is is ecmascript..

And ecmascript is better known as JavaScript.


Nope. LotusScript had nothing to do with JavaScript. LotusScript was kind of similar to Visual Basic (although not really compatible). But JavaScript could also be used in certain areas. The core Domino features were written in C/C++, not any scripting language.

Lotus tried to license VBA but Microsoft wouldn't let them.

VBA and Microsoft are pretty close though.


Indirectly, is this post.. why JavaScript?

Domino phased out when IBM OS/2 phased out. The old greybeards who did OS/2 and Domino died or retired—the same with COBOL and mainframes.

OS/2 is still made, you can find out more about it here: https://www.arcanoae.com/about/

IBM's latest updates on Domino: https://www.ibm.com/docs/en/dsm?topic=lotus-domino It looks like Domino is still supported.

I wrote apps in the 1990s using ASP and VBScript and Javascript and ActiveX. We didn't use Domino.


You seem to be confused. Domino had little to do with OS/2. OS/2 was once one of the supported platforms for Domino (along with several others), but IBM continued active Domino development for many years after they gave up on OS/2. The "old greybeards" who built Domino came from Iris Associates which was completely separate from the team that built OS/2.

Domino lived around 20 years longer than OS/2.

Just yesterday, I put up a blog about tracking down a date / time bug in Domino / Notes:

What happened on December 13, 2024? [1]

[1] https://bostick.github.io/blog/2025/04/what-happened/


First Lotus Domino gig in 1998 and worked with it for several years until SharePoint started competing in the same space and pushing out Domino seats. Interest in Domino was diminishing quickly, and the companies that were using it were trying to get rid of it. I miss the excitement of reading through the red books, and new issues of the yellow technical books that would come out for it.

This is a great article. I didn't know Domino was still around, let alone still being developed.

I spent a good portion of my time late nineties working with Lotus Notes/Domino. I even had all the certifications (Principal CLP Application Developer, Principal CLP System Administrator). (And I worked on migrations from OfficeVision and from cc:Mail.)

A few things I remember really liking, from both a development and administration perspective:

- trivial to set up a second or third server, and have data automatically replicate between them

- super-easy to create CRUD apps for custom business processes, without using any 'code' except formulae that were as simple as spreadsheet formulae

- ability to add extra functionality with a language very similar to Visual Basic

And a few things that were annoying:

- because email was just another Notes application, it wasn't as good as things made just for email (like Outlook or Eudora)

- many people thought 'views' were folders, and that if an email existed in two places that meant two copies, and that they could delete one of them

- 'replication or save conflict' (https://help.hcl-software.com/dom_designer/14.5.0/basic/H_AB...)

Several times I sat with a user at their desk, and developed the first version of a CRUD app for them in real time, whilst we were still discussing the requirements.


> people thought 'views' were folders, and that if an email existed in two places that meant two copies, and that they could delete one of them

Thunderbird user here. I wish you hadn't said that. I'll be forever missing this now :(

Having just one Big Ol' Container of Email and making views on that, based on whatever properties/tags like which project it's for, which customer, whether it's marked as spam by the system or by you, a keyword match, or sorting it higher if I'm in To instead of CC... yes please! Am I picturing right how this worked?


Outlook has this and I've been using it in a work context for many years. Create custom tags for domains and or projects, tag email, notes, meetings with as few or as many tags as you like, and create handy 'Search folders' which are basically a view on a query (you can use other query terms beyond tag of course). The actual email just goes into big ol' "Archive". I gave up on folder heirarchy many years ago precisely because some emails map to multiple issues/domains/projects.

I worked with a boutique management consulting company part time during college in 98/99. Notes and Domino came packaged with a few IBM servers they bought. I was tasked with setting it up for email. It was fun exploring the system, absolutely not knowing what I was doing. I ended up having a similar experience of building out an app in realtime to help one of the consultants manually compiling a large amount of data for a customer. Extremely rewarding. But, it was also a painful lesson in NoSQL (before we even had that word...)

It was nosql.. until one used notessql to get it into ansi sql over an odbc connection.

It was a document database. The idea being that workflow was document based, and the applications you made for it were using documents in a workflow.

I worked at Lotus, and then in banks doing Lotus Notes apps. It really was super simple to create a simple line of business app with minimal coding, proper security, workflow etc.

Writing Notes/Dominos apps was my first 'programming' job (if you ignore cutting and pasting random javascript into HTML files...) back in 97. We created a whole suite of in house apps that basically ran the business, including making most of them available as web apps for people who didn't have the Notes Client. It was so fast and simple do to that even a 'dumb' kid with only a high school education and who barely knew how to program could be instantly productive, I honestly can't think of anything that can really match it even today.

I've always been slightly confused why they insisted on selling it as a mediocre email client rather than a quite fantastic RAD tool.


I can offer only second-hand knowledge, but I was told at the time that Lotus was intending to keep the RAD aspects and drop email from it completely, leaving cc:Mail as a standalone product. But IBM came along and wanted to modernize their email system, so Lotus took a deal to take the direction IBM wanted because it also brought massive marketing and consulting power and could drive adoption better than Lotus could.

"I honestly can't think of anything that can really match it even today"

This is exactly my thought.

Perhaps Attio or Google AppSheet?


I was a sysadmin at a company using Notes/Domino (v 4.5 when I started, up until v 7, when it was replaced by Exchange/Outlook). It was mainly used for e-mail, plus some minor apps for HR.

I used Designer to improve a bit the UI of the e-mail app of Notes. In general I have positive thoughts for both Domino and Notes, as e-mail server & client. Nevertheless the majority of colleagues complained, mostly due to Notes being different from Outlook I think.

Yet, one day, a fellow colleague, a young beautiful woman (marketing, not an IT geek or something), came in IT office to announce us her resignation. Before leaving, she asked if it's possible to give her the Notes installer to install it on her PC at home. She disliked Outlook & Outlook express and really liked Notes :) (v5 at that time if I recall well). We were all stunned and of course gave her the installer and a guide on how to setup her yahoo or hotmail using pop3 or imap.


It's funny how back in the 1990s the concept of software was different. You might buy an actual shrink wrapped package with an install disc and be happy with it for years. Nowadays it would be unthinkable to use software without getting regular updates (at least security updates) and always being able to install the latest version.

Isn't that partially because even your stove is now connected to the Internet? The attack surface changed from "when I connect my USR modem" to "someone can portscan all of IPv4 in reasonable time"

I do gravely miss the ability to actually have the bits, and will take any steps I can to grab an offline installer if offered


I got my first fixed IP address and always-on Internet connection in 1995 and I don't particularly miss the dial-up times before that. I prefer to have everything connected and online all the time, but also with proper security.

I was waiting for something like "... and we celebrated our XX wedding anniversary yesterday" given how you described her outlook :)

A question for Domino developers: "There is never a question of where the logic for an application is, it's in the same database as the data." - this caught my eye, how did this work?

Specifically, say there is an existing app with many users and which is full of data (say travel planning app) and you need to add a feature to it, which maybe takes a week of dev time.

- Do you work in prod and hope you don't break the existing functionality for users? Maybe even copy all forms ("new-request" -> "new-request2") so people don't see WIP... or maybe do all the work during nights?

- Or do you make a copy of that NSF file to your computer and develop on it? What if it has gigabytes of data, or if it has private data (like that HR database)? What do you do when you done - can you somehow merge code from one NSF file to another but leave data intact?

- Or is this something else? Maybe single-file was optional and big databases were manager separately, or there is some other simple option I am overlooking...


Domino had a concept of template (NTF) files. You could develop in those and apply them to a test environment. Then when development was complete you could refresh the designs of the production databases using the templates, with little or no down time.

The problem was that the NTF was a big binary file. You couldn't really do effective team development with branching and merging of source code. We worked out some manual processes for copying and pasting pieces around to prevent conflicts, but it was a huge mess. IBM never really understood or prioritized the needs of Domino developers.


It works the same as in Oracle APEX, and similar systems

https://apex.oracle.com/en/

You have migration scripts, and also have local copies, or team specific schemas, with dummy data for development purposes.

Delivery into production usually done in multiple steps, introducing the new feature, deprecating the old one, and eventually removing the old code/tables in another deployment cycle after the new one proves itself working without issues.


I was a Notes user before IBM bought Lotus. IIRC Notes was morphed into Domino.

Before IBM forced changes on Notes I would say it was a very nice environment. But IBM, maybe customers and maybe others wanted it to work like cc mail (Is that was it was called?). The changes they made to me ruined the environment.

I wonder how Domino is doing, I hope it can continue being used by some people.


I was a Notes user inside IBM in the months before the acquisition. It was so, so much better than anything IBM had on the desktop, either as a product or the many internal hacks. At the time IBM had OfficeVision/2 perennially under development to replace PROFS on Windows and OS/2.

I think that some of the changes in Notes 4 were good to make it more usable inside a large organization, but many things like adding a web server and IIRC some sort of Java subsystem? turned it into bloatware. And some of the changes were prompted by IBM’s disastrous internal rollout of Notes, which had more to do with IbM internal messaging culture and less to do with any flaws in Notes.


The Java subsystem was necessary to keep Domino relevant as an application development platform. IBM couldn't continue to rely on the proprietary LotusScript language forever (it was similar to Visual Basic, but mostly worse).

The additional of web server features was well intentioned but never worked correctly. IBM had this fantasy that developers could build an application once, then deploy it automatically to both Lotus Notes native thick clients and web browsers. Of course, this completely fell apart for anything but the most trivial applications. It also created a lot of market confusion because it competed with IBM's own WebSphere Application Server product.


There where many nice databases, some I remember:

* a USENET type dB

* News feeds

* classifieds

* a form of document routing with approval signatures

* many other cool databases

It was a whole new way of doing things, but IBM only pushed its email portion and eventually ruined the product.

V4 was good, but I liked v3 better. It never reached its potential :(


I feel that R5 was the peak for web dev - that brought in the actual Domino server, which is where it became possible to have a split between your front-end and back-end, delivering web apps with whatever front-end tech you wanted, and making calls to the server as needed, similarly to modern API endpoints.

They then kept trying to re-invent web development to be more tightly integrated, and it all went badly. R5 came out in 1999, and I rejected pretty much all their new front-end features after that point, but delivered a couple decades of web-based apps just using Domino as a back-end stack.


This post is very interesting but is also more than 14 months old. (Should it have (2024) in its title?) At the time of publication, the author was waiting for a renewal quote under the revised licensing model and unsure if it would still be justifiable to management. Has there been a subsequent update on what happened in the end?

Story time!

The year that IBM bought Lotus, they decided to create a mini-website about it for their annual shareholder's meeting. The plan was to host the site on Lotus Notes Domino as a way of showing the value of the acquisition.

Something about this was last minute, but I can't remember what it was: Either the whole thing was a rush job because the merger has just happened, or the decision to use Domino to host the site was. I'm not sure which.

IBM had hired a boutique firm in Atlanta to design and lay out the web pages with all the bells and whistles: Slick graphics, gif-animations, JavaScript interactivity, etc. (this was mid-1990s when flashing text was a big deal). But, of course, they had no Domino experience.

At the time, I was a 20-something wiz kid working at my first job after I dropped out of college for a Lotus Notes consulting firm in Atlanta, with contracts at Bell South, Coca-Cola, IBM and other big names. I had been the first one in the company to get into the web in general, and then combined that with my Lotus Notes experience to become the Domino expert.

When the design firm reached out to my company for help getting the website working on Domino, I was the (only) one to send over to help.

So I spent a few days at their hip downtown loft/office working on a Notes database that would host the site. This involved converting their ordinary web pages into something that would work in Domino, which had it's own way of storing templates and displaying pages based on the underlaying Notes database. I'd run into an issue and then get with the designers to work around some limitation or another. But by Friday we had it working and looking great. They sent the database and other files up to IBM where they would then get it up and running on their public web servers.

Around 5pm that Sunday, I get a call from my boss. The design firm had called in a panic: IBM couldn't get Domino working. They could see the site locally on the same machine, but they couldn't access it publicly. I needed to help their server team fix it. In New York. Tomorrow. (Me? Didn't IBM own Lotus?)

He tells me that IBM is sending a car to come around and pick me up in 30 minutes, to get me to the airport where I'll fly to New York. Another car will pick me up and drive me to Armonk, where I'll check into a hotel, and then Monday morning I was to go into IBM early and help them get the site working, as the shareholders meeting had started.

IBM wasn't messing around. They used black car service with driver, flew me First/Business class, booked me into a nice hotel, the whole deal.

So I arrive at like 6 am the next morning and am met with open arms by someone running their server farm who explains everything they've done so far. He then plops me down in a corner of a giant server room, in front of a machine running AIX, with a Unix version of Notes and a terminal open to the machine running the Apache proxy to their public servers.

I had never seen, let alone used, a Unix box in my life up to that point, and knew nothing about Apache. I wasn't even sure what a "proxy" server did. I remember just sitting there for a minute, wide-eyed - looking at the three-button mouse like it was an alien artifact, and boggled by the GUI (CDE? Motif?) which was also from Mars. I was the opposite of that girl in Jurassic Park. "It's a Unix system! I have no idea what to do!"

Thankfully the Notes interface was the same on all platforms, so I had an anchor point to start from. Besides the fact that it took me a minute to figure out how to scroll (middle mouse button), I was in my element there.

The problem, it turned out, was a simple configuration setting (thank all that is holy) which I recognized immediately. It took me longer to figure out the mouse button thing. So like the proverbial plumber story, I opened my toolbox, took out a small ball peen hammer, tapped the configuration options, and the site popped up online.

Hooray!

Smiles all around! Handshakes were given, backs were slapped, jobs were saved. I was out of there by 8 am and on a plane back to Atlanta a couple after that, the conquerering hero.

So there's my Domino story. 30 years later it's still amusing to me.


> The problem, it turned out, was a simple configuration setting (thank all that is holy) which I recognized immediately. It took me longer to figure out the mouse button thing. So like the proverbial plumber story, I opened my toolbox, took out a small ball peen hammer, tapped the configuration options, and the site popped up online.

That squares with my mental model (and, related to that, my guess half-way through the story was that it was erroneously listening on 127.0.0.1 instead of 0.0.0.0). I also love the plumber analogy. I similarly enjoy the "mechanic's rates": $1 to fix it, $10 if you watch, $100 if you help


What an awesome story and very well told. Brings me back to the old days and put a smile on my face. Thanks for sharing.

In my mind I'm visualizing the IBM office to be of scale in the Blade runner movie :-)

Flown up to the mothership in Armonk! 90s "Big Blue money" story. Classic.

I have nothing to add but this commercial from 1997/1998 that played very often when watching CNET on tv(Sci-fi channel)

I loved the commercial and get nostalgic watching it now.

https://youtu.be/rRAhCCGb7BY?si=UtRbsD6Pnwpb2Kpo


As only a lowly end user, let me say: Lotus Notes sucked for what we (and seemingly users of every installation of LN) were forced to use it for: E-mail and calendaring.

There used to be a joke that went round that particular office, there are exactly two people who LOVE Lotus: The boss who signed off on it (cos it made them look good), and the person who had to implement it (cos moneymoneymoney).

Everyone else went "Uggghhh, Lotus Notes."


I was a Notes user almost 20 years ago, and I liked it because it felt retro, even back then. It was ok, quite weak with audit trails and timestamps for some reason (if I remember correctly, changing the date on your pc and sending an email would make the email appear as if was sent on that changed date...)

After 30 years in Domino, it is difficult reading all thr half-knowledge here.

Anyone remember Lotusphere? I feel so old.

The acronyms in that story led me down the memory lane - In the early 2000s, I worked at Microsoft building the Outlook to Notes connector. The theory was that we could introduce MS Outlook to hardcore Lotus/Domino/Notes shops and that would be a trojan horse to the introduction of Exchange (and its high priced client access licenses).

Reading through the article, it seems like that theory was proven out and along with the awful UI that Notes was, it led to many IBM shops adopting Exchange/Outlook and later SharePoint.

Something odd about Lotus Notes/Domino, and part of the reason for its awful UI, is that everything is a database (the NSF mentioned in the article). All UI is a view on that database. Viewing an email? That's just view on a item in the database. Sending an email? That's just adding a row into the 'Outbox' table. The entire product was built with this paradigm at the center of it all.


> That's just adding a row into the 'Outbox' table

No tables and no rows in Notes. Composing an email would create a new document using the "Mail" form; clicking the "Send" button would run a shockingly confusing script that would cause the document to render in the style of a sent email; some awful LotusScript "Agent," the details of which I've long forgotten, would soon thereafter urge the Domino MTA to send mail based on its apprehension of the new document in your mailbox database.


> Composing an email would create a new document using the "Mail" form

Oh that's right. You're now giving me PTSD from all this Notes internals knowledge that was hidden away in my brain.


Lotus Notes v3 still has better email search that Outlook now.

Is there any evidence of a DOS version?

My Domino war story isn’t as interesting as some of these, but:

At a company I worked for, an intern mangled a bit of lotusscript into an unintentional virus that forwarded the entire contents of his inbox to every email address in the company, causing a reply storm that took a week to recover from.

From then on we called it Locust — a plague.


Early in IBM's internal rollout, I worked for IBM - I demoed to one of IBM's security guys how to embed a button in an email to all users within IBM that would delete their own mailbox when clicked. (Did not actually send it, of course)

His reaction was, "Oh, shit." I don't know who he talked to, or if it was just a coincidence, but Execution Control Lists came out really quick on the next version.


Why would we care about another one closed vendor locked corporate bloatware?

History mainly. Lotus Notes/Domino in the 90s was way ahead of its time and pioneered many technologies that would become mainstream only a decade plus later.

nostalgia



Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: