HubSpot Developer Account Setup: Don't Skip this Step

George B. Thomas walks through setting up a HubSpot developer account, test account, and two separate Google Cloud projects to build a Creator Console app that pulls YouTube data into HubSpot CRM. He installs Node 22+, npm, HubSpot CLI, and Firebase CLI, then creates a local Git repo and links it to GitHub. App object approval takes about 10 business days, so submit early.
Chapters
Hey, if you're interested in HubSpot app development, this series is going to show you the whole shebang. We're using Creator Console. It's a real HubSpot app that I built that pulls in YouTube data into the CRM so marketers can run their entire YouTube channel from within HubSpot. Along the way, we'll model the data with app objects, build an app home, app cards, wire up settings, OAuth, background sync. Then we're going to add some analytics, workflow automations, app events, and an AI planning flow. There's a whole heck of a lot going on here, folks, so buckle up. Now, this video is all about the setup. The reason we're starting here is simple. Nothing works if the foundation is wrong. Wrong account, wrong Google Cloud project, wrong CLI setup, and suddenly you're debugging your environment instead of building the app. By the end of this setup, you'll have a HubSpot developer account, your developer test account, your dev and prod Google Cloud projects, a whole bunch of CLIs, including the HubSpot CLI, Firebase CLI, and GitHub CLI. And last but not least, a repo connected to GitHub ready for the rest of the build. To get this started, let's go ahead and go over to developers.hubspot.com. Click on Create a Developer Account and go through that process to set up the account if you do not already have HubSpot account set up. I've got one set up, so I'm going to skip that step and head over to my developer account. You'll see here that down at the very bottom there's something called Development. I'm going to click on that. This is where we're going to do all the stuff within HubSpot. We're going to look specifically at testing right now and go to the test accounts in here. This is where we're going to create our test accounts. I'm going to create a new one, give it a memorable name. We're going to only create one account for now, but if you wanted to create multiple, I would suggest clicking on this, creating several of just different tiers. That way you can test all kinds of different, you know, flavors of an account. Click create. Wadda bing, wadda bam. Boom. We've got ourselves a test account. The ID is right there. Keep that in mind for later on. Let's go ahead and move on over to the Google Cloud console. console.cloud.google.com. All right, let's go to our dashboard and I'm gonna create two projects. One is gonna be demo-cc. --dev. You will have to fill all this in with all your information. I'm going to click create, and while it's happening, I'm going to create a second project. This one's going to be demo-cc-prod. You'll notice that there is a project ID that's been generated here for each one of them. You can't edit that now. You will need this for later on, so keep this in mind. Hit create. Now we've got two Google Cloud projects set up and ready to go. Now the reason we do this by creating two different accounts is pretty simple actually. We're trying to separate data, separate credentials, quotas, and just make a much safer path to production later on. Okay, now that we have all that set up, let's go over to our terminal. I'm actually using the terminal that's available in VS Code. You use whatever, you know, makes you happy. If I click Ctrl+ tilt on this, it'll bring up my terminal window. There's also an option up here for it. And what we're going to do is just check to make sure that we have Node version 22 or higher installed. So I'm going to click node -v, and I do have 22. If you do not have Node installed, I will have a link to that in the description to show you how to walk through that. It's pretty simple, just click on a couple things and you're good to go. It's also going to install npm, which is Node Package Manager. That is what we're gonna use to install some of our CLIs. I have 10.9 installed. You just go ahead and verify that you have that as well. And once you have those two things verified, let's go ahead and install our CLIs starting with the HubSpot CLI. To install that, you're gonna type in— let's just bring this up a little bigger. npm install -g. -g stands for global @hubspot/cli. Now it's going to go through the entire install process. I already have it installed, and to verify that, I'm going to type in hs --version, and I have it installed. Next up, we're going to do the Firebase tools. So what we're going to do is type in npm install, again, -g, and then Firebase-tools. That's going to go through that whole process once again. I have installed, and just to verify, I'll type in firebase --version, and we're good to go. Next up, we are going to work on the GitHub CLI. This I use, uh, Brew, Homebrew, to install. If you do not have Homebrew, I'll also have a link to that. It's a lovely little thing for Mac, uh, to install the GitHub CLI on Windows, I think it's Winget that you'll be using. I'll put instructions down in the description as well for all of that. So it'd be brew install gh for GitHub, go through that whole process. Once again, I've got this installed, so I'm just going to verify the version. Cool, we are good there. Now we have that installed, we have everything installed. What we need to do now is actually set up a folder that we're going to store all our files in. So I'm going to go up here I'm going to open folder. I'm going to go into a directory. You choose wherever you want to go to. I'm going to do demo-cc-app. Create. Open. Cool. We have a new window open and I'm going to close all this back down and we should be in that directory once this loads. There we go. Cool. Now we are going to initialize this with as a Git repo. Simply in the command line, we'll go git init and we have our Git repo initialized. To get this going a little bit better, we're going to add a README file. So README.md and we'll just title it, you know, Creator console. Save. All right, now if you go down here and git status, you'll see that we have an untracked file, the README, and it gives you a little hint on how to add that. So let's go with that through that process real quickly. git add. Now I could add the file name readme.md, or I can just click dot or period to just add any untracked files, which I'll do right now. Now we're going to commit that. Git commit -m for message in quotes. We're gonna say initial commit. Close and let's get a status again. We are committed and ready to go. In the future, we don't need to use the terminal for all these things. There is actually a pretty simple way of going up here and, you know, generating it through the IDE. It's very quick, very good. And this whole magical AI thing that does your messaging for you, brilliant, love it. But just, I think it's very handy just to have a little understanding of how to do things in the terminal. Now we actually need to connect this to GitHub. Now we have a repo, but GitHub has no idea what's going on. You might have to go through a whole authorization type thing if you've never set up GitHub before. So make sure you have a GitHub account, you will run a few commands here. So you go through gh auth login, that's going to bring up a window to log in to that GitHub account that you own. And you can do a gh auth status after that to confirm everything's up there. Next up, let's go ahead and attach that. We're going to create a remote location for this. gh repo create. I don't need— usually here you put a name in, but because we're actually in the directory, we do not need to do that. So this is going to take that demo-cc-app for that right now. I want this to be private, so flag private, and I want to push this. Oh, we need a source, --source equals.and push. Cool. Looks like we have a GitHub repo attached to this. Now you can see here, if I was actually just going to click on that, should bring up our repo. Amazing. And now for the part that can quietly delay your whole app: the app object approval. We're not submitting the form in this video, but you can— you need to know right now that the approval can take around 10 business days and sometimes longer. That means if you wait until you need it, you've already lost time. Later in the series, once the app's IDs exist, we'll prepare the ERD, the schema spreadsheet, and the rest of the approval form. Don't worry, we'll go through it. The strategy is simple: Get your environment ready now, submit as soon as the required IDs exist, and let the approval clock run while you keep building. Now, before we move on, let's save future you. We've already created a bunch of information that, well, guess what? You're going to forget it. Your test account name, your Google Cloud project names and IDs, your GitHub repo URL. You know what? Let's create a system dependencies file. Paste in the starter template, which I will make sure you have a link to in this repo for you to copy the template. Just make sure to look for episode 1 branch and I'll I'll explain more about that in a few minutes. We're gonna create a new folder called docs, and within that we're gonna make a file called system_dependencies.md. Alright, from here we're gonna copy and paste this, which is gonna include all kinds of things in a markdown format, which will make more sense, uh, in as you add it. I'm going to actually change the name of this to assistant_dependencies_template so you can use that. The reason I made this template is because, well, I'm going to duplicate it to make my own dependencies.md and make sure it goes in the right spot. All right. You'll see in this that we have all kinds of information that you don't necessarily want to have on your GitHub repo for others to see. So we are going to copy all this, we're going to put it in here and save that. And then before we do anything else, we're also going to create an ignore file. So.gitignore. What this ignore file does is anything that we put in here that we do not want to track and push up to the cloud will not be pushed. Okay, in that.gitignore file, I'm going to copy and paste, uh, something I've already created a long time ago just as a starting place. This has all kinds of things that, uh, you would want to just not abstract that are just going to, you know, waste space or might have some secrets in it. And if I go right over here, I can do this and right-click on it, and I can add it to.gitignore. And you'll see no longer is it showing up in the changes that are ready to be committed. And if I go to my.gitignore file and do a search for system dependencies, it shows it right here. All right, let's go ahead and commit this. Committed. Okay, we're in a pretty darn good starting spot here. What I'm going to do now is I want to create a new branch. So create branch, and we're going to call this episode 1. We are on now on that branch. I want to merge in what we were just working on. Branch merge. And we see we have stuff here we're going to bring on over and we are going to publish this branch. Once it's published, we can go back on over to our repo. All right, and we are going to go here and you'll see we have— so when you're looking to find those templates, let's just go over to episode 1, and then you can go into the docs and you can see the system template dependencies template as well as that.gitignore file. All the things. At this point, you should have the right HubSpot accounts, 2 Google Cloud projects, all 3 CLIs installed, GitHub authenticated, a local repo cloned, the system dependencies file created and committed, and your first push. Next, we're gonna go more into Git branching, create the rest of the governance files, and lock in the rules to make AI system development actually sustainable. Now, if you're building your own version alongside this series, uh, please drop what you're doing in the comments. I, I, I, I wanna see what you're building. I'm very curious. And if you have any questions along the way, something's not explained properly, please also drop 'em in there and I'll be paying attention to make sure I answer all those things. Until the next video, uh, talk to you soon. Bye-bye.










