I wanted to share a quick break down of the technologies & products/services that I’ve chosen for the Automated Categories App for #BigCommerce.
I wanted to choose tech that:
⏩ I knew well, so I could move quickly. Then each time I create a new app I can choose where I want to experiment & learn.
💅 Would enable me to create a great user experience.
🛠 Would be low maintenance, i.e. SaaS over PaaS over IaaS.
So we have:
- PHP & Laravel
- React & BigDesign
- Heroku
- BitBucket inc Pipelines
- Forest Admin
- Postman & ngrok.
Transcript
PHP is dead, right?
Well, today, I am very close to launching my first BigCommerce app and I wanted to do just a break down of the tech stack that I’ve chosen to use. PHP is what I am most familiar with. I’ve gone through sort of a decade of working in Magento. And so PHP is what’s created my living and what I know really well.
And so getting this started I wanted to hit the ground running. I didn’t want to learn new technologies. And so kind of the other obvious candidate from a kind of language point of view would have been JavaScript and a node JS, particularly that’s where all the cool kids hang out, but I know my place.
And so for getting up and running quickly particularly while, I might take this opportunity to learn new tools, but I wanted to kind of go through kind of my choices. So PHP is the first one.
And then the obvious tool for that space, key frameworks: Laravel vs Symfony. I really like Laravel from a convention-based approach.
I’m not needing to build a huge platform here. I don’t need loads of configuration. So Laravel just makes an awful lot of sense. Again, a tool that I’m familiar with, and I think that’s shouldn’t be underestimated, tools that you’re familiar with. Boring tech works really well.
So that’s kind of what I’ve gone for from the actual sort of fundamentals. Then from the frontend perspective I did want to create a great user experience. And so this is my first project using React. I mentioned in a previous video about using the BigDesign component library so that my app actually looks and feels like BigCommerce as well.
So that’s been kind of a key development there. From a, you know, we use BitBucket from a code repository point of view. And I’ve also used that and the pipeline feature for automated testing and just kind of running unit tests and then actually deploying it. In terms deployments, I am using Heroku. Going through that sort of decision process, got a little bit excited about Laravel’s Vapor and using sort of serverless PHP but went back to boring. I know Heroku really well. It’s really reliable. And from a technology choice perspective, I don’t want to spend time managing infrastructure. Particularly when I’m the only person working full time on this right now I need for as many areas of this part of the business as possible, for things to be sort of really outsourced and low maintenance and particularly from a DevOpsops point of view this area could run away with me.
And so I wanted to again, stay with what I know but also choosing a PaaS. So it’s very quick to get up and running. Very user-friendly, so yeah, kudos to Heroku, has been around for a long time, but continues to be a really good, really good.
Other tools people will be familiar probably with Postman. So validating my theses around how APIs work before we actually start implementing, Postman was a no brainer for testing those APIs. Similarly for Webhooks. So listening to updates for products and orders and things like that in BigCommerce. I want my code to be publicly accessible so I can test all of that sort of functionality. Ngrok again, is a no brainer in that space, enabling you to get all of that for that feature.
It also allows you to replay requests. So if you have a request come in and you don’t need to go through editing a product again to get it to replay, you can do your bug fix, hit replay, and then it will replay the same request again. So you can quickly retest your code which is really pretty good.
Then from considering how do we access my data in production
So when I’ve got my Heroku apps and I’ve got my Postgres database, but how do I manage that from a super admin point of view. I don’t want to build an admin interface just for myself and a couple of other people that help out with managing it once this goes live. And so I’ve come across ForestAdmin by recommendation.
And so I wanted to do it to try this out again. This is my first time I’ve used this, but I didn’t have any alternatives to turn to. But this allows you to essentially view your database. The paid plans then allow you to set up smart actions for automating tasks you might do regularly. But in the short term, it’s just, you can kind of almost see it as a friendly database viewer rather than having to work in some of the other tools that aren’t so pretty and liable to make mistakes.
So this was really great, great view for that.
And that’s all I wanted to go through, for this time around. I’m going to use the same stack for my second app. But now I’m also looking, working with a team to build out an app skeleton on a node JS, TypeScript and, what else, anything else, Google cloud is probably the other one that I’m then sort of struggling with from the, again, that decision process right now, as I mentioned earlier. Google Cloud is a tool that other people on the team are familiar with.
But I really want to make sure that we choose a Platform-as-a-Service product. So whether that be AppEngine on the Google side or continue with Heroku and host our node apps on Heroku, just so that we have consistency, I think is going to be important from a support point of view, as much as possible.
But again, Heroku is really easy to use. And most cloud tools, whether it was AWS cloud, Google cloud, or Azure, they all seem to, you know, they’re all a bit clunky and a bit obtuse on first use and you need a bit of time to get up to speed on them. So really want to favour developer experience going through this.
So yeah, that’s my tech stack. PHP and proud, as the video title says.