I often remark that people love reimplementing BBSs badly, and a fraction of the functionality. Of course it's not an entirely fair comparison because of the scope, different UI/nature of the web, audience size, and speed of communication to name a few issues.

It's important to note that your average decent BBS had most if not all of the following:

* Files - Often meticulously organized, with sometimes user voting or strict moderation. Unlike a lot of file sharing today, most boards also had things that would extract descriptions from archives or otherwise let you write them manually, along with providing other file metadata.

* User Management/Registration - Complete with idiot filters for the more underground boards (apps, voting on users, new user passwords)

* Mail - Even later, various versions of distributed mail including early email access for many people as well as things like FIDOnet

* Instant Messaging/Chat - There were entire huge multi-node boards entirely devoted to this, and even a single node board at least had sysop chat usually

* Games - Door games, mail/message games, offline sync'd games

* Timelines/Walls - Lots of plug-ins for this type stuff to leave short messages, shouts, etc.

* Time Management - Not necessarily a good thing, but on some boards you could bank time. Moreover, the fact there was time involved with your login on some boards created a sense of purpose and urgency.

* Keyboard Shortcuts - Godsend compared to your average web app, but also a drawback for some.

* Customizable UI - Most boards at least let you change menus, if not install plug-ins and other add-ons

* Distributed Content - Various boards would call each other or a sync service or otherwise download sync files to sync data such as games, not just mail.

* Groups/Subcultures

* No Frills - Despite being over modems primarily and thus slow, BBSs were pretty fast. In fact, I still feel like I got to more relevant information faster. It's not just a keyboard and mouse thing, it's about flow and the fact that the goal of the BBS was to deliver you some content quickly and efficiently. Navigation in web pages just sucks sometimes in so many ways - multi-page ads, long click funnels, huge percentages of random things I don't need on the screen like sidebars, etc.

I think for me the #1 thing about BBSs is at least for the better, BBSs, they tended to be more restrictive and served as great content filters. If you were an idiot, you simply could not join or got banned. There was a sense of excitement to get on a new BBS and see what it had, and with many, a status attached, especially in various undergrounds. There were always troublemakers, but they were limited and it was part of the fun usually to fight and have factions.

The small scale really made you feel like you knew everyone, even on large BBSs with tons of users. Sometimes this also meant that we all met up in real life and that changed how you interacted with people. It also sometimes deflated your view of certain people.

On the flip side, there were many things that were pains not limited to busy signals, slow speed, lots of bad BBS software that was popular, file transfers in the earlier days, limited to calling or receiving per number of phone lines unless you had expensive hardware/telco, and so on. I've often thought of writing some sort of newer, hybrid Internet modern BBS software. I am keenly aware of the many efforts to do things over SSH, telnet, web sockets, but they are mostly just unfinished rehashes of a lot of the less impressive parts of the old stuff. I have a list of many somewhere if anyone cares.

There are just so many things I could write about what we could learn from BBSs. Sadly, I still think the filtering aspect was really what tied it all together. Regardless, I would like to see someone build something new starting at the protocol level that isn't just sitting on top of what exists or at least is not just copying the old stuff. Some things like Hotline and other file sharing were close in a way, but lacked the same feel. I really wish at least the idea of getting to information fast and without bs would come back more. Gopher in the early days sometimes felt like this, and many web pages were like this to some degree.

Anyway, I am sure there are a lot of people who disagree and I believe there is a lot more good and bad things to say. I feel like BBSs are really ignored by a lot of people, and misunderstood by another large amount of people including former users. There are still some BBSs out there and the good news is most don't require a modem (just SSH or telnet), but it's just not the same.

I care. I'd be interested to see your list and notes, even if only to offer some encouragement.

My notes are pretty scattered.

Here's some open source BBSs I had bookmarked:

* Oblivion 2 XRM => Obv 2 remake, C++, looks OK but no killer new features really and uses Boost - https://github.com/M-griffin/Oblivion2-XRM

* Enigma 1/2 => Looks interesting and possibly the best of the bunch, but also more of the same. Good ANSI support. node js-based, so major downvotes from me here - https://github.com/NuSkooler/enigma-bbs

