diff --git a/src/layouts/ha-init-page.js b/src/layouts/ha-init-page.js
deleted file mode 100644
index fe33063bbb..0000000000
--- a/src/layouts/ha-init-page.js
+++ /dev/null
@@ -1,48 +0,0 @@
-import "@polymer/iron-flex-layout/iron-flex-layout-classes";
-import "@polymer/paper-button/paper-button";
-import "@polymer/paper-spinner/paper-spinner";
-import { html } from "@polymer/polymer/lib/utils/html-tag";
-import { PolymerElement } from "@polymer/polymer/polymer-element";
-
-import LocalizeMixin from "../mixins/localize-mixin";
-import EventsMixin from "../mixins/events-mixin";
-
-/*
- * @appliesMixin LocalizeMixin
- */
-class HaInitPage extends EventsMixin(LocalizeMixin(PolymerElement)) {
- static get template() {
- return html`
-
-
-
-
-

-
-
- Unable to connect to Home Assistant.
- Retry
-
-
- Loading data
-
-
- `;
- }
-
- static get properties() {
- return {
- error: Boolean,
- };
- }
-
- _retry() {
- location.reload();
- }
-}
-
-customElements.define("ha-init-page", HaInitPage);
diff --git a/src/layouts/ha-init-page.ts b/src/layouts/ha-init-page.ts
new file mode 100644
index 0000000000..f8476643ec
--- /dev/null
+++ b/src/layouts/ha-init-page.ts
@@ -0,0 +1,70 @@
+import "@polymer/paper-button/paper-button";
+import "@polymer/paper-spinner/paper-spinner-lite";
+
+import {
+ LitElement,
+ PropertyDeclarations,
+ html,
+ CSSResult,
+ css,
+} from "lit-element";
+
+/*
+ * @appliesMixin LocalizeMixin
+ */
+class HaInitPage extends LitElement {
+ public error?: boolean;
+
+ static get properties(): PropertyDeclarations {
+ return {
+ error: {
+ type: Boolean,
+ },
+ };
+ }
+
+ protected render() {
+ return html`
+
+

+
+ ${this.error
+ ? html`
+ Unable to connect to Home Assistant.
+
Retry
+ `
+ : "Loading data"}
+
+ `;
+ }
+
+ static get styles(): CSSResult {
+ return css`
+ div {
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ }
+ paper-spinner-lite {
+ margin-bottom: 10px;
+ }
+ paper-button {
+ font-weight: 500;
+ color: var(--primary-color);
+ }
+ `;
+ }
+
+ private _retry() {
+ location.reload();
+ }
+}
+
+customElements.define("ha-init-page", HaInitPage);