20
26 Comments

I'm Ben Halpern, co-founder of Forem — AMA!

Hey folks!

I'm the co-founder of Forem.

Forem is the open source code which powers DEV (dev.to), which anyone can use to spin up a community which has all the features of DEV.

We built DEV up to serving about 7m unique developers every month with community posts — along the way we built up a lot of algorithms, UI features, moderation functionality, anti-spam, anti-abuse, etc. So that's why we wanted to put energy into sharing all the code with anyone who wants to use it, via Forem.

Forem code: https://github.com/forem/forem
About self-hostiing: https://dev.to/devteam/forem-self-host-is-now-officially-supported-16h0

But mostly I'm just here to talk about anything you want from me! DEV really started as an indie-hacking effort before we decided to grow and go after a more ambitious impact. Since then we've raised some funding and grown the team to about 40 great people right now. It's been quite a ride already, but we're just at the beginning.

I'm very much here to offer advice and answer any questions folks have.

  1. 7

    If you were me, what would you do to improve the community at IH? Besides switching to Forem 😝

    1. 5

      Besides switching to Forem 😝

      Before answering this in full, I'll take a brief foray into what you didn't ask me to because it is my AMA and I think that is okay...

      I've chatted with you a little bit in private about how you might switch to Forem, and the basis of that conversation is that building on Forem allows community-focused initiatives to focus all on community, and let Forem act as the kernel to provide solutions for the undifferentiated heavy lifting that is 90% of the technical work, sharing solutions for fighting abuse, scalable moderation, and user engagement + content distribution which is needed to grow when the competition for this kind of attention is monolithic tech companies with tremendous potential to win with economies of scale.

      Forem is not quite there yet in terms of the entire suite of creator options we want to provide in terms of offering the unique look and UX an Indiehackers needs to serve its constituents with personality — But we'll get there. Forem is an operating system for togetherness — and investing in our approach is a bet on security, scalability, accessibility, and a safe, open web. We our seeking to shrink our interfaces and be the kernel for a new community web.

      Anyway, I have to speak my truth, so that was my digression.

      As for improving the IH community I wonder if there are opportunities to develop periodic manifestos which the community comes together to contribute to — So not just top-down content from a few select authors, but a campaign, perhaps yearly, to address shifts in the market place and seek opportunities to question past assumptions of what worked.

      I think IH can serve as a space which can occasionally land on some kind of pseudo-consensus around what advice has gone stale, and what the future holds for everyone involved. How does this movement become more accepting so that fewer people are implicitly uninvited due to cultural norms? Where does the rise of commercial open source business models fit next to SaaS, which is right for me? Are NFTs actually going to happen?

      Lots of these questions get answered in one-off posts, but I think the impact can be a bit diluted if the collective knowledge is distributed horizontally instead of occasionally bringing people together for another type of content creation which might have a bigger impact in the moment. Having a lot of posts which are at least somewhat self-serving may not have the same positive impact as addressing some of these questions in ways that shine light on the substantive core of the issues.

      Lots of communities do annual awards, annual surveys, and of course conferences and meetups, but I'm not sure it's very common to actively bring people together in a slightly messier way. Maybe it's just some occasional curation, but I really think there's a chance for some innovation in form-factor which helps generate useful knowledge.

      Maybe this is a little out of left field, but it's what came to mind!

      My Forem detour was a little tongue-in-cheek, but I also do think that the answers to the second part are a little easier to execute on when you're getting the ongoing technical wins of a Forem platform for free. Forget about JavaScript bugs, think about what is possible when people are coming together in the first place.

  2. 5

    Hi Ben! I was always impressed by how fast dev.to was. Great to see the code behind it open-sourced and self-hosted.

    It's also impressive that you didn't capitalize on developer attention and opted for a more long term play.

    Could you elaborate on your vision and how you see the future of online communities unfolding?

    Is Forem more like a browser for communities than a managed forum like discourse.org? What other differences are there (besides the obvious tech and UI)?

    What's you opinion on Web 3.0 decentralized solutions to social networks?

    1. 4

      It's also impressive that you didn't capitalize on developer attention and opted for a more long term play.

      I'm not sure if you're saying this out of pure observation or because I've mentioned this myself, but kudos for bringing this up — this is exactly the idea behind Forem.

      On to the rest...

      A single Forem is a standalone managed instance, not too different than Discourse, and our approach to providing a collective unified experience through what we call "ecosystem apps" is nothing that Discourse couldn't pivot to providing as well. However, we are building an engaging experience which we believe can compete with Facebook groups, Reddit, and some of the other winners of the centralized web.

      Forem, through DEV, is backwards from solving for a lot of complex community issues, building growth right into the product in many ways, and supporting creators through the growth of a collective ecosystem. So a single Forem node is capable of being very big, or very small — and our opinion is that we should be the kernel layer that enables whatever the future of online community needs to look like. We want to focus on inter-Forem compatibility as needed to complement individual expression.

      Just like Facebook didn't win on product alone, we don't sit here right now assuming we've built the best thing and the future is obvious. The future we hope to provide through Forem is a matter of collective buy-in and working together to solve a lot of future problems.

      All of that is to say, I am very big on web 3.0 decentralized solutions — It's what we're building. But as long as we can provide security and unimpeachable data fragmentation (i.e. no one entity knows everything about you, even if you provide some data to each Forem individually), my personal views of the future of decentralization are whatever can be stomached effectively from a UX perspective. For a couple decades we convinced folks that a decentralized system (the web) really worked, and then we gave up and let the rent seekers take over.

      As far as web standards and new ideas that may or may not land in the browser, I don't necessarily pay attention to all the details of progress. I'm definitely in favor of technical solutions and standards that allow the open web to thrive, but I often just don't see these solutions solving for real-world community and safety in ways that make them overly important in the journey. We'll adopt any relevant new idea, we just don't see this as the be all end all.

      I believe we overcome the protectionist tendencies of incumbents is through great execution, having a growth mindset and a need to understand that our cousins and parents who are glued to Instagram and WhatsApp may never "get it", but will adopt the decentralized approach once the UX makes the decentralization unimportant, and unlocks the creativity that decentralized incentives allows for in the ideal case.

      1. 3

        Thank you for a comprehensive and thoughtful reply, Ben.

        I'm not sure if you're saying this out of pure observation or because I've mentioned this myself, but kudos for bringing this up — this is exactly the idea behind Forem.

        While I don't post on dev.to, I use it as a discoverability engine. I've never had a bad experience. Kudos to you for becoming what Medium should have become.

        I love the approach of developing a kernel layer for online communities with "ecosystem apps". It doesn't marry you to a particular tech.

        Great to hear your views on web 3.0 decentralized solutions. Especially the focus on the UX, which is mostly lacking in that space.

        I don't use FB (Instagram, WhatsApp etc.) and I'm sad about all the value being locked up in Facebook Groups. Hopefully, you guys can unbundle them!

        I'm going to give forem a try for my next project as a support/community forum to do my part :)

        1. 4

          I am also sad about value being locked up in Facebook groups — I had a moment a little while ago where I was listening to a new podcast I really liked and at the end of each show they say "join our community by visiting our Facebook group", and I get it, but it's just sad.

          I want to return to the days where that is a top level domain, owned by the podcast — It's not a site they entirely have to maintain and upgrade (Forem handles that), but it is their place. Facebook pages for restaurants, etc. are practically un-usable (not that we're getting into that space ourselves). It's just not the web we deserve.

          1. 3

            I am also sad about value being locked up in Facebook groups — I had a moment a little while ago where I was listening to a new podcast I really liked and at the end of each show they say "join our community by visiting our Facebook group", and I get it, but it's just sad.

            That's a poignant feeling I'm too familiar with!

            I want to return to the days where that is a top level domain, owned by the podcast — It's not a site they entirely have to maintain and upgrade (Forem handles that), but it is their place. Facebook pages for restaurants, etc. are practically un-usable (not that we're getting into that space ourselves). It's just not the web we deserve.

            Hear, hear! One of the biggest forgotten injustices in FB's history is allowing businesses and people to buy "likes" for their pages only to one day make them pay for reaching them with a switch of a button. Rent-seeking in its finest :(

            1. 4

              Yes, absolutely. On the other side of the coin, I cringe a little bit at a lot of the dialog surrounding topics of decentralization among the technical community, who treat the problem as one purely in need of getting over some technical humps, or successful if it appeals to other techies in a certain way.

              Just like the rise of the web itself, it needed to be packaged for consumability and approachability. Hopefully the underlying mechanics allow for more value and ownership to flow down to the edges of the network instead of steadily up to the core, but at the end of the day, most people migrate towards usable, delightful experiences (often times addictive, but I'd stop well short of considering that an ideal).

              The development of this type of technology needs both ambition and humility. I'm not immune to thinking or acting this way, but I observe a lot of misplaced arrogance in terms of examining what holds back great outcomes.

              1. 3

                I cringe a little bit at a lot of the dialog surrounding topics of decentralization among the technical community, who treat the problem as one purely in need of getting over some technical humps, or successful if it appeals to other techies in a certain way.

                100% agree. Web3 Design Principles are still in it their infancy. But it's clear that a holistic approach is required to distinguish Web 3.0 apps from Web 2.0 ones and make the experiences at least 2x better.

                Just like the rise of the web itself, it needed to be packaged for consumability and approachability. (...) at the end of the day, most people migrate towards usable, delightful experiences

                Delightful experiences are key! Too many techies still argue that simplicity in UI is enough. But "complex systems do not magically become simple by providing a simple user interface".

  3. 4

    Hey! 👋

    What is the greatest benefit you got from open sourcing Forem?

    1. 2

      It unlocks the opportunity to run a company which only needs to capture a small amount of the value it creates in order to be viable. If we can succeed in our best versions of open source stewards, we get something we can wholeheartedly lean in to.

      A lot of companies find themselves feeding a beast of absolute growth and value capture. I believe that we have laid the groundwork which can allow for a more sustainable future.

  4. 2

    Hi Ben! I really like Forem. The idea and how beautifully it was executed.

    Those are great numbers, and repo is a great inspiration/learning source for some of us using the same technology. I like the choices and the approaches.

    Regarding the stack/architecture:

    • What choices do you think you got right from the beginning?
    • What would you do differently if you had to start over?

    7M unique users is a big number. How many servers do you use to support that? How are they organized? (Deeply interested in that since I use the same technologies and have also big projections for next couple of years)

    Thanks.

    1. 2

      The best choice from the beginning was choosing solid, stable technology that I and others understood and would like working with: Rails.

      Other stacks are superior in a lot of ways, but I'd been working with Node in my day job at the time and a big part of this project was just picking an environment I liked more. So despite its flaws, I think it was a great choice.

      So was the choice to focus greatly on performance, to serve the bulk of traffic through a CDN layer and to really stand out for being a fast, usable website and work backwards from there. I'm glad I could do this without being to enamored with static site generators of the like. I think the approach overall was a success. It has its drawbacks and it's not like we haven't had to re-write or ditch a lot of early ideas, but the commitment to performance for the end user gave us a lot of scalability for free.

      If I could do anything differently it would be to plan earlier on for the choice of going full generalized re-usable app. Hard to say we'd be successful if we took the path, but technically things would have gone over more smoothly for sure.

      We don't try to test how low we can go on computer with DEV, so we toss a good amount of extra there just in case, but I know it could safely run on a single Performance-M dyno, or probably less if we wanted to. DEV is still on Heroku. Our self-host version and our Forem Cloud versions are hosted in different contexts. We'll learn a lot in the next few years just how efficiently we can run this thing, but it really does scale up elegantly.

  5. 1

    A Rails app?? In 2021?!

    Heh. I'm a Rails dev - great to see popular sites running on this stack :)

    1. 1

      The Rails ecosystem is doing so well — happy to coast on some of the innovation coming from Rails shops like Shopify, GitHub etc. 😅

      That being said, it's possible that the only technology in the stack that is really precious is the database (Postgres). It seems highly unlikely we'd ever move away from that, but as we strip away from the application layer to provide a tighter core technology, maybe that means that we eventually rewrite that layer in a less resource-intensive stack. We want Forem to be embeddable in a lot of contexts, and if we settle into a place where parts of the app are not changing very often, there could be opportunities to do great optimizations.

  6. 1

    When it comes to running a community, how has it impacted your philosophy on the concept of catering to "the crowd"? Curious what it'd be like to run a community i.e how it impacts your thoughts on people, the good/bad

    1. 1

      I think you have to be willing to frustrate some people in order to stick to your personal values along the way. One must make compromises as well, but if you try to please everyone you are going to compromise yourself out of doing value-based work.

      All that is to say, it's been lovely to see how the collective comes together and acts in a certain way, builds off each others' ideas and creates good vibes, with frustrations coming along the way.

      Along the way I have become pretty steadfast in my belief that you can't do any of this in an authoritarian way. You need to be able to lead and help folks succeed to an extent, but I really don't believe in extreme top-down systems. I think it's important to nudge, be diplomatic, and exert certain explicit powers of leadership along the way, but "the crowds" are always an enemy when you try to treat it like a kingdom of rulership. If DEV had to strive to be this singular platform to rule them all, I don't think we'd be very happy with the outcomes. If we're able to say "hey, it may not be for everyone — and please take this code and go in a slightly different direction.", we can be better stewards of the crowd's overall success and happiness.

  7. 1

    Happy to see you here Ben! I'm member of dev.to for past three years. I really liked the site. But one thing always wondering me is how you're monetizing it, Like you need to pay server bills right?

    1. 1

      Our main longterm business model is Forem services like our hosting product Forem Cloud. This means we monetize the opportunity for other folks to build on our tech rather than monetizing our developer attention directly.

      We do have some DEV-focused monetization such as sponsors for our upcoming CodeLand virtual conference, and we also do online hackathons and other partnerships.

      Links for reference:

      https://codelandconf.com/

      https://dev.to/devteam/announcing-the-github-actions-hackathon-on-dev-3ljn

  8. 1

    Hey, nice one.

    I love, DEV.TO but I have stop posting there because I have 5k followers and my posts get barely views.

    What are the reasons of this?

    Are they bots?

    thank you Ben, have a great day.

    1. 2

      Frequent posters will show up on our "suggested followers" section, and unfortunately, especially early on, we just didn't always get folks sticking around for a long time after signing up. People don't always remember to log in, etc.

      It's, of course, something we're looking to improve on long term. The majority of DEV users are visiting without authenticating, so engagement isn't always where it could be, despite growth.

      So they're not bots, but they are probably folks who just didn't stick around to absorb the community. We share an alignment in delivering more value to folks who sign in and stick around, so I'd encourage you to think of your relationship with us as a long term thing and see what works.

      This has ebbed and flowed and I foresee some of the improvements we're making having a big positive impact on overall engagement.

    2. 2

      Hey Michael, if you'd like you can email me([email protected]) and I'm happy to check your stats out

      (I'm on the Forem Community team :D)

      1. 2

        @bh @makr

        Iam going to close the actual and reopen a new one with zero followers nor post's.

        This my account.

        https://dev.to/michaelandreuzza

  9. 1

    Some tips you can give to someone who wants to build a large open-source project like forem?

    1. 2

      When I was starting this project, I really committed to making it a 10 year commitment — I wouldn't give up for 10 years even if nobody was visiting it after year 3. My theory was that continued attention paid to the problem would eventually yield good results, and it gave me the patience to be very methodical early on without getting bored or giving up.

      So that would be my recommendation — think longer horizon and pick a space you know you have the willingness to commit to longterm that you'll enjoy even if you need to make a pivot or two along the way.

      1. 1

        I agree with you, Having a long term goal helps a lot to not give up!

        Thanks a lot for the advise.

    2. 1

      This comment was deleted 3 years ago.

Trending on Indie Hackers
Competing with Product Hunt: a month later 33 comments Why do you hate marketing? 29 comments My Top 20 Free Tools That I Use Everyday as an Indie Hacker 18 comments $15k revenues in <4 months as a solopreneur 14 comments Use Your Product 13 comments How I Launched FrontendEase 13 comments