I want to introduce BitMaelum (https://github.com/bitmaelum), which is a secure end-to-end email infrastructure. It’s a work-in-progress and far from ready for even a beta release, and hopefully I will find some collaborators in both code and architecture.
It tries to combat (many of) the pain-points found in the current email system: spam, privacy, mail/account ownership, etc. I don’t expect this project ever to be implemented. Still, I find it’s a good exercise to come up with solutions without worrying about the existing email infrastructure. It also is a lovely way to get introduced into a more complex go architecture and code.
It’s entirely written in Go and consists of a mail-server (bm-server), a client (bm-client), and configuration tools. It also contains a “key-server” which is a (centralized) system that holds information about addresses and their destinations (a bit like a DNS system), which I’m trying to figure out how to decentralize this (I’ve looked in detail to blockchains, DHT (ipfs) and others, but it’s a challenging problem).
There is no central command (except for the key-server for now), so you are free to use any address you like and even set up organizations where you can add other users. All emails, including meta-data like headers, are fully encrypted securely (as best to my knowledge, so I guess there are many glitches).
This project is my first large project in Go, so I am still struggling a bit with all the Go idioms, and I like to have input from contributors in not only code but also on sharing ideas on how to solve some of the problems I still haven’t solved.
Please take a look at https://github.com/bitmaelum, and I look forward to collaboration with others!