{"action":"created","comment":{"url":"https://api.github.com/repos/AusDTO/dta-website/pulls/comments/126065419","pull_request_review_id":48515375,"id":126065419,"diff_hunk":"@@ -0,0 +1,100 @@\n+---\n+title: \"The tech behind dta.gov.au\"\n+category: [blog]\n+tag: 'technology'\n+author: Brendan Gordon\n+author-excerpt: \"Brendan Gordon is a Developer at the Digital Transformation Agency.\"\n+thumbnail: /images/blog-thumbnails/Blog-Thumb-DTA-website.png\n+hero-image: /images/blog-content/Blog-Hero-DTA-website.png\n+searchexcerpt: \"The DTA website is an important part of our online presence. But as a small agency we have found our needs can be met with a simple static site. In this blog post we share our approach to development and the technology behind the DTA website.\"\n+---\n+\n+![An illustration of a pony with a rainbow coloured mane.]({{ site.url }}{{ site.baseurl }}{{ page.hero-image }})\n+\n+*Caption: 'I want a pony' – a demonstration of a want, not a need.*\n+\n+The technical needs for our [website](https://www.dta.gov.au/) are relatively simple. We took a minimum viable product (MVP) approach to development – creating a simple static site – with a view that we would iterate and evolve the website as the DTA grows.\n+\n+Our site needs to be able to:\n+- allow publishing of simple, informative content\n+- support less than ten page templates\n+- allow previewing of changes on the site before they go live\n+- handle less than 1000 pages\n+\n+We’ve found that a simple static site meets our needs for the moment and is cheap, fast, secure, and easy to work with.\n+\n+WARNING: it’s about to get technical \n+\n+## The tech behind the site \n+\n+The DTA website is built with [Jekyll](https://jekyllrb.com/) — an open source static website generator. The site content is mostly written in [markdown](https://en.wikipedia.org/wiki/Markdown). Jekyll only runs whenever the content changes, and it generates a set of HTML, CSS and JavaScript files. These files are easily hosted on a basic web server.\n+\n+We have found this simple tech approach to be very cheap compared to the alternatives, but is still powerful enough to suit our publishing needs.\n+\n+## Using the UI-Kit \n+\n+The DTA website is styled using the [UI-Kit](https://github.com/AusDTO/gov-au-ui-kit) and the [DTA Design Guide](http://guides.service.gov.au/design-guide/). \n+\n+The UI-Kit is a whole-of-government toolkit being created by the DTA to provide government with a set of accessible web components to use on their websites. Agencies can use it instead of creating custom designs and styles for their sites — the intention is to create more consistency across government sites. It is designed to meet high accessibility standards required for the [Digital Service Standard](https://www.dta.gov.au/standard/). \n+\n+We still sometimes need to write our own CSS, but the UI-Kit gives us an easy to use starting point\n+\n+## Publishing content \n+\n+For our MVP static site we do not have a content management system (CMS). The website source files are stored on [GitHub](https://github.com/), a code hosting platform with powerful collaboration tools used across all DTA delivery teams. Our publishers work in [Markdown](https://daringfireball.net/projects/markdown/), using the GitHub web interface.\n+\n+We use a [public repository on GitHub](https://github.com/AusDTO/dta-website) and our publishing workflow is based around [branches](https://www.atlassian.com/git/tutorials/using-branches). This allows us to track all changes made to the site, and the use of branches helps us to isolate and preview changes before they are published. \n+\n+This is how it works:\n+- Most changes and additions to the site start as a new branch.\n+- Every change is immediately tested using Circle CI.\n+- If there is a problem, a notification is sent so that it can be fixed.\n+- A pull request (PR) is created, reviewed and then merged to the ‘develop’ branch.\n+- Changes are deployed to the staging site for sign-off.\n+- Changes are then merged with the ‘master’ branch which triggers a deployment to the live site. \n+\n+Each part of the deployment happens automatically whenever the ‘develop’ or ‘master’ branch is updated. This speeds up and simplifies the release process for content publishers. The repository contents are the single source of truth, and the staging site is an exact copy of what will go to the live site.\n+\n+Our website is a Commonwealth record and needs to be managed in accordance with the Archives Act 1983 and the [National Archives of Australia guidance](http://www.naa.gov.au/Images/archweb_guide_tcm16-47165.pdf). Since every change to the site is tracked in version control, we can easily meet this requirement by going back and rebuilding the site as it was at any point in time.\n+\n+## Hosting our site — cloud.gov.au\n+\n+The DTA website is hosted on [cloud.gov.au](https://www.dta.gov.au/what-we-do/platforms/cloud/) – the platform the DTA is developing to make it easier for government to build digital services. Cloud.gov.au saves time and effort by managing infrastructure, so a team can focus on building the service.\n+\n+Cloud.gov.au has an API which allows deployments to be entirely automated. We specify the [static build pack](http://docs.cloudfoundry.org/buildpacks/staticfile/index.html) in our [manifest file](https://github.com/AusDTO/dta-website/blob/develop/manifest-production.yml), and the platform takes care of provisioning a server and inserting the built website files. This means our exposure to security attacks is minimised, and we do not have to spend time regularly applying platform updates.\n+\n+We use [Cloudfront](https://github.com/AusDTO/dta-website/blob/develop/manifest-production.yml) as our content delivery network, and requests are routed to a HTTPS termination layer on cloud.gov.au before being forwarded to our web server.","path":"_posts/2017-07-07-tech-behind-dta-website.md","position":66,"original_position":66,"commit_id":"5fe219e0a3df836cfee7d757c99270bea064f89d","original_commit_id":"5fe219e0a3df836cfee7d757c99270bea064f89d","user":{"login":"Kryan92","id":24515636,"avatar_url":"https://avatars1.githubusercontent.com/u/24515636?v=3","gravatar_id":"","url":"https://api.github.com/users/Kryan92","html_url":"https://github.com/Kryan92","followers_url":"https://api.github.com/users/Kryan92/followers","following_url":"https://api.github.com/users/Kryan92/following{/other_user}","gists_url":"https://api.github.com/users/Kryan92/gists{/gist_id}","starred_url":"https://api.github.com/users/Kryan92/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Kryan92/subscriptions","organizations_url":"https://api.github.com/users/Kryan92/orgs","repos_url":"https://api.github.com/users/Kryan92/repos","events_url":"https://api.github.com/users/Kryan92/events{/privacy}","received_events_url":"https://api.github.com/users/Kryan92/received_events","type":"User","site_admin":false},"body":"Done","created_at":"2017-07-07T03:57:18Z","updated_at":"2017-07-07T03:57:18Z","html_url":"https://github.com/AusDTO/dta-website/pull/481#discussion_r126065419","pull_request_url":"https://api.github.com/repos/AusDTO/dta-website/pulls/481","_links":{"self":{"href":"https://api.github.com/repos/AusDTO/dta-website/pulls/comments/126065419"},"html":{"href":"https://github.com/AusDTO/dta-website/pull/481#discussion_r126065419"},"pull_request":{"href":"https://api.github.com/repos/AusDTO/dta-website/pulls/481"}}},"pull_request":{"url":"https://api.github.com/repos/AusDTO/dta-website/pulls/481","id":129316297,"html_url":"https://github.com/AusDTO/dta-website/pull/481","diff_url":"https://github.com/AusDTO/dta-website/pull/481.diff","patch_url":"https://github.com/AusDTO/dta-website/pull/481.patch","issue_url":"https://api.github.com/repos/AusDTO/dta-website/issues/481","number":481,"state":"open","locked":false,"title":"Website blog","user":{"login":"Kryan92","id":24515636,"avatar_url":"https://avatars1.githubusercontent.com/u/24515636?v=3","gravatar_id":"","url":"https://api.github.com/users/Kryan92","html_url":"https://github.com/Kryan92","followers_url":"https://api.github.com/users/Kryan92/followers","following_url":"https://api.github.com/users/Kryan92/following{/other_user}","gists_url":"https://api.github.com/users/Kryan92/gists{/gist_id}","starred_url":"https://api.github.com/users/Kryan92/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Kryan92/subscriptions","organizations_url":"https://api.github.com/users/Kryan92/orgs","repos_url":"https://api.github.com/users/Kryan92/repos","events_url":"https://api.github.com/users/Kryan92/events{/privacy}","received_events_url":"https://api.github.com/users/Kryan92/received_events","type":"User","site_admin":false},"body":"","created_at":"2017-07-07T02:09:12Z","updated_at":"2017-07-07T03:57:18Z","closed_at":null,"merged_at":null,"merge_commit_sha":"e99af666355270854be226881458e2d8ff0d96f6","assignee":null,"assignees":[],"requested_reviewers":[],"milestone":null,"commits_url":"https://api.github.com/repos/AusDTO/dta-website/pulls/481/commits","review_comments_url":"https://api.github.com/repos/AusDTO/dta-website/pulls/481/comments","review_comment_url":"https://api.github.com/repos/AusDTO/dta-website/pulls/comments{/number}","comments_url":"https://api.github.com/repos/AusDTO/dta-website/issues/481/comments","statuses_url":"https://api.github.com/repos/AusDTO/dta-website/statuses/5fe219e0a3df836cfee7d757c99270bea064f89d","head":{"label":"AusDTO:website-blog","ref":"website-blog","sha":"5fe219e0a3df836cfee7d757c99270bea064f89d","user":{"login":"AusDTO","id":11763427,"avatar_url":"https://avatars0.githubusercontent.com/u/11763427?v=3","gravatar_id":"","url":"https://api.github.com/users/AusDTO","html_url":"https://github.com/AusDTO","followers_url":"https://api.github.com/users/AusDTO/followers","following_url":"https://api.github.com/users/AusDTO/following{/other_user}","gists_url":"https://api.github.com/users/AusDTO/gists{/gist_id}","starred_url":"https://api.github.com/users/AusDTO/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AusDTO/subscriptions","organizations_url":"https://api.github.com/users/AusDTO/orgs","repos_url":"https://api.github.com/users/AusDTO/repos","events_url":"https://api.github.com/users/AusDTO/events{/privacy}","received_events_url":"https://api.github.com/users/AusDTO/received_events","type":"Organization","site_admin":false},"repo":{"id":71211972,"name":"dta-website","full_name":"AusDTO/dta-website","owner":{"login":"AusDTO","id":11763427,"avatar_url":"https://avatars0.githubusercontent.com/u/11763427?v=3","gravatar_id":"","url":"https://api.github.com/users/AusDTO","html_url":"https://github.com/AusDTO","followers_url":"https://api.github.com/users/AusDTO/followers","following_url":"https://api.github.com/users/AusDTO/following{/other_user}","gists_url":"https://api.github.com/users/AusDTO/gists{/gist_id}","starred_url":"https://api.github.com/users/AusDTO/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AusDTO/subscriptions","organizations_url":"https://api.github.com/users/AusDTO/orgs","repos_url":"https://api.github.com/users/AusDTO/repos","events_url":"https://api.github.com/users/AusDTO/events{/privacy}","received_events_url":"https://api.github.com/users/AusDTO/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/AusDTO/dta-website","description":"Website for the Digital Transformation Agency","fork":false,"url":"https://api.github.com/repos/AusDTO/dta-website","forks_url":"https://api.github.com/repos/AusDTO/dta-website/forks","keys_url":"https://api.github.com/repos/AusDTO/dta-website/keys{/key_id}","collaborators_url":"https://api.github.com/repos/AusDTO/dta-website/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/AusDTO/dta-website/teams","hooks_url":"https://api.github.com/repos/AusDTO/dta-website/hooks","issue_events_url":"https://api.github.com/repos/AusDTO/dta-website/issues/events{/number}","events_url":"https://api.github.com/repos/AusDTO/dta-website/events","assignees_url":"https://api.github.com/repos/AusDTO/dta-website/assignees{/user}","branches_url":"https://api.github.com/repos/AusDTO/dta-website/branches{/branch}","tags_url":"https://api.github.com/repos/AusDTO/dta-website/tags","blobs_url":"https://api.github.com/repos/AusDTO/dta-website/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/AusDTO/dta-website/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/AusDTO/dta-website/git/refs{/sha}","trees_url":"https://api.github.com/repos/AusDTO/dta-website/git/trees{/sha}","statuses_url":"https://api.github.com/repos/AusDTO/dta-website/statuses/{sha}","languages_url":"https://api.github.com/repos/AusDTO/dta-website/languages","stargazers_url":"https://api.github.com/repos/AusDTO/dta-website/stargazers","contributors_url":"https://api.github.com/repos/AusDTO/dta-website/contributors","subscribers_url":"https://api.github.com/repos/AusDTO/dta-website/subscribers","subscription_url":"https://api.github.com/repos/AusDTO/dta-website/subscription","commits_url":"https://api.github.com/repos/AusDTO/dta-website/commits{/sha}","git_commits_url":"https://api.github.com/repos/AusDTO/dta-website/git/commits{/sha}","comments_url":"https://api.github.com/repos/AusDTO/dta-website/comments{/number}","issue_comment_url":"https://api.github.com/repos/AusDTO/dta-website/issues/comments{/number}","contents_url":"https://api.github.com/repos/AusDTO/dta-website/contents/{+path}","compare_url":"https://api.github.com/repos/AusDTO/dta-website/compare/{base}...{head}","merges_url":"https://api.github.com/repos/AusDTO/dta-website/merges","archive_url":"https://api.github.com/repos/AusDTO/dta-website/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/AusDTO/dta-website/downloads","issues_url":"https://api.github.com/repos/AusDTO/dta-website/issues{/number}","pulls_url":"https://api.github.com/repos/AusDTO/dta-website/pulls{/number}","milestones_url":"https://api.github.com/repos/AusDTO/dta-website/milestones{/number}","notifications_url":"https://api.github.com/repos/AusDTO/dta-website/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/AusDTO/dta-website/labels{/name}","releases_url":"https://api.github.com/repos/AusDTO/dta-website/releases{/id}","deployments_url":"https://api.github.com/repos/AusDTO/dta-website/deployments","created_at":"2016-10-18T05:26:11Z","updated_at":"2017-06-08T04:15:55Z","pushed_at":"2017-07-07T02:09:12Z","git_url":"git://github.com/AusDTO/dta-website.git","ssh_url":"git@github.com:AusDTO/dta-website.git","clone_url":"https://github.com/AusDTO/dta-website.git","svn_url":"https://github.com/AusDTO/dta-website","homepage":"https://www.dta.gov.au","size":69825,"stargazers_count":2,"watchers_count":2,"language":"HTML","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":4,"mirror_url":null,"open_issues_count":25,"forks":4,"open_issues":25,"watchers":2,"default_branch":"develop"}},"base":{"label":"AusDTO:develop","ref":"develop","sha":"7322c8260c465f95a6312fc47e64e62e04083507","user":{"login":"AusDTO","id":11763427,"avatar_url":"https://avatars0.githubusercontent.com/u/11763427?v=3","gravatar_id":"","url":"https://api.github.com/users/AusDTO","html_url":"https://github.com/AusDTO","followers_url":"https://api.github.com/users/AusDTO/followers","following_url":"https://api.github.com/users/AusDTO/following{/other_user}","gists_url":"https://api.github.com/users/AusDTO/gists{/gist_id}","starred_url":"https://api.github.com/users/AusDTO/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AusDTO/subscriptions","organizations_url":"https://api.github.com/users/AusDTO/orgs","repos_url":"https://api.github.com/users/AusDTO/repos","events_url":"https://api.github.com/users/AusDTO/events{/privacy}","received_events_url":"https://api.github.com/users/AusDTO/received_events","type":"Organization","site_admin":false},"repo":{"id":71211972,"name":"dta-website","full_name":"AusDTO/dta-website","owner":{"login":"AusDTO","id":11763427,"avatar_url":"https://avatars0.githubusercontent.com/u/11763427?v=3","gravatar_id":"","url":"https://api.github.com/users/AusDTO","html_url":"https://github.com/AusDTO","followers_url":"https://api.github.com/users/AusDTO/followers","following_url":"https://api.github.com/users/AusDTO/following{/other_user}","gists_url":"https://api.github.com/users/AusDTO/gists{/gist_id}","starred_url":"https://api.github.com/users/AusDTO/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AusDTO/subscriptions","organizations_url":"https://api.github.com/users/AusDTO/orgs","repos_url":"https://api.github.com/users/AusDTO/repos","events_url":"https://api.github.com/users/AusDTO/events{/privacy}","received_events_url":"https://api.github.com/users/AusDTO/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/AusDTO/dta-website","description":"Website for the Digital Transformation Agency","fork":false,"url":"https://api.github.com/repos/AusDTO/dta-website","forks_url":"https://api.github.com/repos/AusDTO/dta-website/forks","keys_url":"https://api.github.com/repos/AusDTO/dta-website/keys{/key_id}","collaborators_url":"https://api.github.com/repos/AusDTO/dta-website/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/AusDTO/dta-website/teams","hooks_url":"https://api.github.com/repos/AusDTO/dta-website/hooks","issue_events_url":"https://api.github.com/repos/AusDTO/dta-website/issues/events{/number}","events_url":"https://api.github.com/repos/AusDTO/dta-website/events","assignees_url":"https://api.github.com/repos/AusDTO/dta-website/assignees{/user}","branches_url":"https://api.github.com/repos/AusDTO/dta-website/branches{/branch}","tags_url":"https://api.github.com/repos/AusDTO/dta-website/tags","blobs_url":"https://api.github.com/repos/AusDTO/dta-website/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/AusDTO/dta-website/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/AusDTO/dta-website/git/refs{/sha}","trees_url":"https://api.github.com/repos/AusDTO/dta-website/git/trees{/sha}","statuses_url":"https://api.github.com/repos/AusDTO/dta-website/statuses/{sha}","languages_url":"https://api.github.com/repos/AusDTO/dta-website/languages","stargazers_url":"https://api.github.com/repos/AusDTO/dta-website/stargazers","contributors_url":"https://api.github.com/repos/AusDTO/dta-website/contributors","subscribers_url":"https://api.github.com/repos/AusDTO/dta-website/subscribers","subscription_url":"https://api.github.com/repos/AusDTO/dta-website/subscription","commits_url":"https://api.github.com/repos/AusDTO/dta-website/commits{/sha}","git_commits_url":"https://api.github.com/repos/AusDTO/dta-website/git/commits{/sha}","comments_url":"https://api.github.com/repos/AusDTO/dta-website/comments{/number}","issue_comment_url":"https://api.github.com/repos/AusDTO/dta-website/issues/comments{/number}","contents_url":"https://api.github.com/repos/AusDTO/dta-website/contents/{+path}","compare_url":"https://api.github.com/repos/AusDTO/dta-website/compare/{base}...{head}","merges_url":"https://api.github.com/repos/AusDTO/dta-website/merges","archive_url":"https://api.github.com/repos/AusDTO/dta-website/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/AusDTO/dta-website/downloads","issues_url":"https://api.github.com/repos/AusDTO/dta-website/issues{/number}","pulls_url":"https://api.github.com/repos/AusDTO/dta-website/pulls{/number}","milestones_url":"https://api.github.com/repos/AusDTO/dta-website/milestones{/number}","notifications_url":"https://api.github.com/repos/AusDTO/dta-website/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/AusDTO/dta-website/labels{/name}","releases_url":"https://api.github.com/repos/AusDTO/dta-website/releases{/id}","deployments_url":"https://api.github.com/repos/AusDTO/dta-website/deployments","created_at":"2016-10-18T05:26:11Z","updated_at":"2017-06-08T04:15:55Z","pushed_at":"2017-07-07T02:09:12Z","git_url":"git://github.com/AusDTO/dta-website.git","ssh_url":"git@github.com:AusDTO/dta-website.git","clone_url":"https://github.com/AusDTO/dta-website.git","svn_url":"https://github.com/AusDTO/dta-website","homepage":"https://www.dta.gov.au","size":69825,"stargazers_count":2,"watchers_count":2,"language":"HTML","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":4,"mirror_url":null,"open_issues_count":25,"forks":4,"open_issues":25,"watchers":2,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/AusDTO/dta-website/pulls/481"},"html":{"href":"https://github.com/AusDTO/dta-website/pull/481"},"issue":{"href":"https://api.github.com/repos/AusDTO/dta-website/issues/481"},"comments":{"href":"https://api.github.com/repos/AusDTO/dta-website/issues/481/comments"},"review_comments":{"href":"https://api.github.com/repos/AusDTO/dta-website/pulls/481/comments"},"review_comment":{"href":"https://api.github.com/repos/AusDTO/dta-website/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/AusDTO/dta-website/pulls/481/commits"},"statuses":{"href":"https://api.github.com/repos/AusDTO/dta-website/statuses/5fe219e0a3df836cfee7d757c99270bea064f89d"}}}}
{"actor":{"display_login":"Kryan92"}}