In response to community requests, GitLab has launched a new service that gives developers the ability to host static web pages for free, called GitLab Pages, community edition (CE).
The enterprise version has been available for about a year, said Job van der Voort, Vice President of Product at GitLab, speaking on the phone from Lisbon, Portugal. Six months ago he announced the decision to not extend Pages in the community form. He closed the issue but kept the thread open.
Several commenters, mostly small businesses on shoestring budgets that love the GitLab environment, asked for a community edition or at least a more affordable small business option, he said. A month ago, van der Voort returned to the forum and reversed the decision.
was one of the many community members who asked GitLab to reconsider. “Consider the use cases for a repository-integrated static site,” he wrote, enumerating on a few:
- Hosting project documentation. This would be incredibly useful for us, as we use a [static site generator] (Slate) to create much nicer documentation for our public REST API.
- Presentations & Installation Instructions.
- Public list of software builds/nightlies? Distributing binaries?
What we didn’t expect, said van der Voort, was that people started using it for functions that GitLab had not considered, like publishing documentation or test results.
This represents a shift in the landscape of how websites are deployed and used, he explained. Currently, most websites built on content management systems (CMSes). People have been wanting to move to static web pages, but traditionally it’s been very technically difficult hard to get a page up and running, partially because there is no standardized way to do it.
“It has been very engineering heavy. Going from 0 to 1 has been very, very hard,” said van der Voort. And it will get easier with time, he said, as the community starts using the product and adds their own code.
Instead of deploying a CMS, users can deploy any static website generator of their choosing, such as Jekyll, Hugo or Hexo. Unlike dynamic web pages built in CMS, static web pages have no database in the background. The content is static, said van der Voort, so the information is all there is. The only way to change the content is to rebuild the website. “You generate the website as a single image and any changes you want to make, you need to rebuild the website,” he said.
One of the reasons that people are looking to static web pages is the lack of caching makes it really fast, up to a factor of six, according to van der Voort. The only action is the HTML needs to be served. This removes most all the need for caching.
The other main reason, said van der Voort, is security. When they are not updated regularly, CMS-driven websites are vulnerable to security attacks, especially if the core CMS engine can be exposed over the web. With a static website, the only thing on the server is the static content: So even if someone gains direct access to your website, they can only change the contents to specific web pages. You just need to run the generator software, typically run off-line, to reload the original page.
From an end-user perspective there is no difference between interacting with a dynamic or static web page, van der Voort explained. In particular for marketing, documentation websites are moving to static websites. There are a lot of customer-facing static websites he said, citing Vox Media as an example.
For the creator of the content, the only difference is that they create in GitLab and push the changes to the repository instead of updating CMS. GitLab gives the community tools to make this easy.
GitLab Pages uses tools already familiar to the GitLab continuous integration (CI) community, including all the collaboration features. The static site is just another repository. Instead of creating a test or whatever, said van der Voort, they create a static website.
“We just made the whole process easier.”
Each account gets 10GB disk space per project, 1GB per Pages artifacts, and unlimited total disk space. Get detailed instructions on how to launch your own static web page through GitLab here.