From c7ca6bfbb1e9e8b3feefa0deb576e91e389b44b2 Mon Sep 17 00:00:00 2001 From: Daniel Maksymilian Syrnicki Date: Thu, 16 Apr 2026 12:27:56 +0200 Subject: [PATCH] =?UTF-8?q?feat(ui):=20landing=20page=20redesign=20?= =?UTF-8?q?=E2=80=94=20apps=20grid=20+=20roadmap=20placeholders?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Slice 4 of the on-box UI uplevel. The landing page is now the peak-end first impression after install: welcome + hostname chip, a "Your apps" tile grid consuming /api/apps (with the real icon and an app-specific primary action — fileshare gets smb://.local/files, everything else falls back to Manage →), the existing system-status tiles kept intact, and a subtle "Coming next" row of text-only links that jump to the planned-features section on furtka.org. No dead tiles. The status script now also writes ip_primary, kernel, ram_total and a furtka_version read from /etc/furtka/version (TODO: pin that file at install time; for now it reports "dev"). The settings page will consume those in slice 5. Co-Authored-By: Claude Opus 4.6 (1M context) --- webinstaller/app.py | 93 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 88 insertions(+), 5 deletions(-) diff --git a/webinstaller/app.py b/webinstaller/app.py index 882fa7c..53c9f46 100644 --- a/webinstaller/app.py +++ b/webinstaller/app.py @@ -1,3 +1,7 @@ +# ruff: noqa: E501 — inline HTML/CSS/JS payloads (_INDEX_HTML, _STYLE_CSS, +# _CADDYFILE, _FURTKA_STATUS_SH, etc.) round-trip verbatim to the installed +# system; wrapping them hurts readability and the rendered output is what +# matters. import base64 import json import os @@ -192,7 +196,14 @@ _INDEX_HTML = """\

Running on __HOSTNAME__

-
+
+

Your apps

+ +
+ +

System status

@@ -211,9 +222,17 @@ _INDEX_HTML = """\

Updated

-
-

Apps

-

Manage installed apps →

+
+

Coming next

+
+

Features we're building — follow progress on furtka.org.

+ Photos + Smart home + Media streaming + Multiple boxes + Secure link + User accounts +