I'm building Penflip, a collaborative writing platform. It's similar to GitHub, but designed for writing instead of coding.
For the past three years, I've used GitHub for hosting code projects, discovering bleeding edge tech, and collaborating with an engineering team. And it has been simply wonderful. In fact, it's hard to imagine coding without GitHub. I rely on GitHub every single day.
However, despite how crucial GitHub is to the developer toolbox, I'm constantly wondering why the platform is limited to just code. It's not a stretch to imagine the usefulness of a similar platform for non-developers - authors, teachers, students - though as much as I search, I can't seem to find one. So I'm building it myself. I'm building a GitHub for everyone else.
What's so awesome about GitHub?
Okay wait, lets step back for a second. GitHub really isn't that great, you say? It's just a web interface for Git? Well yeah, it is that. And Git is pretty powerful already. But GitHub is more than just an interface. Aside from making Git easier to use and providing hosting and support, what stands above everything is the GitHub Flow.
The GitHub Flow is a workflow built on top of Git that goes like this:
- A main (master) branch is considered stable
- Updates are done on separate branches off of master
- When an update is ready to be merged in, a 'pull request' is created
- The pull request is reviewed by a team member, noting any changes that should be made
- When the pull request is approved, the branch containing updates is merged into master
All of that is done through a simple web interface with email notifications each step of the way, and it makes collaborating on code extraordinarily easy. What's really neat is that there can be multiple pull requests and multiple versions of the code floating around simultaneously (thanks, Git!), but everything eventually ends up in single place (master branch).
So... for non-developers?
Imagine the same workflow applied to a collaborative document, like a college engineering group research paper:
- I start writing the paper, implementing a basic structure and some initial facts.
- Jacob clicks a button and branches off onto his own version of the document. He doesn't have to download a file, make a copy, and rename it. Git takes care of that. He can make changes at will, without worrying about affecting anybody else (unlike real-time tools like Google Docs). He adds a new section, and also fixes some of my factual errors.
- Jacob thinks his changes are ready to be merged into the main document, so he creates a pull request (again, with the click of a button).
- The team is automatically notified via email that Jacob opened a pull request. Everyone can quickly see exactly what changed - line for line, word for word.
- Marva looks over Jacob's work and notices a few grammatical issues, which she points out in a comment on Jacob's pull request.
- Jacob fixes the errors, Marva approves his pull request (again, with the click of a button), and the changes are merged into the main document.
This workflow may sound complex, but it's actually incredibly simple and efficient in practice.
Why not just use GitHub?
Some barriers make it intimidating for non-developers to jump in, even if the platform can technically handle it:
- Tech jargon: non-developers don't understand branches, forks, commits, rebasing, cloning, etc.. and they don't care to learn.
- Command-line first: while GitHub is slowly moving Git functionality into the browser, the primary focus is still on the command-line. The in-browser features are meant to supplement the command-line, not replace it altogether.
- Diffs: GitHub diffs (changes in a file) are designed for code: line-by-line diffs instead of words, sentences, and paragraphs.
GitHub is built by developers for developers. That being said, some non-programmers are using GitHub anyway, because it's just that powerful. Take, for example, the HoTT book...
The HoTT Book: Proof
A group of almost 40 mathematicians wrote a 600 page textbook on Homotopy Type Theory in less than six months. They taught themselves git, and they used GitHub for hosting, pull requests, and discussions. The book simply wouldn't exist without GitHub.
That. Is. Amazing.
I subscribed to the project on GitHub and I receive email updates every single day. The book has been released, but they're still iterating constantly. I can't even begin to comprehend the complex mathematics racing through my inbox, but the fact that these brilliant mathematicians are collaborating like this, creating something that has never existed before, out in the open, and I have a front row seat... it just blows my mind.
If you have a minute, read about their experiences writing the book. Here's a snippet:
... mathematicians do not normally work together in large groups. In a small group they can get away with using obsolete technology, such as sending each other source LaTeX files by email, but with two dozen people even Dropbox or any other file synchronization system would have failed miserably.... We used git and github.com. In the beginning it took some convincing and getting used to, although it was not too bad. In the end the repository served not only as an archive for our files, but also as a central hub for planning and discussions. For several months I checked github more often than email and Facbook. Github was my Facebook (without the cute kittens). If you do not know about tools like git but you write scientific papers (or you create any kind of digital content) you really, really should learn about revision control systems. Even as a sole author of a paper you will profit from learning how to use one ...
Does anybody else actually want this?
I think so. A platform like this could be valuable for researchers, novelists, teachers, students, ebook authors, screenwriters, PhD candidates writing theses. I'm not the only one thinking about this:
A GitHub for non-developers can change the way content is created and distributed. Why stop at a textbook on Homotopy Type Theory? Lets keep going. All the textbooks. And course materials while we're at it. Imagine a professor forking problem sets, tweaking them, and distributing to students. How about a group of psychologists publishing groundbreaking research more quickly and efficiently than they could with the current archaic systems?
This is just the tip of the iceberg. I'm sure there are possibilities that I can't even imagine.
So, I've been working on this crazy idea - I'm calling it Penflip. It's not live yet, but it's close to something resembling an alpha. I'm just too excited to keep quiet, so I'm telling you about it now :)
I've already expressed my love for GitHub, so it's no surprise that it's a huge inspiration for this project. The goal is to build a platform with the primary features of GitHub (teams, issues, pull requests, discovery, project management, built on Git) but with an interface optimized for writers, along with some other useful features:
- In-browser editor: GitHub has one, but it's not great. That's why prose.io exists. Prose is awesome, and absolutely beautiful. In fact, I'm using it to write this right now. No point in reinventing that wheel, so I've hacked prose right in. Yay open source!
- Auto-generated project structure: if you're writing an ebook, you need some kind of starting point. Penflip creates a set of basic files for you to build on top of, tailored to your project type (ebook, document, textbook, etc).
- LaTeX support: math and science need it.
- One-click publishing: one of the most annoying parts of writing is making the piece look professional and figuring out how to convert to a consumable format. Solution: one click to convert to PDF/ePub/mobi/etc, complete with layout and styling.
- Mobile-friendly: because writing can happen anywhere.
- Diffs for writers:
Oh, and did I mention that all of this happens in the browser, from any computer, anywhere? And because Git is running beneath the surface, the technically inclined can clone projects onto their computers and use desktop editors instead. But it's not required. Pretty neat.
That's what I'm working on, and I'm pretty darn excited. I think the possibilities are huge. Massive. I'd love to hear your thoughts. Do you think this is a horrible idea? Awesome idea? Wasting my time? Please tell me (but I'm already building it anyway).
Are you writing an ebook? Are you a professor who wants this? Or part of a team of writers or researchers? Lets chat.
Want to know when Penflip is up and running? I threw together a quick landing page to gauge interest (I'll only send an email when the project is running and usable):
Can't wait to see where this goes!