Last week Pakk reached a major milestone. Of course there have been many others: our alpha launch, our first live customer site, their first order etc. This one, however, was really big, both on a personal and professional level. This is the story of how that milestone was reached and what it represents — right from the very beginning. It’s a reflection on the past and future, on business and entrepreneurship, on technology, software and web development, on commerce and e-commerce. Mostly though, it’s about life: my life, our lives and life in general.
Pakk is a prototypical “scratch your own itch” product: something that I wanted that didn’t exist, so I decided to build it myself. In 2005, Jessi and I had started a food import and distribution business in the UK — a hybrid B2B and B2C importer, wholesaler and retailer — a complex business in a small package. Back then e-commerce was in its infancy and there were few good options for starting an online store; today’s behemoths like Shopify hadn’t arrived on the scene yet and we couldn’t afford custom development. So we started off with a simple site with some simple PayPal “Buy Buttons”, progressed though a platform called “Mel’s Commerce” (nod if you remember that) and finally, sometime around 2007 made a huge leap of faith and wallet and dove head into Netsuite. Netsuite wasn’t yet the mega company that it is now is and accounts could still be had for a realistic monthly fee. I’m not saying we could really afford it, but we could stretch to it in anticipation that it would help us grow, which it did. Netsuite, and the “single cloud platform” concept that underpins it, is a work of genius.
Looking back though, it’s hard to say whether Netsuite was the best or worst decision we ever made for the company. Sincerely, there were no other contenders anyway, so it’s a moot point. Our company wasn’t (and isn’t) one of those “pure play” e-commerce businesses — the kind Shopify excels in. We were (and still are) a “real” commerce business, with a complex web of suppliers, trade customers, private customers and stock flowing in and out at a fast pace. We needed a business platform, not a website. Yes, Sage or Quickbooks could do all the backoffice stuff — accounts, stock etc, but back then they were purely desktop applications and certainly couldn’t generate a website, or even integrate with one. So it was either Netsuite or a complex, do-it-yourself web of yanky integrations. If that story sounds familiar to you, it’s because not much has really changed in 15 years of absurdly fast tech progress — something that always strikes me as odd given the vast sums of money sloshing around in this industry (although after having built Pakk I perhaps understand why a lot better).
Well, one thing for sure has changed: Netsuite became a Fortune 500 company, was acquired by Oracle and repositioned itself as purely “enterprise”. The word “Enterprise” in software is like the word “Private” in banking — it’s code for “if you need to ask the price, you can’t afford it”. So, whilst Netsuite, in the early years at least, was able to help us grow and organise ourselves like a “real” company, it soon became a noose around our neck. We couldn’t afford the new web module when it came out, so we were stuck with the same obsolete website for the 10 years. We patched it and prettied it up every few years, but we were fighting a losing battle against the break neck speed of internet and web development as the world moved from desktops to tablets to smartphones. We watched from the sidelines as e-commerce went from 0% mobile to 80% mobile in the space of 10 years. We were dying a slow, technological death.
So, “leave” you say. And we tried. Every year I’d take a scan through the options (WooCommerce + yanky integrations, Magento, Odoo, and so on) and cross them off the list for one reason or another until the last remaining option, stay with Netsuite and patch up the current site, was the last one left. That went on way longer than it should have and I only have myself to blame for that. I’m a purist, or a minimalist, in lots of ways and I just couldn’t kick my addiction to the “one cloud platform that does everything” model to which I had become completely addicted. I often talk to e-commerce people who express complete satisfaction with their ZenCart + Zapier + QuickBooks + Helpscout + 9 others apps solution, but can never help thinking it’s because they’ve never felt the sweet embrace of Netsuite.
A company is more than the tech it’s built on — but every year that goes by that statement becomes less and less true. How many businesses are built directly on top of Google, Amazon, Shopify, Facebook? What happens when one of them goes up in smoke? If you don’t keep up, you’ll eventually get eaten alive — you need to understand that. Somewhere out there someone is brewing a technological solution that is going to make what you do redundant, or clunky at best. Don’t obsess over it, but keep up.
In 2015, 10 years after starting the food company, I made a totally irrational decision. I couldn’t make peace with the fact that there was no “Netsuite for small businesses”, so I decided I would build it. The thing is though, I’m a crappy entrepreneur — I don’t know how to write a business plan, get investment and hire developers. The only thing I’m really good at is learning new things, so I decided I would learn to code and build it myself.
Now I really hope some of you are software developers and that you’re falling out of your chairs laughing right now, I really do, because I’m right with you. Perhaps you alone have enough insight to understand how completely and utterly absurd that decision was. Netsuite, for reference, was founded in 1998, so had almost 20 years on me, as well as about 4000 experienced engineers on their payroll.
Oh by the way, I also knew nothing about software development.
I’d done some scripting in my student days, could hack on a bit of HTML and CSS and had written some buggy scripts in our Netsuite account. I knew what a variable was, maybe a loop, but probably not a function. Level 2 or 3 out of 100.
So this is where the slightly cheesy “man triumphs against adversity” story starts. It might make you vomit but I’m going to tell it anyway, because there are some useful conclusions to be drawn from it, for both of us hopefully. It might inspire you, but more importantly, it might also help you avoid making some of the same mistakes I did.
I’ll fast forward through the first 18 months rapidly. I studied my arse off and learnt to code. I tried to understand how the web worked and where to place myself in a field that was evolving at blinding speed. I picked the MEAN stack almost at random, quickly gave up on Node, Googled “how not to write code that crashes constantly”, found Golang (even though I thought “strongly typed” was something to do with how hard you hit the keys), gave up on Angular in favour of Polymer and slowly created about 10 totally crap prototypes with names like “XCommerce” and “EcoSystem”.
There are already a couple of lessons in this: both objective and subjective. One thing that is indisputable is that the web, YouTube in particular, has democratised access to knowledge in a way that has just flipped “learning” totally on its head. I remember recently watching a video in which a carpenter, noting the same effect, commented that for the last 50 years, unless your dad was a carpenter your only resources to learn how to make stuff from wood were a few well-thumbed copies of “Wood Magazine” you might find in your local library, if you were lucky. The world we live in today is so far removed from that set up that it almost brings tears to me eyes. I’m from a generation that still remembers libraries; I highly doubt that todays upcoming generations will remember them or have cause to even wonder why they might have been necessary. Today, knowledge is immediately and universally available to practically everyone. To me this is the single most important development of my lifetime. I couldn’t have done what I did without Youtube, full stop. Please don’t be afraid to learn new things — we have it so easy we don’t know we’re born.
Now the subjective bit. Was what I decided to do actually a good idea? To be totally frank — definitely not. Software development is hard, really hard. Coding is only a small part of it. The web is also complex, like really complex. Learning how to code a simple page, or even app, is only a small part of it. There are literally a million things you need to know as full stack web developer, and the list gets bigger and more complex every year. If you have a great business idea that requires software, just be an entrepreneur and get someone else to build it while you build the business. Even if you are already a seasoned developer, I’d probably still give the same advice. Software development and business development are totally different paths, and whilst not impossible, doing both is generally not advisable. Partner up if necessary, find a technical cofounder. I strongly, strongly advise you not to waste 5 years of your life trying to become an even semi competent full stack developer. If you insist, pick a very niche project that is much more limited in scope that “one platform that does everything”. Honestly, sometimes I surprise even myself at how stupid I can be.
But hey, this is a “do as I say, not as I do” kind of story, so that’s not the way it went. I stumbled around for almost 2 years, then ended up getting involved in a totally unrelated startup which zapped up another 18 months before eventually tanking. Two massive things came out of that: I got the experience of building a large, complex, licensed platform from scratch, and I met Allan.
Allan was a frontend developer we hired to work on the app for the startup. I was developing a deep love for functional programming and had fallen in love with a newish language called Elm. In the really early days of Elm, you could hire shit hot programmers for a fifth of the salary they’d normally require, just because they wanted to work with Elm. That’s what happened with Allan.
By the time the startup was winding down and I was thinking about getting back to “BongoCommerce” or whatever I was calling it at that stage, I already knew I wanted to use Elm and that I wanted Allan to help me. Somehow, I convinced him to become my business partner. He would write the frontend apps while I concentrated on the backend. Meanwhile, the food import company was ticking along OK and I convinced my partner from that business, Jessi, to join as a sort of “product manager” — bringing her deep knowledge of e-commerce and ERP workflows. As a bonus, she also committed to learning CSS and doing all the design and UX/UI.
Another diversion for some armchair moralising — two more lessons to be precise. First, IMHO and for the web noobs out there, my advice is to focus on either frontend or backend. The field of web development is HUGE now. Being a truly good full-stack developer is probably a pipe dream for most. I still do consider myself a full-stacker, but its been ages since I’ve written any frontend code, and in the meantime I feel I’ve actually been able to become at least a little competent at writing server side code. Just my take, of course. Secondly, I’m telling you with 100% certainty that without Allan and Jessi I would have failed. Although we have found ways to make the monstrous a little more manageable, it still would have been way, way too much for me alone. So my advice, again, is to find someone. Just one person. Maybe two. Maybe three. But at least one person. Someone who complements your skillset and with whom you’d be happy to go into battle with. If you’re about to tackle a major, major project, 1 + 1 (or 2) is not 2 (or 3), it’s a 100, maybe even 1000. Honestly, this isn’t anything new — gurus and mentors have been saying the same for decades. Heed their advice.
Like all new solutions to old problems, Pakk is innovative. Perhaps a product of my purist tendencies, I came up with an architecture that would allow us to built a truckload of functionality with the least possible input. Close colleagues told me that it was unlikely to work because e-commerce sites and platforms need to be massively customisable in order to be able to fit every possible customer profile. But my time with Netsuite had shown me that deep customisation is the Achilles heel of big systems and I knew that our small, guerrilla team wouldn’t be able to build anything like that, so we set out to build something completely different: a platform built on the concept of “configurable, not customisable”. If you know only one thing about Pakk, let that be it. We set to work in earnest in the summer of 2019 and started churning out code at speed.
By the latter part of 2020 we actually had something useable and stable enough for an Alpha launch. It lacked a lot of functionality but could host a website and just about take an order. We started dogfooding and moved the pakk.io site onto Pakk itself, built some demo stores and eventually, before Christmas, launched our first customer — HotCable, a music store in Madrid. As 2021 progressed, we recognised that the new reality that faced us all would make Pakk more relevant than ever so doubled down our efforts, added lots of features and stability enhancements and pushed new releases relentlessly and on a weekly basis.
And so it came to be that on Thursday 29th April 2021 we finally migrated our food import company from Netsuite onto Pakk at about 6pm in the afternoon. The Pakk team and the Tapas Lunch Company team Zoomed as I tried to make the act of resetting name servers feel as symbolic as possible and they drum rolled on their desks. About an hour after hitting the button, the new site started showing in browsers and about an hour after the first order rolled in. Bugs surfaced, we fixed them. Rinse. Repeat. We worked through Saturday and Sunday and then Bank Holiday Monday, and by the time Tuesday came around and they reopened, The Tapas Lunch Company had taken almost 200 orders through Pakk. There were even a few emails from long-time customers congratulating them on the speedy, efficient new sites.
That was THE milestone. There are many more to come, I’m sure, but nothing will ever be as important to me as this one.
If you can forgive me just one more cheesy moralising cliche then here it comes. If you have big, impossible ambitions, go after them, but be clever about the way you do it. Don’t be a hero and don’t be a fool. DO listen to people who tell you that you probably won’t succeed, but don’t take it literally: probability is afraid of outliers.
Use the incredible resources that the modern world gives you almost for free and let people into your heart and mind to help you. Be true to your vision, do your homework rigorously then do it YOUR way — don’t get sidetracked by what other people want and/or think you should do. This is your contribution, so own it. Understand that a single person, or small team, can produce something really, really big, but only with a new approach or a step-change in thinking. Don’t be tempted by the safe, same-old-same-old that’s already been done, it produces the same results in the end. Think big, but most of all, Think Different.