* x84 => Python SSH/Telnet/BBS Core => Interesting, but I didn't like the code on code review, and I think both C++ and node js are better choices. Forked a few times too, so need to see what's up - https://github.com/jquast/x84

* Synchronet => I don't know much about the modern version of this, but I hated the old one. It looks quite dated, but is updated somewhat it seem - http://www.synchro.net/

* WWIV => I wonder why this cockroach keeps living, sorry. It's written in C++ and the new version may be good, I don't know since I didn't try it. What I do know is at one point I co-sysop'd someone's WWIV board and learned how bad it really is. Truly one of the worst of the popular BBS softwares ever IMO. Perhaps a base for a derivative work though - https://github.com/wwivbbs/wwiv

Some BBSs that I am relatively, but not 100% sure there is source floating around for:

* WWIV - There are 2 sources of the old, 1 Pascal and 1 C++ . The core is not so bad for the time, it's just the implementation further up is garbage.

* Oblivion/2 - I think 2.3 or something like that. Source is pretty awful, but it looked good out of the box and had lots of add-ons from art scene especially.

* Renegade - I believe this was leaked at some point, maybe official release later? It was backdoored as well for some versions. Based on Telegard.

* Forum - Used to build lots of other software. Lookup "Forum Hacks" for a ton of other source. This includes Vision, Vision/2, Vision/X. All are insanely hackable and/or backdoored. There's also Oblivion/2, Emulex, Emulex-2, and Celerity based on this I believe, and many more.

* Telegard - Based on WWIV but with monster spaghetti of Pascal, C++, and ASM. No real reason to study this unless you want to create your own hack on it, which I don't recommend. Bunch of hacks on this as well, like Renegade.

* PCBoard - Not good source (a mess), but was the creme-de-la-creme of non-underground boards and for warez boards (customized). Supported its own Pascal-like language (PPL). I think version 15 source was leaked, or at least I somehow had it/have it (somewhere). Also very extensible compared to others.

* AmiExpress - I believe source is floating around for this. Was great on Amiga and oft-copied in art scene/pcboard setups.

Other:

* BBS Archive - Bunch of source here - http://archives.thebbs.org/ra103c.htm

* Old BBS Software List - http://software.bbsdocumentary.com/

* Mystic BBS - I ran this for a bit to mess around for a few months long ago. It was never the best of the best, but always pretty good if you want something like Obv/2 but better. It seems like it's been updated a lot since and still going. Didn't find source and license is marked as some sort of proprietary freeware. Supports SSH, telnet, etc - http://www.mysticbbs.com/

In general, there's also a lot of source floating around for C64, Amiga, Atari ST, and CP/M and it's even more nostalgic than the rest. I've seen the source of tons of BBSs and they are notoriously a mess. The most common languages you'll encounter are Pascal/Turbo Pascal, C, C++, and assembler (per platform).

I'm falling asleep, but plenty more floating around. Hopefully that is a start. A few final tips

* If you want to run door games, be careful, lots of infected binaries.

* If you are running old stuff and get a hacked version of Doorway itself to run door games or a fossil driver because your BBS needs it, these also are commonly infected. Funny enough I once wasted several days trying to get a copy of Doorway to work on a friend's board, not realizing he pirated it and it was specifically infected with the Taipan virus. This copy seems to be everywhere, so clean it and it will work or find a different copy.

* Do not run any Forum or Telegard hacks to the outside world.

* If you want to build a nice BBS that's via the Internet, start with the socket side of things and don't build on a rotten core. You can do a lot with what's available on the JVM (Java, Clojure), Go, Rust, C++, Erlang, Lisp, and any language that supports concurrency to a decent amount. Don't use PHP, Python, Ruby, etc. because you're just handicapping your BBS from the start.

* If you really want to emulate the experience, you need to get ANSI support correct, and support the full spectrum of codes, fonts, and so on. Get a handle on code pages and differences between platforms like DOS vs Amiga. Some of the links above cover this pretty well.