Allow for Design Manager (Design Tools) to be connect to a GitHub Repo

It would be really cool to be able to use GitHub to push changes to modules and other coded files inside of the DM. There are many agencies that use GitHub for web development outside of the HS Platofrm so being able to have a consistent development process would be beneficial for many.

 

Ideally with this, each portal would be able to connect to one GitHub Repo where the Design Manager would be synced (unless there would be a way to dedicated it to just one folder in the DM though that may be hard).

HubSpot updates
Allow for Design Manager (Design Tools) to be connect to a GitHub RepoHubSpot Product Team
changed to: In Planning
05-16-2019

Thanks for the idea, AJ!

I am moving this to "In Planning", but not because we are working on a GitHub integration specifically. We are actively thinking about and working on how developing on the HubSpot CMS could support any development workflow.

Supporting this platform agnostic workflow would allow for code living in GitHub, writing SASS, using VSCode/their plugins, etc., and any other current or future web development trend.

Un-winding the HubSpot design system to support this is complicated, and we want to get it right (think true file representations of HubSpot objects and their settings). But, we are working on it and will certainly involve the developer community in it's evolution over time once it is ready to be tested to ensure it solves your development workflow needs.

7 Replies
Jon_McLaren Esteemed Contributor | Platinum Partner
Esteemed Contributor | Platinum Partner

This would be huge. An example of how this could work SquareSpace has a direct integration with Github as well.

GitHub itself isn't important to directly integrate with but the ability to integrate with a git repository is. 

This will not only allow devs to use more familiar tools, make working offline feel more familiar to devs. It will also bolster the open source community around HubSpot. One very specific thing that would get a lot of attention and community involvement would be frameworks for building faster/better/higher quality sites on HubSpot. Taking some of the burden off of HubSpot's own developers to come up with solutions to difficult problems and further enabling the community to take those problems on.

To elaborate on the idea at the technical level.

When working with squarespace via git, the master branch is the live website branch. Developers can then work in branches and merge with master to push their changes live.

Example Open Source project that would immediately benefit from this: The CrankShaft HubSpot CMS Framework.
right now to test the framework's code the code has to be manually synced via FTP to a developer portal. This is a pain in the butt, as you have to make sure no one touches the code via the design manager, otherwise syncing those changes back in to the local build, to then send to the repo, is a huge pain, because it may not be clear what changes were made, or why and if you have conflicts between the portal version and local version there's no utility for managing the merge conflict.

 

If HubSpot had a git implementation like proposed the workflow problem is completely solved. Updating a file on the design manager would update the master branch. Locally, you would pull the commits that are on master and continue working.

For CrankShaft one huge benefit would be that it would make it easier to limit access to the developer portal that is used for working on it so only the top contributors have direct access. Everyone else would use Pull Requests to master to make changes to it.

This doesn't just help open source projects though it also helps developers building websites on HubSpot. Say you need a third party to help with a small feature of a site, you could give them git access, and they could make their changes and submit a PR, without affecting the live site until the lead devs on the site get a chance to review it and approve it.

 

 

Another huge area this solves universally for everyone. No more accidentally overwriting each-others code. If the code is all done through git, you aren't going to overwrite each-other and merge conflict tools already exist for git.

HubSpot Product Team
HubSpot Product Team
updated to: In Planning

Thanks for the idea, AJ!

I am moving this to "In Planning", but not because we are working on a GitHub integration specifically. We are actively thinking about and working on how developing on the HubSpot CMS could support any development workflow.

Supporting this platform agnostic workflow would allow for code living in GitHub, writing SASS, using VSCode/their plugins, etc., and any other current or future web development trend.

Un-winding the HubSpot design system to support this is complicated, and we want to get it right (think true file representations of HubSpot objects and their settings). But, we are working on it and will certainly involve the developer community in it's evolution over time once it is ready to be tested to ensure it solves your development workflow needs.

Jon_McLaren Esteemed Contributor | Platinum Partner
Esteemed Contributor | Platinum Partner

Will I can't Kudos your post enough.(or at all for some reason)

That's awesome news, excited.

Jon_McLaren Esteemed Contributor | Platinum Partner
Esteemed Contributor | Platinum Partner

Because it's relevant. This other idea - about making drag n drop templates visible in FTP similar to how custom modules are, would really help in working with version control sysems.

dsosborn
New Contributor

I don't have enough thumbs to up this.  I've frankly been shocked at how difficult HubSpot is to work with from a dev perspective.  It's an otherwise great product, so I'm very excited to hear about these developments.

 

As an ideal model, I would look to what Heroku does... your repo can exist anywhere (GitHub, Bitbucket, locally, whatever).  To deploy, Heroku gives you a separate remote to push to.  You push your master branch to the Heroku remote, and it auto-deploys.  It also lets you set up staging instances, so you can push and deploy to a staging instance, and then once that's approved you can promote that staging instance to production through the Heroku interface (or by pushing to another remote).

 

The other missing piece is the local preview.  We would need to be able to pull the latest code from production, modify that code and preview locally, before commiting those changes into the aforementioned git workflow.  The local preview could really be run through anything, but a command line prompt would be beautiful (similar to the current HUBL local server). The file structure would need to be seamless throughout, so that what you see on your local machine is exactly what you see in production.  This would probably mean, as Jon mentioned above, that some sort of json for the drag & drop templates be exposed.

 

Please keep moving this forward, as this is essential for any dev team to build in HubSpot.

keegan-sbm
Regular Contributor

Glad that this is gaining some traction. Any update on the movement here? Wondering if its going to be worth our time to investigate other options or if we should just wait for something more official from the HS engineering team.

Jon_McLaren Esteemed Contributor | Platinum Partner
Esteemed Contributor | Platinum Partner

If you are in the slack channel, there is a Local Dev Beta that opened up.
https://hubspotdev.slack.com/messages/CLJJXGTC0

It actually makes a lot of this significantly easier.

It is not a true git integration, but better than nothing and a good foundation