Let me tell you a story about a sandwich 🥪
Open the About page on DEV and you will find this sentence:
"DEV is led by Forem's co-founders Ben Halpern, Jess Lee, and Peter Frank ("PB&J")."
Ben ( @ben ) is the B. Peter ( @peter ) is the P. Jess ( @jess ) is the J. A peanut butter and jelly sandwich, made out of three people.
I read that line and had one of those "wait, how did this actually happen?" moments. I knew DEV started as a Twitter account. I knew it got big. I knew it was open source. But I had no idea how three people ended up running it together, who did what, or how the whole thing started in the first place.
So I went and read everything I could find. Podcast transcripts. AMAs. Old progress reports. Funding announcements. A college newspaper article from 2009 (yes, really). And what I found was a better story than I expected, with a missing date, a mystery typo, a Twitter account with 108,000 followers, and a plot twist in February 2026.
This post is that story, told in order, so you do not have to piece it together like I did.
The rules I am following
Who is who (so you do not get lost)
Here is the cast, so you can come back to this if you get confused:
Ben Halpern started the Twitter account that became DEV. He is the funny one, the one who writes most of the announcements, and the one most people think of first.
Peter Kim Frank (sometimes just "Peter Frank") is Ben's earlier business partner. He is the one on the business side, and he has been running online projects since high school.
Jess Lee met Ben a bit later, joined the project in 2016, and runs operations. Jess uses they/them pronouns, which Jess shared in a post in March 2026, so that is what I use here. When I quote older interviews that say "she," I leave them as they were.
And two words people mix up constantly:
DEV is the community, the website at dev.to.
Forem is the open-source software DEV runs on (and the company that grew around it). DEV is the first Forem. We will get to why that matters.
Okay. Ready? Let's go back to the beginning. Or at least, as far back as the record goes.
Table of Contents
- Chapter 1: A guy with a second Twitter account 🐦
- Chapter 2: The business partner who started young
- Chapter 3: The person who did not know what a startup was
- Chapter 4: From a joke account to an actual website
- Chapter 5: The decision, and the date that cannot be right 🕵️
- Chapter 6: The year everything grew 17 times
- Chapter 7: The day the code went public 🔓
- Chapter 8: Money arrives, and the office disappears
- Chapter 9: DEV gets a big sibling called Forem 🌍
- Interlude: how DEV actually felt to run
- Who does what, in plain English
- Chapter 10: February 18, 2026 🚀
- Where the three are now
- Epilogue: the ten-year promise
Chapter 1: A guy with a second Twitter account 🐦
Our story starts with Ben, and Ben starts with a website he built at about 13.
In a Learn to Code With Me interview, Ben said he grew up fascinated with HTML and built websites as a hobby. His first real application, he told Developer Tea, was a fantasy sports site. He has also said he has been an entrepreneur in some form "since I was 12." (That one is from the Changelog interview.)
Then the plot gets less straight. He took some computer science in college, dropped out of that track, and graduated with a marketing degree. He interned somewhere and did not enjoy it. So he thought about comedy writing, spent a summer in New York living with his brother and trying to meet people in TV, and found there was not much of a path.
Meanwhile he had stopped believing programming was for him. A professor had discouraged him, and he has admitted to imposter syndrome. Then around 2012, a friend in a college cafeteria pointed him at Ruby on Rails while Ben was thinking about an app idea. That was it. He got back into programming "for real," he said, and he loved it.
He also overdid it. He has talked about 17 and 18 hour coding days, and about getting shingles twice from overwork. So when you read the rest of this story and think "these people worked a lot," keep that in mind. At least one of them has told you how much.
Where does the Twitter account come in?
Here is the part I like.
Ben's own profile says he is "a Canadian software developer who thinks he's funny." In his 2017 interview on Developer Tea, he explained that he made a second Twitter account, The Practical Dev, so he could post about programming without annoying the friends who followed his personal one.
Notice what that is. It is not a business plan. It is a guy trying not to spam his friends.
At first the account shared programming articles. Then he added his own opinions and jokes, and that is when it "really started taking off." He also said his marketing degree helped him understand how to grow it, so the degree he thought he wasted came in handy.
He told Learn to Code With Me that jokes are only about 5 percent of what the account posts. Which is funny, given what people remember it for.
The Changelog hosts asked him about the O'Reilly-style parody book covers. Ben called them "the first major chapter" of the story. If you have ever seen a fake programming book cover with an animal and an absurd title, that style of joke is part of what made the account spread.
When did this start?
Ben does not give a birthday for the account in the interviews I read. But the founders' first progress report, from November 2017, says it had been 1,174 days since the account started. If you count back from November 1, 2017, that lands around August 15, 2014.
That is my math, not an official date. I will do the same trick with other dates in a minute.
By April 2017, when Ben spoke to Developer Tea, the account had about 108,000 followers. In an earlier interview he said "just under 100,000." Each tweet, he said, sent a few thousand people to dev.to.
So hold that picture: a joke account, three years old, with a big and loyal audience, and a guy who has just realized the audience could be a community.
Right. Now meet the second person.
↑ Back to contents
Chapter 2: The business partner who started young
If you want to understand Peter, start with a college newspaper from 2009.
The Wesleyan Argus ran a story in February 2009 about a freshman in the class of 2012, Peter Frank, who was running a website called CollegeACB from his dorm room. ACB stands for anonymous confession board. It was a network of roughly 500 boards for different schools, and the Wesleyan one was the busiest.
Here is what the article says, and I am only repeating it:
- CollegeACB had been started about a year earlier by two other students. Peter took it over about three months before the article, after they said they wanted a successor.
- He had already been running a small company, Sumdae LLC, since his sophomore year of high school in 2005. It was built on registering domain names.
- After a rival site called Juicy Campus shut down, Peter struck a deal with its founder. For two months, Juicy Campus's traffic was sent to CollegeACB. The article says it was a five-figure deal that Peter paid for himself. Traffic jumped from around 60,000 hits a day to about half a million, almost overnight.
- He said he was up until 4 a.m. that night adding schools.
- He went from spending a couple of hours a week on the site to five or six hours a day.
The article also says he turned down buyout offers, and it quotes him:
"If I create a service that's needed, wanting the money takes care of itself."
That sounds a lot like a young entrepreneur's philosophy, and I think it is a useful clue to how he later thought about building things.
To be fair to everyone, the same article mentions concerns about the tone of those sites. The previous owner said he hoped Peter would change the negative tone that had come with the Juicy Campus traffic, and Wesleyan's president said he found the site disturbing. Peter told the paper he would moderate it: he said he read the flagged posts and removed spam, and the site automatically deleted posts with enough complaints. I am including this because it is part of the record, not to judge it. It was 2009 and he was a freshman.
Texts.com and then Ben
Peter's personal site lists CollegeACB, then Texts.com and Argo among his projects. It says he was an English major at Wesleyan and is based in New York City.
The 2009 article actually mentions texts.com too, as one of the domain names he held, at that point offering international text messages. By the time Ben joined, Texts.com was becoming a student textbook exchange.
And how did they meet? Peter has the answer, in a fun-fact reply during his DEV AMA in December 2017: they met on Reddit, in the r/nycjobs forum. Ben said in the same thread that he had worked with Peter since moving to the United States, to New York, almost five years earlier. So that would put the start of their partnership around the beginning of 2013.
Ben was the technical person on Texts.com. In his Learn to Code With Me interview, he said he was hired to help start it, and that it later pivoted and became Argo. On the Changelog, he said he later folded dev.to into that same company, which became Dev Community Inc. Those are two different interviews, and I could not reconcile every detail of the corporate history, so treat that part as Ben's loose summary.
The "least technical" co-founder
Peter is open about not being a developer. In that same AMA, he called himself the team's "least technical" member. He works on strategy and operations.
He also told a funny and honest story about learning to work with engineers. Early on, he said, he had a "JUST" mindset, the kind where you ask why can't you "just" add a feature. He said he underestimated how demoralizing it is for developers to work with non-technical stakeholders, especially when specs keep changing. The team now quotes the XKCD "Tasks" comic internally to explain the gap.
His fix is something I find kind of admirable. He writes detailed issues. He reads pull requests to see "what went where." And he told other non-technical people that they are "totally capable of understanding what's going on" with effort and good teammates.
He also shared some personal facts: he says he was one of Tinder's very first users, he sold an online community in 2011, he was once on the Montel show after spotting a hiker in trouble from a helicopter tour in Hawaii at age 15, and he is half-Korean and half-Ashkenazi. All of that is his own telling in the thread, and I have not checked any of it.
So by the end of 2016, we have:
- Ben, who has a huge Twitter audience and a day job at the startup he runs with Peter.
- Peter, the business and legal partner on that startup, who has been running online projects since high school.
And the missing piece walks in next.
↑ Back to contents
Chapter 3: The person who did not know what a startup was
Jess Lee's path is the most unexpected one, so let's slow down for it.
In a 2021 podcast interview, Jess said they studied music in college and then worked in music publishing, a job that took away much of their passion for music. Then came a temp job at a startup, doing business analysis. Jess noticed something: the developers there were treated like first-class citizens.
That is what sent them to a coding bootcamp. Jess has not named the bootcamp in anything I found.
After the bootcamp, there was a catch. The only place that would hire Jess, a nonprofit that helps young people take social action, did not have developer roles, so Jess became a product manager instead. Jess said that job gave them enough energy to work on DEV at night and on weekends.
And here is a line I love, from the same interview:
"I didn't even know what a startup was six years ago."
(Six years before 2021, so roughly 2015.)
Loneliness is the origin story
Jess says the thing after the bootcamp was isolation. They did not know how to keep up with the field or where to meet other developers. They mention that bootcamp instructors told students to set up throwaway Stack Overflow accounts in case they got shut down for asking "bad" questions.
Ben, in his own telling, met Jess through a friend after Jess finished the bootcamp, and started mentoring them. Jess says the two of them had the same feeling: there was no place for new developers that felt welcoming. That shared frustration, they say, was what turned into DEV.
Different people tell it slightly differently, but I find the overlap clear: two people, both new-ish to the field in different ways, both tired of the unfriendly parts of the developer internet.
Ben describes the pairing with a great line. He calls himself "extremely abstract, chaotic and disorganized," and Jess the opposite, the person who brought order and discipline. Ben told another interviewer that Jess handles the taxes, expenses and organizational tasks he finds hard. Ben also noted that Jess writes code, so the business side is not all Jess does.
By the day counts in that first progress report, Jess officially joined the project about 485 days before November 1, 2017. That is around July 4, 2016, though again that is my arithmetic.
Jess gave their first public talk in 2017 too, at Write/Speak/Code, a women's conference in Portland, Oregon, about dev.to and developer identity. They called that their biggest achievement of the year.
One small warning: there is a completely unrelated Jess Lee, a businesswoman linked to Polyvore and Sequoia. Some web pages mix them up. Same name, different person.
So now we have three
At this point, in mid-2016, the picture is:
| Person | What they brought | Where they were |
|---|---|---|
| Ben | The audience, the code, the humor | Running a startup with Peter, building dev.to on the side |
| Jess | Operations, community thinking, product sense | Working a day job and building dev.to on the side (Jess's 2021 interview mentions a nonprofit, while the 2017 report says a larger company) |
| Peter | Business and legal skills, and a long history as an entrepreneur | Co-running that startup with Ben |
Only two of them are actually working on dev.to at this point. The third is about to be pulled in.
But first, we need to talk about how dev.to even came to exist.
↑ Back to contents
Chapter 4: From a joke account to an actual website
So how does a Twitter account turn into a website?
Slowly, and with a few accidents.
Ben told Developer Tea that he first registered practicaldev.com, and later switched to the shorter dev.to. According to the November 2017 progress report, the dev.to domain was bought about 550 days before the post, which lands around April 30, 2016. (My arithmetic again.)
Ben also said that around this time he decided to take the project seriously and build a real programming platform, while keeping most of his creativity pointed at the Twitter account. That sounds right to me. The account was the thing people loved, and the site had to earn its place next to it.
His goal, as he put it on the Changelog, was to fix the things he had been making fun of: career chaos, inconsistent learning resources, and a lack of tools and places for developers to gather. In other words, the jokes were the symptoms and the site was the treatment.
The first article was an interview with DHH
This is my favorite detail in the whole story.
Ben told the Changelog that the first thing published on dev.to was an interview with DHH, the creator of Rails, timed around the Rails 5 release. How did a guy with a joke account land an interview with one of the most famous names in the Ruby world? Ben said he emailed him, asked nicely, and made it easy to say yes. That is the whole trick.
He lined up more interviews with other open-source people after that. The original idea was a high-touch, interview-driven site. Then, he said, audience feedback pushed it in a different direction: a place where anyone could write about anything software-related, with an enforced code of conduct.
If you have used DEV, you know which version won.
The login button nobody could find
Here is a detail that made me laugh. Ben said the login feature was hidden in the footer at first. Hidden. And people found it anyway and logged in in large numbers, which surprised him.
A few other early choices are worth knowing, because they explain why DEV felt the way it did:
Ben called that a low barrier for most developers. It also gave the team some history to look at, since a brand new account that mirrors a banned one can be flagged as spam or harassment. If you had neither account, he said, they worked with you.
Jess said an early feature let creators import posts through RSS while keeping their canonical URL, so people could bring their blog posts with them without losing credit.
And the Twitter account amplified quality content from writers who were not famous, which Jess says helped DEV grow.
Ben picked Rails and called it "boring and old" on the Changelog, which he meant as a compliment. In his 2021 Indie Hackers AMA, he said the choice of "solid, stable technology" was the best early decision they made. He also said he had been using Node at his day job and wanted an environment he liked more.
One more quote I like from Developer Tea:
"A blog post is worth a thousand readmes."
Ben was making the case that a person explaining a tool in their own words is often more useful than the project's official docs. That is basically DEV's entire pitch in one sentence.
The worry that almost stopped it
Now for the quiet tension in this chapter.
Ben told the Changelog he was protective of the project. He worried that turning it into a business could ruin it. He wanted everything on the site to be "additive," not extractive.
What changed his mind? A conversation with Saron Yitbarek, the founder of CodeNewbie, who had just left her job to run CodeNewbie full-time. Seeing that, Ben said, helped him believe the project could be a real business.
And then he made a promise: he committed to giving the project ten years. In his 2021 Indie Hackers AMA, he repeated that as advice for anyone building open-source companies: commit to a ten-year horizon, even through the slow years.
Hold on to that ten-year promise. We will come back to it at the end.
How big was it, at the very start?
We have exactly one number from the early days, and it comes from the progress report. The team ended October 2016 with 69,259 sessions for the month.
That is not nothing, but it is small. A year later, the same report would say something very different. We will get there. First, we need to answer the question that has been hanging over this whole story.
How did three people become a company?
↑ Back to contents
Chapter 5: The decision, and the date that cannot be right 🕵️
On November 1, 2017, Jess published a post called "First monthly dev.to progress report." It is short, it is written by one of the founders, and it is the closest thing to an official origin story that the team put in writing at the time.
Read it carefully and you get the whole setup. At the time of the decision, Jess was working at a larger company and getting ready to go full-time on dev.to. Ben was in what the report calls a "trickier situation": his day job was CTO of a small startup, which he ran with Peter Frank. Ben had met Peter through Reddit and had worked with him for four years.
Peter knew the community was growing. So it was no great shock when Ben raised a problem: dev.to was taking more and more of his attention, which was a conflict of interest with the startup. Meanwhile, he and Jess were trying to figure out how Jess could work on dev.to full-time.
After some "soul-searching," the post says, the three decided to combine their efforts and resources. They merged teams, five people in total, and had been running on friends and family funds ever since. About ten months later, the report says, they were "really happy" with the balance. And then comes one of my favorite throwaway lines in the history of startups: as a "fun fact," the post says the three are referred to as PBJ internally.
That is the first time I found the nickname in writing. I could not find who invented it or when.
Ben tells a similar story in the Changelog interview, from his side. He says the project was folded into the existing company, and that Peter, his partner, took on much of the business and legal work. In the Dec 2017 AMA, he put it more simply: when dev.to "could be bigger than a two-person side project," that is when they brought Peter on. And, with a joke, he said, "Having three partners is great for breaking ties in arguments."
Wait. January 2016?
Here is where the detective work starts.
The progress report says the three agreed to combine "in January 2016." I read that line, then read the post's own numbers, and something did not add up.
Let me lay it out, because this is the kind of thing you can only trust if you can check it yourself:
- Jess had not joined yet in January 2016. By the report's day counts, Jess joined 485 days before November 1, 2017. That is about July 2016. So Jess could not have been preparing to go full-time six months before even starting.
- Ten months does not match 2016. The report says the merged team had been together for "about ten months." Ten months before November 2017 is roughly January 2017.
- The report says they were dreaming of it a year earlier. It also says that in October 2016 they were "dreaming of" working on dev.to full-time. That only makes sense if the decision came after October 2016.
So my reading is that "2016" is a typo for 2017. And I am fairly sure, because more sources lean the same way:
- In the AMA Peter posted on December 20, 2017, he says he has worked on dev.to with Ben and Jess "since last January."
- Peter's DEV profile says he joined on January 3, 2017.
- In the same thread, Ben says they brought Peter on when dev.to "could be bigger than a two-person side project earlier this year." (Earlier this year, as in 2017.)
- Jess, in the 2021 interview, says the team went full-time in 2017.
A coincidence I cannot explain
While I was working on this, I found something interesting. DEV has a Product Hunt page with a launch date of January 2, 2017. The ranking of number one for the day is credited to January 3.
So the Product Hunt launch, Peter's DEV join date, and the "January" decision all happen in the same few days.
I want to be very clear: I have no evidence that these are connected. It may just be a coincidence of timing. I also cannot fully explain why the page shows two dates for the launch. Time zones and the way Product Hunt displays launches might explain a one-day gap, but that is a guess, and the upvote counts on the page were ambiguous, so I am leaving them out. The founders do not say the launch caused anything. I will not say it for them.
What the report does not tell usThis is one of the places where the record goes quiet, so let me list what is missing, because it is a lot:
- Who suggested the merger.
- How equity was split, or what anyone was paid.
- How titles were handed out.
- Who came up with "PBJ" and why it stuck.
I looked for these elsewhere and found nothing. That does not mean the answers do not exist. It means they have not been made public, as far as I can tell.
↑ Back to contents
Chapter 6: The year everything grew 17 times
Now we get to the fun part. Let me show you what the first year of the three-person team looked like in numbers.
In the same progress report, the team says that October 2017 brought 1,203,378 sessions and 39,539 registered members.
Let me put that next to the number from the previous October:
| Month | Sessions | Where it came from |
|---|---|---|
| October 2016 | 69,259 | The November 2017 report |
| October 2017 | 1,203,378 | The same report |
That is about 17.4 times more traffic in twelve months. (I did that math myself, and both numbers are sessions from the same report, so it is a clean comparison.)
Meanwhile, in April 2017, Ben told Developer Tea that dev.to got about 30,000 unique visitors a day, roughly 600,000 to 700,000 a month. Do not subtract that from the October number. Those are different measures: unique visitors count people, sessions count visits. Mixing them gets you nonsense.
Ben also said the most-read articles then reached around 100,000 reads, and a typical article got several thousand. And he said something I think is a good picture of the time: he was encouraging people to write short, practical posts, since long drafts tend to stall, and a quick "heads up" tip can be really valuable.
What the team shipped that year
By Jess's November 2017 AMA, the product list had grown. Jess listed:
- Reactions on articles (with a note that "the unicorn reaction is up for interpretation")
- Notifications
- A smarter home feed
- Self-created organization accounts
- A
#hiringboard
And Peter said hiring tools were an area he saw as important for revenue, as long as people who did not care could ignore them.
How the team ran in those days
Here is one of my favorite details, again from Jess's AMA. The team held a retro every Friday, in a "Rose, Bud, Thorns" format. Roses are things to celebrate, buds are new things to be excited about, and thorns are things to fix. Jess admitted that the hardest part was remembering to give feedback, because the team often rushed through them.
Jess also gave some practical advice on hiring: remove personal details from resumes, and have each interviewer write their feedback on a form before discussing it, so the group does not just follow the loudest voice.
And about growing a community, Jess said it takes time and cannot rely on a "build it and they will come" mentality. The hardest part, they said, is deciding which advice to take and which to drop. They also gave the community the credit: "our tech isn't anything to write home about."
Honestly, that is a pretty healthy attitude for a startup in a year when everything was going up and to the right.
The monthly report, as a habit
One more thing about that November 2017 post. It was titled the first monthly progress report. The idea was to keep the community in the loop each month. It is a small thing, but it matches what the founders said about transparency. When Mayfield later invested, they made a point of saying the code and the business were open to the community's scrutiny.
But before we get to the money, there is another milestone in 2018, and it is a big one.
↑ Back to contents
Chapter 7: The day the code went public 🔓
If you want to understand DEV's character, look at what the team did on August 8, 2018.
They gave away the code.
Ben picked the date himself. On the Changelog he called 08.08 "a lucky number." The code went live at 1 PM Eastern, and the Changelog hosts recorded their interview with him a couple of hours later. You can hear that in the conversation: this is a person who has just done something big and is still a little buzzed from it.
The team had announced the date more than a month in advance, which Ben said created a deadline and some excitement. Before launch, outside auditors reviewed the codebase for security problems, and DEV ran a modest bug bounty that turned up small exposure issues over time. Ben also brought up the Homebrew supply-chain incident as a reason to take security seriously in open source.
Then came the question everybody asks: aren't you afraid somebody will just clone it? Ben's answer was that the community is more valuable than the code. So no, that did not stop them.
"A starting line"
On the day itself, Ben published a post called dev.to is now open source, credited to him together with Jess and Peter. He wrote that this was "not a finish line" but "a starting line."
The code is a Ruby on Rails app with a Preact front end, released under the AGPL-3.0 license, with some extracted libraries under MIT. The repository started under the thepracticaldev organization and later moved to forem/forem. (I could not open the GitHub repo from my environment, so the license and repo details come from DEV's own posts and other reading, not from checking the repo directly.)
Forem 🌱
Welcome to the Forem codebase, the platform that powers dev.to. We are so excited to have you. With your help, we can build out Forem’s usability, scalability, and stability to better serve our communities.
What is 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 See our announcement post for a high-level overview of what Forem is.
dev.to (or just DEV) is hosted by Forem. It is a community of software developers who write articles, take part in discussions, and build their professional profiles. We value supportive and constructive dialogue in the pursuit of great code and career growth for all members. The ecosystem spans from beginner to advanced developers, and all are welcome to find their place…
According to a note on the announcement page, the first merged pull request went to a contributor with the handle _bigblind. Somebody always has to be first.
Ben's one regret
Here is something I did not expect. When the Changelog hosts asked Ben what he would change, he said he wished the project had been open source right away. It would have been "much cleaner the whole way," he said. He added that he would not close-source a future project without a very good reason.
I like that answer, because it is not the polite "no regrets" answer. It is a practical one: closed-source code tends to pick up shortcuts nobody wants to show.
He also pointed to Linux as the model for open development, and said Microsoft had to embrace open source to survive.
Did anyone actually contribute?
Fair question. Headlines like "hundreds of contributors" can mean almost anything, so here are the specifics the team gave.
By November 22, 2018, in a thank-you post, the team said 90 community members had contributed since August. The changelog entries it mentioned included a feature to export posts (by a contributor called rhymes), a GitLab link on profiles (by sidemt), and updates to the comment box (by Nick Karnik).
By August 8, 2019, in the one-year post, the team said traffic had more than tripled, the site had passed 200,000 registered members, and hundreds of developers had pull requests merged.
And then there are the small, human details, which I love:
- A day after the announcement, rhymes opened pull request #303, suggesting the team run the bundler-audit vulnerability checker before each build.
- Andrew Bone's first pull request (#1227) moved a menu background down by 8 pixels. A later one (#1306) added CSS variables that made multiple site themes possible. That is a very nice path: from "8 pixels" to "themes."
- The team hired contributors from the project onto the core team. rhymes joined a couple of months after the 50th merged pull request in March 2019.
In 2021, Jess said more than 550 people had contributed to the codebase. They al...


