Sans-serif, plenty of whitespace and a single blue accent — goblog's minimal theme.

e6e355bfdc2ea617bec915a3bd6cb93f68690cb4429716a4124584e1a43ce51cInstall it from your own goblog under Admin → Themes.
Sans-serif, plenty of whitespace and a single blue accent. This is the theme that shipped compiled into goblog as minimal up to 0.6.x, published as a directory theme so it can be installed and updated on its own.
From your goblog: Admin → Themes → Browse → Minimal → Install, then Activate. Requires goblog 0.7.0 or newer (earlier releases have a built-in minimal that shadows an installed copy).
Upgrading a site that already used the built-in minimal: after the goblog upgrade the site renders the default theme until you install Minimal from the directory; the theme setting is left alone, so the site switches back as soon as the theme is installed.
Only the public-facing templates that differ from default (header, footer, home, post, posts, login and the page_* types) and static/css/goblog.css. Everything else — admin and wizard pages, tags, archives, search, error — renders from goblog's default theme, so it keeps up with new goblog releases automatically.
Edit the files under templates/ and static/, drop the folder into a goblog checkout as themes/installed/minimal/ (or point THEMES_INSTALLED_DIR at its parent) and set the theme setting to minimal. Templates are Go html/template; see goblog.live/docs/writing-a-theme for the contract.
Tag vX.Y.Z and publish a GitHub release; the directory picks up the tag's archive. screenshot.png at the root is shown in the listing.
_password_login partial) when the site has a password account, under the GitHub button. Until now a site with both GitHub login and a password admin showed only GitHub on this theme (goblog #666)._powered_by partial instead of being written out in the theme. It now links to goblog.live rather than the GitHub repository, and a site can hide it with the Show "Powered by goblog" setting under Admin → Settings → Appearance (goblog #644).footer.html references a template that does not exist./login/github; the theme no longer assembles the authorize URL in an inline script, where window.location went into redirect_uri unescaped, nor handles the ?code= that came back. goblog completes the exchange server-side against a state it minted, so a code obtained for one account can no longer be replayed into another visitor's browser (goblog #631, #637)..github_login_url, instead of being built with a template conditional in every theme (goblog #639)./api/login/email directly rather than rebuilding the site's origin first.Note that this theme still renders markdown in the browser; goblog 0.10.0 moved that to the server for the other themes but it has not been ported here (#2).
DOMContentLoaded, so the theme keeps working when goblog defers its CDN scripts (goblog 0.11.0, goblogplatform/GoBlog#624). Without this, posts lose syntax highlighting, the GitHub login button does nothing and the post body is never inserted.href is set during parse with document.getElementById(...).href instead of jQuery, so the link is never briefly inert.minimal theme that was compiled into goblog up to 0.6.x, layered on goblog's default theme.Requires goblog 0.14.0.
The login page offers goblog's password form (the shared _password_login partial) under the GitHub button when the site has a password account, the admin account goblog 0.14.0's install wizard creates. Until now a site with both GitHub login and a password admin showed only GitHub on this theme (goblogplatform/GoBlog#666).
min_goblog_version is now 0.14.0, so the directory offers this only once your goblog is on that release. Upgrade goblog first.
Requires goblog 0.13.0.
The footer's "Powered by goblog" line comes from goblog's shared _powered_by partial instead of being written out in the theme. It now links to goblog.live rather than the GitHub repository, and a site can hide it with the Show "Powered by goblog" setting under Admin → Settings → Appearance (goblogplatform/GoBlog#644).
min_goblog_version is now 0.13.0, the first release with the partial, so the directory offers this only once your goblog is on that release.
Upgrade goblog first. On anything older the theme's footer.html references a template that does not exist.
Requires goblog 0.12.0.
Signing in with GitHub is goblog's job now. The button is a plain link to /login/github; the theme no longer assembles the authorize URL in an inline script — where window.location went into redirect_uri unescaped — nor handles the ?code= that came back. goblog completes the exchange server-side against a state it minted, so a code obtained for one account can no longer be replayed into another visitor's browser (goblogplatform/GoBlog#631, #637).
The button's own URL comes from the server too, as .github_login_url, rather than being built with a nested template conditional in every theme (goblogplatform/GoBlog#639).
The email login posts to /api/login/email directly rather than rebuilding the site's origin first.
min_goblog_version is now 0.12.0, so the directory offers this only once your goblog is on that release.
Upgrade goblog first. On 0.12.0 an older version of this theme still signs in, because goblog restarts the flow when a callback arrives with no state (goblogplatform/GoBlog#640), but it gets there via a second round trip to GitHub.
This theme still renders markdown in the browser. goblog 0.10.0 moved that to the server for the other themes; porting it here is tracked in #2.
Prepares the theme for goblog 0.11.0, which loads its CDN scripts with defer (goblogplatform/GoBlog#624).
With defer, jQuery and highlight.js are not defined while the page is still parsing, so inline scripts that called them during parse would throw — no syntax highlighting, a dead GitHub login button, and a post body that never gets inserted. Those calls now wait for DOMContentLoaded.
footer.html — hljs.highlightAll()login.html — the ?code= exchange and the email login form wiringlogin.html — the GitHub button's href is set with document.getElementById(...).href during parse now, so it is never briefly inert and needs no librarypost.html — the $("#html") call that inserts the rendered postpost.html still builds its converter during parse: the comment loop and previewComment() read that global, and showdown/DOMPurify are local body scripts that are not deferred.
Install this before upgrading to goblog 0.11.0. A DOMContentLoaded handler behaves the same whether or not the scripts are deferred, so this release also works on older goblog — min_goblog_version is unchanged at 0.7.0.
This theme still renders markdown in the browser. goblog 0.10.0 moved that to the server for the other themes but it was never ported here — tracked in #2.
First release as a directory theme: the public templates and CSS of the minimal theme compiled into goblog up to 0.6.x, layered on goblog's default theme. Requires goblog 0.7.0 or newer.
GoBlog
Powered by goblog v0.16.0