I'd love to let you in on the next step of what I hope will be all of our collective journey together.
Nearly two years ago, DEV went open source. It was a big step for a nascent organization and a decision based on the observation that the more we empowered our wonderful community to be a part of the journey, the better things turned out. However, what we open sourced that day was just the first step of a bigger idea. Our aspiration has always been to offer up our community platform for others to use as well.
Over the last few years, we’ve honed our values and principles, and have strengthened our resolve that while we want to support a healthy ecosystem, we do not want to unilaterally become the ecosystem. We don’t want to just power community software, we want to empower community. That means we want to own a meaningful, but relatively small, part of a bigger idea. And with that introduction, I want to describe the next part of our open source evolution.
Our platform — the one that powers DEV — is built for empowering community, and it's called Forem.
Forem is open source software for building communities. Communities for your peers, customers, fanbases, families, friends, and any other time and space where people need to come together to be part of a collective. Being part of a community serves so many different purposes depending on context, and we hope the idea of what constitutes a community will expand as creators like you get creating.
Each Forem will live online as its own independent web application with its own standalone databases, authentication mechanisms, configuration, dedicated URL, etc. Alongside this independence, our vision is for Forems to be highly compatible with one another in order to build a cohesive ecosystem where members of multiple Forems can move seamlessly between community apps — even if those apps do not share any data about the individual.
This is where ideals around privacy, inclusion, and an open and equal web need to meet with a passion for product development and excellence in user experience — we expect we are only at the beginning of this journey. We don't intend to build niche open source software that only appeals to a technical crowd; we resolve, along with you, to build universally accessible, delightful, and enriching software for everyone.
We're not here to immediately bestow perfect software on the world, we're here to bring you along on a shared journey. A journey to unbundle the power dynamic of social networks, to take some old ideas about the web and make them new again, to heighten the focus on protecting our society's most vulnerable, and to empower a diversity of cultures and ideas.
We have a never-ending list of issues, both technical and organizational, to address along the way, and we hope there will be enough ideological and technical buy-in from the community to effectively step from today to tomorrow in terms of our capacity to serve the mission.
A fresh Forem comes equipped with basically all the features of DEV:
Join the community, fill out your profile, write posts, read posts, leave comments, react to posts and comments, follow users, follow tags, search the site, receive notifications, create classified listings, listen to podcasts, embed rich content, ingest an RSS feed, report users, block users, become moderators, moderate, send direct messages, participate in group chats, receive achievement badges, configure fonts and themes, export your data, and the list goes on and on depending on what you'd consider a "feature".
If you're reading that list and saying to yourself "holy cow that's a lot", I can assure you that I felt the same way writing it. We have methodically built certain important features while also rushing some things and throwing some things at the wall to see if they stick. That's the nature of building a software project, a community, and a company all at the same time.
As an organization and open source community that works in a distributed, asynchronous style, it's only natural to be somewhat sprawling. But as we take on a big new challenge, it will be important for us to hone in on the kernel of the value and to architect software which serves the community in the most elegant possible way. I am really excited about what that will look like.
If DEV is the first Forem, ThisMMALife is the second. Community member Lee Wynne was the first to take our early indications that this was in the pipeline and to go through a lot of pain to stand up their own community instance. Lee has been a tremendous partner in helping lead the way. You might say the third community is community.benhalpern.com, and there are a few other prototypes and WIP projects in the ether.
This is important to say: While I'm glad we're finally putting a name to this next phase of the journey, and reiterating what’s on the horizon, we're still not quite ready for your community.... Getting to “ready” will be a gradual process. As we work out the details of how hosting, deployment, versioning, and compatibility will work, we will initially only support public instances that we host. It's the only practical way to get these spun up effectively right now, and we're not even 100% ready for that... but we're getting closer every single day.
To that end, we want to hear from you if you’re interested in the idea of spinning up a community. It can be for a passion project, a new commercial venture, as an extension to your existing business, or any other reason between and beyond. If that’s you, please get in touch with us by filling out this form. No commitment necessary, just tell us what you’re thinking about building.
If you are looking to contribute to the software side of things, we have plenty of open issues, but we also ask that you be patient with us as we continuously relearn what it means to manage the code contributions as our platform evolves. As much as we are excited by contributions from folks building with a personal stake in this game, we’ll need to learn together how best to handle this all.
Our repo is still entitled
dev.to but we will be migrating to
forem soon, as that is the name of the software itself — dev.to is simply an instance (albeit an important one).
Some of the first Forems we launch will be meta-forems designed to help facilitate the software development process as well as the administration, moderation and promotion of individual communities.
If each Forem is its own web application with its own configuration and plugins, we foresee bridge apps within the ecosystem that help tie things together. Native wrappers, specialized browsers, extensions, etc.
For example, I have been running this browser extension locally as a proof of concept, and I have been pleased with the user experience, especially how it works with the service-worker-driven approach of how our pages are rendered. Speed moving between apps is almost as speedy as changing pages within an app.
We have also been conceiving of the experience for a community creator setting up a new Forem. Here is a taste of what to expect from our most recent design critique...
It’s a privilege to work on software with purpose — If we get this right over the next few years it will have a really special impact on a lot of lives.
If you’re interested in joining us by building a community of your very own, let us know by filling out this form. Please keep up with our open source project and contribute if you care to. And keep an eye out for entrepreneurial opportunities within the Forem ecosystem.
Happy coding 🌱