Justin Hunter had the courage to challenge Google Docs, all because he was scared of losing all his writing saved in the cloud. So he created Graphite Docs, a privacy-focused alternative to Google Docs powered by blockchain, that assured users that their saved files were indeed safe. And the effort paid off; he started gaining traction from individual users. However, he decided to focus on the B2B model, rather than B2C, and this decision cost him the business. Why? Read on to find it out.
Hi! My name is Justin Hunter, I’m 36 (though my wife and kids like to tell me I’m 40 already), and I live in Dallas, TX. My background has largely been in customer-facing roles (customer service, management, customer experience, and sales), but I took a non-traditional path to development and have been coding for the last three years. In fact, I’m working on contract development work now. Because of my experience with Graphite (and subsequently another startup called SimpleID), I get a bunch of interest from companies in the crypto space.
Graphite Docs was the catalyst for everything—learning to code, starting a business, entering the blockchain space. It was a privacy-focused alternative to Google Docs. Rather than create an account with a company that owned every piece of your data, Graphite allowed you to create user accounts anchored to the bitcoin blockchain, cryptographically owned by you, and created documents that were encrypted with keys only you had access to. And to top it all off, Graphite allowed you to store data wherever you want (Graphite didn’t even maintain a document database).
As a sole founder, my job was to write the code, market, sell, do demos, attend events, and pretty much everything else under the sun. Early on, I had no business model in mind. I really didn’t care if people even used it. But when it started getting traction, I introduced a b2b SaaS model, despite cries from the crypto-community to do something in cryptocurrency.
Graphite was born during my MFA program in Creative Writing. I did not have a real technical background at this point. Sure, I’d worked for tech companies, but my roles have always been customer-facing. So, when I had the idea for Graphite, I didn’t know how to make it happen. But let’s back up. Why did I even want to build Graphite?
I’ve always been a writer. My whole life has been filled with writing. It just wasn’t until I was in my 30s that I could afford to invest in a degree that clearly wasn’t going to have a job-related, financial return. But when I was financially secure enough to do it, I jumped at the chance to get my MFA.
As I got closer to the end of my MFA program, I realized my most important writing—short stories, novels, notes, etc—were being stored in Google. Google has not had a great history with privacy. They also have had issues where people would be locked out of their accounts either accidentally or for seemingly arbitrary reasons. I couldn’t bear the thought of one day losing all of my writing. And I was NOT going back to Microsoft Word.
I did some research, but I couldn’t find an alternative to Google Docs where I’d have complete control over my documents and couldn’t be locked out. So I said, fuck it. I’ll build it.
I taught myself to code with the singular focus on bringing this thing to life. I made life even harder by deciding to use cutting edge technology that would allow me to realize my requirements of censorship resistance and true user-ownership. There was a steep learning curve not only in learning to code but in diving deep into blockchain and cryptography. But I was motivated. And interestingly enough, the motivation was not around launching a business. It was about building this thing for me.
In fact, when I was ready to launch Graphite, I didn’t. I hosted it for myself only. But when some people I know in the blockchain space found out about it, they encouraged me to make it available to everyone. So, I did.
I built Graphite WHILE learning to code. It was a strange, non-traditional process. I had tried to learn to code so many times over the preceding 10 years, but I could never focus enough to absorb everything I needed to. With Graphite, I had a goal. So I’d build, I’d get stuck, I’d learn something new, and I’d apply it.
Every single day was a challenge. I felt like such an imposter building this thing. Who was I to fire up a code editor and program anything? But as I got over the imposter syndrome, the actual coding obstacles became fun. Every bug, every piece of code I didn’t understand became a fun learning process.
I think my first line of code for Graphite was written somewhere around May of 2017, maybe earlier. I was an idiot and never put it under source control until December of 2017. But you can see my first commit here.
When I was finally convinced to launch Graphite to the public, I had the great fortune of also being invited to speak about my experience at a blockchain-focused conference in Berlin. I figured I’d just go ahead and launch the app publicly then. So in March of 2018, I threw together a quick Product Hunt post and went to sleep thinking I’d put more effort in when I woke up. But the truth is, I was so nervous about speaking that day at the event that I didn’t want to think about Product Hunt or launching or anything other than not throwing up. So I pulled the trigger, put it up on Product Hunt, and decided last minute to drop it on Hacker News. Well, that strategy (or lack thereof) worked.
Graphite finished as the number four product of the day on Product Hunt with over 500 upvotes. It trended on the front page of Hacker News for two straight days. Combine that with the fact that this little blockchain event I was to speak at turned out to be a big media event, and Graphite’s accidental, unplanned launch blew up. Graphite ended up being written about on dozens of sites including Wired, Lifehacker, The Washington Post, The Guardian, and more.
But here’s the thing. That was 100% luck. Don’t let anyone with a similar experience tell you otherwise. Luck happens. It’s just a matter of how you react to the times when luck finds you.
For me, I took the luck that had fallen on my shoulders and did everything I could to capitalize on it, starting with the first iteration of a b2b pricing model. I had already started building a user base, so I needed a way to capture businesses. I added just enough features to separate the free and the paid plan, then I started collecting emails and put a “Request Demo” button on the site. I was doing demos from the office of my day job, trying to sell small businesses on this new technology. And it sort of worked. I landed my first customer on a $19.99/month plan. But I knew $19.99 a month wasn’t going to cut it for long. I tried raising the prices, tried adding features, tried streamlining. All in the name of finding the right balance to serve businesses while letting individuals use the app for free.
I leveraged my writing skills as my primary marketing strategy. I wrote so many blog posts I can’t even count them anymore. I started the company blog on Medium knowing there was a built-in audience and a better chance to get eyes on my content, but after a while, I moved the blog to a dedicated site owned by Graphite.
With content comes promotion, and I happened to already be pretty into Twitter. So, I used Twitter as my main distribution channel. But I took a different tact with Twitter than most. I chose to be genuine, both with the brand account and my personal account. I tried to avoid corporate-speak, tried to avoid making people feel like they were interacting with a robot instead of a person. What does that look like? Well, it looks like it would if you were tweeting something off the cuff on your personal account with no hidden agenda. And the truth is, that’s how I treated marketing with Graphite. I didn’t subscribe to any social media automation software, I didn’t have a spreadsheet with all my planned tweets laid out. I just did what I always did—tweet when I felt like it. The trick to this, of course, is still tweeting often. But that was never a problem for me.
The other main strategy I had was event marketing. After seeing how much traction I got off that first event in Berlin, I was convinced that attending conferences and speaking or exhibiting was the key to winning business. I managed to get a few speaking events booked where much of my travel and other costs were covered, but for everything else, I paid...a lot.
I still struggle with understanding whether event marketing worked or not. I managed to get continued media coverage of Graphite because of it, but did that coverage translate to users? I don’t know for sure, and that’s a failure of measurement on my part. I’d go so far as to say the biggest failure in marketing as a whole for Graphite was my lack of measurement. I didn’t A/B test things, wasn’t methodical in understanding the returns on the things I did. This was a product of how I was running the business and perhaps a little bit of ego.
I ran the business the way I wanted it to run, which is totally fine. But my ego told me that I didn’t need to try things that other marketers had tried and proven over the years. If I could go back, I would measure everything. I think it’s possible to do that while maintaining a genuine voice and presence.
Honestly, had I been measuring my efforts, I would have recognized patterns earlier. I would have seen that the b2b market might not have been the best bet. I can look back now and see that almost all of my engagement across blog posts and social media came from individual users. That’s an important metric to recognize and act on. But I didn’t notice it at the time. Instead, I barrelled down the b2b path without even considering an alternative.
I know I’m not the only one to feel this way, but my first inclination here is to blame outside influences. Things beyond my control. And sure, maybe there was a bit of that in Graphite’s failure, but at the end of the day, Graphite failed for the same reason most companies fail—lack of execution.
I took that early traction to mean I had found product/market fit. I took my foot off the gas when it came to talking to and understanding users. Part of that is because I had originally built Graphite for myself, so I was the only user I cared about. But the other part is I saw people writing about Graphite, I saw them using Graphite, and I believed that I was the one founder in the history of time to get it right on the first try.
The truth is—and I wish I better understood this or could see it when I was starting Graphite— you never get it right. Every decision you make will eventually be the wrong decision, even if it’s right in the moment. The path to success is being flexible and willing to adapt based not on opinion but on user feedback.
I knew that the user base for Graphite was niche. When I first started exploring a revenue model, I would estimate that 70-80% of Graphite’s users fell into the blockchain enthusiast bucket. Another 10-15% were privacy-focused consumers, and the remaining percentage MIGHT have been normal everyday users. Yet, I ignored that. I knew that privacy was important. I knew there was a gap in privacy-focused tools for businesses, and I pressed forward with a business model centered around b2b sales of Graphite as an enterprise solution to companies who cared about privacy.
Why did I choose b2b versus consumer? Why did I focus on what would amount to a new market rather than focus on the existing base who was using my product? I have thought about this a lot, and the answer always falls back to comfort. My background has been in b2b for a long time. That’s where I was comfortable operating. I could market to b2b, I could do product demos, and I could talk the corporate language. But no amount of comfort and experience can force a market to adopt your product.
I had a built-in user base that was OK with the complexity of using Graphite—and there was definitely some complexity around the blockchain and cryptography aspects of it—but I chose to sell to an audience that I knew from experience struggled with managing simple Microsoft Word documents. I chose to sell to a market that has IT departments and system admins that take care of user accounts and password resets. I went to this audience and said, “Hey, what if you could control your user accounts, control your files, and collaborate privately and securely.” They heard the last part and liked that, but they could not and did not want to manage the first part.
The above is all compounded by the fact that it took me longer to realize this than it should have because I had a safety net. Because I was building in a cutting-edge tech sector, and because there were many competing protocols, the protocols themselves would often offer grants for engineers building on their platforms. It’s very similar to the way researchers in the early internet days were funded by universities and government grants. So, I had users, I had press coverage, and I had money coming in. Never mind that the money wasn’t coming from users of my product. Never mind that the press coverage was generating new individual users, not businesses. Never mind that having money doesn’t mean you have a business.
I think a lot of founders who take on venture capital run into the same problem, except they actually have people to answer to. In my case, I just had money and I had a product, and I thought I had made it. I had an advisor who begged me to keep my day job because it would force me to make smart decisions about how Graphite would operate. But as soon as that grant money came in, I went full-time on Graphite. I don’t know that I would change that decision, but I do know that he was right about needing something to force you to make tough choices.
I was blind to the needs of the market because I had tricked myself into thinking I had found the solution.
This all sounds very egotistical, but these realizations did not come at the time, of course. They have come with the benefit of hindsight. I only recognize them now that the company is shutting down because I’ve taken the time to consider my entire experience.
I knew Graphite was probably done for by the summer of 2019. So much so that I started another startup and focused on that while Graphite just sort of existed. I let Graphite linger on until now because it just felt like I was giving up to shut it down. By the summer of last year, though, it was clear that businesses weren’t going to be using Graphite. And as for that blockchain and privacy-focused user base? They’d been using Graphite for free for two years now. There was no chance of pivoting into a consumer model and charging those people by then.
A few weeks ago, I made the decision to shut the doors. I had a friend and advisor who had put some money into Graphite before I started getting the grant money, and telling him was the hardest thing I had to do. I had lost his money with nothing to show for it. But I told him first, then I started the process of filling out the tax and state documents to shut the company down. Finally, I sent out the email to everyone on Graphite’s mailing list about the shutdown. The interesting thing about the way that Graphite worked is that I never had access to anyone’s content. It was always stored wherever the user or the business chose to store it. So, in theory, even after Graphite shut down, they’d always be able to access their content. In practice, though, this was harder than it seemed. I built an exporter for the more technically inclined and I included export instructions for those who wanted to download their content from the interface.
Despite how hard it was to do all of that, I felt good when it was done. Graphite had become an obligation that I could not fulfill. It was the greatest professional experience of my life and I will always be sad that it failed, but I felt a huge weight lifted off my shoulders when I decided to shut the company down.
I think the two biggest mistakes I made with Graphite were focusing on the wrong market and shipping without validation. I talked a little bit about the wrong market problem, but let me go into a little more detail.
I am good at b2b customer service, account management, and sales. Getting in front of businesses and trying to sell Graphite was never a problem. I managed to get in front of CNN, Buzzfeed, high-profile NGOs, law firms, and medical clinics. So, the problem wasn’t in generating leads. It was entirely in not understanding the product’s fit within the market I was trying to sell to. Businesses don’t want individual ownership of documents and files. They don’t want absolute control of user accounts in the hands of employees. I tried to fit Graphite into their box, but it was never a good fit. The encryption and protections were always the main selling points, but those benefits were tightly coupled with the things businesses didn’t want. Top that off with the complexity I mentioned earlier, and the b2b path was just flat-out the wrong approach. A quick anecdote to the complexity:
I had done a product demo for an NGO. Most of the staff was on the call, and the goal of the call was onboarding them to a pilot that would eventually convert into my first big paying customer. As part of the onboarding, my goal was to walk them through all the enterprise-specific features they’d be getting that the free accounts didn’t have. We never made it that far. It took 45 minutes for a single person in the organization to create a user account and understand how to manage that account. That experience was the beginning of the end for me.
The second challenge that I think I was able to overcome, but probably too late, was shipping without validation. I first built Graphite as a Google Docs alternative, but I soon convinced myself that it should be a full office suite. I built a terrible spreadsheet app, a file storage app, a Google Forms alternative, and even started on a slideshow app. Build all of these various apps and packaging them into the Graphite offering was distracting. I didn’t focus on my existing users as much as I should have, and I wasn’t able to improve the core product—the documents—fast enough because I was always building and shipping some unvalidated features or product.
I reigned this in, but it was probably too late by then. There’s actually a branch in the Graphite GitHub that was going to be the next generation of Graphite where it was only a documents app again. But as it stands, the final product that users saw was documents and file storage.
I was fortunate that Graphite’s overhead was very low (I sunk almost every dollar of grant money into marketing expenses, not infrastructure), so these mistakes didn’t cost me money. They cost me something more, though. Opportunity.
Because Graphite was, for the most part, a client-side only application, the infrastructure costs were extremely low. I was able to host the entire application on Netlify for free because Graphite is open source. I ended up standing up a database for enterprise customers (that never came) in an effort to solve some of the problems I mentioned earlier about how businesses wanted to use Graphite, but that database never stored enough information to cost much.
One expense I hadn’t accounted for was legal costs. I tried to do Graphite “right”. I got a company attorney early on and made sure that the attorney was well-respected and had some blockchain and cryptography experience. That was not cheap. I only had to use the attorney for a few clerical things and it costs me more than $30,000.
The real costs were marketing costs. They were insane. This is because of my focus on attending events. I traveled to Berlin, London, and Oslo for international conferences. I traveled to San Francisco and New York multiple times. I did virtual events. I paid for the exhibitor space. I got tchotchkes. I even experimented with some paid Twitter ads. I’d say after going full-time on Graphite, marketing expenses made up more than half of my expenses. These marketing costs were huge, coming in somewhere close to $60,000. Many events cost upwards of $10,000 just to exhibit, and then you have to factor in travel expenses. What was left after marketing and other expenses went to paying myself to live.
These expenses were paid for through the grants I mentioned before. At its peak, Graphite was pulling in $20,000 a month in grant money. The design of the grant program was such, though, that after a while money would be allocated to other applications built on the protocol offering the grants. All told, Graphite received about $130,000 in grants.
If I were starting all over, I would have focused on the consumer market. Specifically, I would have leaned into the community that already loved Graphite—the blockchain community. I think there was a business to be had there, but I ignored it. It didn’t help that I started Graphite at a time when I was reading more and more about how consumer-facing businesses couldn’t be successful, and b2b was the only path to revenue.
With the consumer model comes differences in how you build a product. I would have focused entirely on the documents component for Graphite, done more user research, and built based on feedback not gut opinions.
But most importantly, I would have realigned my thoughts around building a business. I didn’t have a business as much as I had an app. I would make the guiding principle behind Graphite getting it from app to business.
Things may not have ended up differently if I did the above, but at least I would have new lessons to learn and apply next time. To me, that’s what this whole experience is—a series of lessons that can be applied going forward. I’ve already applied many of the lessons I learned from Graphite.
My favorite entrepreneurial resources are pretty basic: Books, blogs, and Twitter. I’ll list out a few that I’ve found to be helpful over the years:
Twitter: Just follow interesting people or use search heavily. I tend to use Twitter as my go-to search tool instead of Google. It is quickly becoming the content repository for entrepreneurship.
My site has most of my previous work listed, my fiction, and articles about anything from tech to parenting. I specifically set my site up with a membership feature so that I wouldn’t have to install Google Analytics or any tracking pixels. So don’t be scared away if you come across a post that requires membership. I experimented with paid membership but made sure all my posts are free because, honestly, who am I to be charging for my content?
I’m on Twitter here. I love connecting with other entrepreneurs and people interested in tech, so please don’t hesitate to reach out!
I’m currently contracting, helping other startups both in product development and engineering. I tend to think of myself as a product person who learned how to code to build said products, so that experience makes me versatile. There will likely be another startup for me in the future (SimpleID ran in parallel to Graphite for a number of months, but I have since exited that company), but for now I’m excited to consult and help others.