Oh the joy of project estimation. A year in and I’m not sure how much closer am I am to answering this one with any great confidence.
Here are some of my thoughts as I see how fast I can build an app to manage metafields in BigCommerce.
Transcript
One of the really fun questions I get asked is how long does it take to build an app? And if you’d asked me 12 months ago, I certainly wouldn’t have, I wouldn’t have thought that after 12 months, I would have only lauched two apps. There’s so much learning along the way. With Automated Categories I might have had like the first version of a category rule within a couple of weeks, but there was just so much learning around how to run background processes.
So the first app had to go through all products and find a way that on all different BigCommerce plan sizes, I could paginate and make those queries and go through a product catalog. I’m used to, from a Magento perspective, being able to do that, you know, all kind of Magento side, whereas this is kind of consuming an API and we can treat you’ve got jobs you can cope with it.
And then, you know, not even getting onto actually building the SaaS side of it, making sure we’ve got subscriptions working, making sure we’re kind of putting everything on the invoice that we, we want. Making sure that the finance team are happy with everything. So that was a surprise. Then moving on to visual merchandiser and the category merchandiser app, there was, it was a brand new API,, I was part of the beta process.
So obviously that took an additional refinement piece going through all the bugs. And so going into 2022, I’ve been asked a question how long does it take to build an app? And what’s like, should our goals be for, for this year? I think with everyone, you know, I still don’t know the answer, for everyone I get a better idea and I think the first few apps of this year, and I hope it is apps, you know, within the first few months of this year we’ll be able to put some of that to the test because there was so much like in the first app everything was a first. In the second app, even that there was a first in the sense it was the first second app.
And so making sure our Stripe billing could cope with having two different products and each app itself could cope with learning about your subscriptions to other apps. So now kind of fast forward to the new year, I’ve decided to pick on another, like really small app that I saw kind of mentioned in the BigCommerce communities the developer space. An app that is mostly surfacing again, an API, but is available around metafields. The metafields are key-value stores on categories, products, variants and brands and orders.
But they’re mainly developer tools but you can surface them in admin and you can make the, the values available in your stencil theme. So could actually be quite powerful to add additional content, having essentially sort of custom attributes to your categories, for example, to be able to switch things on and off in your, in your theme.
That seems really interesting. Fairly lightweight from an app perspective, because it’s mostly kind of UI to an API that already exists. And so the first step for me was copying essentially a previous applied built, knowing that it has all the foundation there ripping out all the apps, specific content or expert app specific code, and then creating the stuff that’s important for this app. And I’ll probably switch screens so you can at least see what I’m talking about. So this app shows you the different metafield types. You can go and find your categories or here is my Swag category. And then I’ve got my list of metafields. Each metafield has a namespace, key and the content. This could, this could be just like: one, zero, it could be: yes, no, it could be kind of be JSON, like where you could store, like stock locations and stock levels for each variant in each like store that you have, or it could just be WYSIWYG content. I know you’ve page builder out there, but you know, this particularly if we get to the point where we get import export kind of nailed, then that could be very useful, for importing sort of just static content to two different categories.
And then that took, I think about two weeks from like essentially start to finish with the first version of the app that I could then submit the app store. All of that content takes a bit of time building out the marketplace profile, building documentation on HelpScout. There’s always a few days for I’ve finally written a test plan and all the nuances where this UX is a bit buggy and kind of, there’s always things you want to iron out to kind of get a a gold plated version without necessarily being gold-plated in terms of features.
So, yeah, I guess we’re at now like three weeks in. So two weeks in, I actually submitted it. It’s kind of waiting for a review. I’ve taken another week almost to the tidy things up to document it. Create some of the marketing around it, do videos like this, get feedback from people. So yeah, I think like right now, it seems two or three weeks is what it would take to pull out the smallest app, which was mainly UI focussed. Appreciate there was quite a few different UI screens for different entities and making sure I had, you know, categories list, products list, variants list. But that seems like a foundational level. So I feel like more confident now that how long does it take us to build an app? Well, at the very least three weeks. you’re kind of starting from scratch and the more and more I build, the more I have reusable. So there’s some parts here, like the category tree that I was able to copy and paste from another app, there’s like the foundation that is copy-and-paste-able. And then there’s components. Whether that be kind of for me PHP components classes that I can copy and paste and approaches that I can copy and paste. Reusable knowledge, as well as reusable code. And then actual react components that I can copy and paste between them as I build, build up of knowledge around, you know, an app that manages categories, an app that manages orders. So yeah, it’s, it’s, it’s, it’s been, it’s been a bit busy three weeks and hopefully it will be coming to a marketplace near use soon.