From 75e681a07482ac5674d1afb7b700543408631bc9 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sat, 19 Sep 2026 23:02:30 +0000 Subject: [PATCH 1/3] docs: add Skylight alternative page, fix FAQ issues #14/#20, fix homepage 404s - Add comprehensive Beacon vs Skylight comparison page at /docs/getting-started/skylight-alternative/ - Update FAQ to clarify notifications are not yet shipped (issue #14) - Add FAQ entry for hiding HA sidebar in kiosk mode (issue #20) - Fix broken documentation links on homepage (getting-started, calendar, configuration, faq) - Add robots.txt with sitemap reference for SEO Signed-off-by: Cursor Agent Co-authored-by: Aaron Sachs --- docs-site/public/robots.txt | 5 ++ .../getting-started/skylight-alternative.mdx | 59 +++++++++++++++++++ docs-site/src/content/docs/reference/faq.mdx | 13 +++- docs-site/src/pages/index.astro | 8 +-- 4 files changed, 80 insertions(+), 5 deletions(-) create mode 100644 docs-site/public/robots.txt create mode 100644 docs-site/src/content/docs/getting-started/skylight-alternative.mdx diff --git a/docs-site/public/robots.txt b/docs-site/public/robots.txt new file mode 100644 index 00000000..e2425b44 --- /dev/null +++ b/docs-site/public/robots.txt @@ -0,0 +1,5 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Allow: / + +Sitemap: https://beacon-family-docs.netlify.app/sitemap-index.xml diff --git a/docs-site/src/content/docs/getting-started/skylight-alternative.mdx b/docs-site/src/content/docs/getting-started/skylight-alternative.mdx new file mode 100644 index 00000000..6a3f2425 --- /dev/null +++ b/docs-site/src/content/docs/getting-started/skylight-alternative.mdx @@ -0,0 +1,59 @@ +--- +title: "Beacon vs Skylight" +description: "Free open-source Skylight Calendar alternative. Home Assistant add-on or Docker. Calendar, chores, meals, photos — no subscription, no cloud lock-in." +order: 3 +--- + +# A free Skylight alternative that runs on Home Assistant + +Beacon is a self-hosted family command center for wall-mounted tablets. Same kitchen-wall job as Skylight Calendar — shared calendar, chores, meals, lists, photos — without the proprietary screen or the yearly Calendar Plus fee. + +## Quick comparison + +| | Skylight Calendar | Beacon | +|---|---|---| +| Cost | Hardware ~$300–$650+ | Free (MIT); bring your own tablet | +| Subscription | Calendar Plus ~$79/yr for meals, photos, extras | $0 | +| Privacy | Vendor cloud account | Local / Home Assistant; data stays on your network | +| Smart home | No Home Assistant | Native HA add-on + standalone mode | +| Hardware | Proprietary display | Any wall tablet or spare screen | +| Voice / AI | Vendor features | MCP server, voice API, HA Assist | + +## Who should buy Skylight + +You want a sealed consumer product, don't run a home server, and prefer support from a hardware vendor. + +## Who should install Beacon + +You already run (or will run) Home Assistant, want a wall tablet without a subscription, and care about local control. Or you want the same dashboard without HA via standalone mode. + +## Replace a Skylight-style setup in about 10 minutes + +1. Install Beacon as a Home Assistant add-on (or run standalone). +2. Connect your HA calendar entities (or use the built-in local calendar). +3. Add family members, pick a theme, mount any tablet in the kitchen. + +## FAQ + +**Is Beacon a Skylight alternative?** +Yes — same wall-display family calendar job, open source and self-hosted. + +**Does Beacon require a subscription?** +No. MIT licensed, no cloud account required for core use. + +**Do I need Home Assistant?** +Recommended for the richest integration. Standalone mode works with local calendars, lists, and tasks. + +**What tablet works?** +Any browser-capable wall tablet or spare screen. Point it at Beacon's URL (or open via HA sidebar / direct add-on URL). + +**Is the "Skylight" theme the Skylight product?** +No. It's a visual theme inspired by that clean bright look — not affiliated with Skylight. + +--- + +## Next steps + +- [Installation guide](/docs/getting-started/installation/) — install as a Home Assistant add-on or Docker container +- [Full FAQ](/docs/reference/faq/) — 20+ common questions answered +- [Hardware recommendations](/docs/getting-started/deployment/) — tablet and mount options diff --git a/docs-site/src/content/docs/reference/faq.mdx b/docs-site/src/content/docs/reference/faq.mdx index c509f41e..cd120d9d 100644 --- a/docs-site/src/content/docs/reference/faq.mdx +++ b/docs-site/src/content/docs/reference/faq.mdx @@ -93,7 +93,7 @@ Beacon is designed for **landscape displays** (16:9 or 16:10). In portrait mode, ### Does it send notifications? -**Yes.** Beacon sends browser push notifications and HA mobile app notifications 15 minutes before calendar events. See [Notifications](/docs/features/notifications/). +**Not yet.** Push notifications and in-app notifications are not currently shipped. The closest available feature today is the on-device screen saver and kid display mode. Contributions are welcome — if you're interested in implementing notification support, please see our [Contributing guide](/docs/reference/contributing/). ### Does it prevent screen burn-in? @@ -123,6 +123,17 @@ Add multiple calendar integrations in Home Assistant (Google Calendar, CalDAV, L Click the gear icon in the sidebar to open the Family Members modal. Click "+ Add Member" and fill in the name, avatar, color, role, and optional PIN. See [Family Members](/docs/features/family/). +### How do I hide the Home Assistant sidebar for wall tablets? + +**Beacon cannot hide HA's sidebar when running inside Home Assistant ingress** — that chrome is controlled by Home Assistant itself. For dedicated wall tablets or Windows kiosk setups, open Beacon's own URL directly in full-screen mode instead: + +1. **Find the direct URL**: In HA, click "Open Web UI" on the Beacon add-on page, or use the direct ingress URL (typically `http://YOUR_HA_IP:8123/api/hassio_ingress/`) +2. **For Android tablets**: Use [Fully Kiosk Browser](/docs/getting-started/installation/#mounting-and-displaying-on-a-tablet) with "Hide Navigation Bar" and "Hide Status Bar" enabled +3. **For desktop/Pi kiosk**: Launch Chrome/Chromium with `--kiosk` flag pointed at the Beacon URL +4. **For standalone Docker**: Use the container's direct URL (e.g., `http://YOUR_DOCKER_HOST:3000`) + +See the [Installation guide](/docs/getting-started/installation/#mounting-and-displaying-on-a-tablet) for detailed kiosk setup instructions. There is no SPA code setting to hide HA's sidebar — this is a browser/display-level configuration. + --- ## Updates and Maintenance diff --git a/docs-site/src/pages/index.astro b/docs-site/src/pages/index.astro index 12db5dc5..9c847721 100644 --- a/docs-site/src/pages/index.astro +++ b/docs-site/src/pages/index.astro @@ -28,10 +28,10 @@ const features = [ ]; const docLinks = [ - { title: 'Getting Started', description: 'Install Beacon and connect your calendar in under 10 minutes.', href: '/docs/getting-started/' }, - { title: 'Calendar', description: 'Week view, creating events, recurring events, drag-to-reschedule.', href: '/docs/calendar/' }, - { title: 'Configuration', description: 'Complete reference for all configuration options.', href: '/docs/configuration/' }, - { title: 'FAQ', description: 'Answers to 20+ common questions.', href: '/docs/faq/' }, + { title: 'Getting Started', description: 'Install Beacon and connect your calendar in under 10 minutes.', href: '/docs/getting-started/installation/' }, + { title: 'Calendar', description: 'Week view, creating events, recurring events, drag-to-reschedule.', href: '/docs/features/calendar/' }, + { title: 'Configuration', description: 'Complete reference for all configuration options.', href: '/docs/customization/configuration/' }, + { title: 'FAQ', description: 'Answers to 20+ common questions.', href: '/docs/reference/faq/' }, ]; --- From eb644d77eae188e97ae0d775751765289b54a4a0 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sat, 19 Sep 2026 23:04:47 +0000 Subject: [PATCH 2/3] docs: fix sidebar order collision and polish next steps links - Update Getting Started sidebar order per Signal's SEO sequence: - Welcome = 1 - Skylight alternative = 2 - Installation = 3 - Visual Walkthrough = 4 - Deployment = 5 - Convert plain text next steps to proper markdown links on Skylight page - Fixes unstable sidebar sort caused by duplicate order: 3 Signed-off-by: Cursor Agent Co-authored-by: Aaron Sachs --- docs-site/src/content/docs/getting-started/deployment.mdx | 2 +- .../src/content/docs/getting-started/installation.mdx | 2 +- .../content/docs/getting-started/skylight-alternative.mdx | 8 ++++---- .../src/content/docs/getting-started/walkthrough.mdx | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs-site/src/content/docs/getting-started/deployment.mdx b/docs-site/src/content/docs/getting-started/deployment.mdx index edfc20e7..c9b160ae 100644 --- a/docs-site/src/content/docs/getting-started/deployment.mdx +++ b/docs-site/src/content/docs/getting-started/deployment.mdx @@ -1,7 +1,7 @@ --- title: "Deployment" description: "Deploying Beacon — HA add-on, Docker standalone, reverse proxy, hardware recommendations, kiosk mode, and performance optimization." -order: 4 +order: 5 --- # Deployment diff --git a/docs-site/src/content/docs/getting-started/installation.mdx b/docs-site/src/content/docs/getting-started/installation.mdx index d0a00a69..5230bb74 100644 --- a/docs-site/src/content/docs/getting-started/installation.mdx +++ b/docs-site/src/content/docs/getting-started/installation.mdx @@ -1,7 +1,7 @@ --- title: "Getting Started" description: "Install Beacon as a Home Assistant add-on, Docker container, or development server and connect your family's calendar in under 10 minutes." -order: 2 +order: 3 --- # Getting Started diff --git a/docs-site/src/content/docs/getting-started/skylight-alternative.mdx b/docs-site/src/content/docs/getting-started/skylight-alternative.mdx index 6a3f2425..d855cf63 100644 --- a/docs-site/src/content/docs/getting-started/skylight-alternative.mdx +++ b/docs-site/src/content/docs/getting-started/skylight-alternative.mdx @@ -1,7 +1,7 @@ --- title: "Beacon vs Skylight" description: "Free open-source Skylight Calendar alternative. Home Assistant add-on or Docker. Calendar, chores, meals, photos — no subscription, no cloud lock-in." -order: 3 +order: 2 --- # A free Skylight alternative that runs on Home Assistant @@ -54,6 +54,6 @@ No. It's a visual theme inspired by that clean bright look — not affiliated wi ## Next steps -- [Installation guide](/docs/getting-started/installation/) — install as a Home Assistant add-on or Docker container -- [Full FAQ](/docs/reference/faq/) — 20+ common questions answered -- [Hardware recommendations](/docs/getting-started/deployment/) — tablet and mount options +- **[Installation guide](/docs/getting-started/installation/)** — install as a Home Assistant add-on or Docker container +- **[Full FAQ](/docs/reference/faq/)** — 20+ common questions answered +- **[Hardware recommendations](/docs/getting-started/deployment/)** — tablet and mount options diff --git a/docs-site/src/content/docs/getting-started/walkthrough.mdx b/docs-site/src/content/docs/getting-started/walkthrough.mdx index 9fd3fa30..cc0c8446 100644 --- a/docs-site/src/content/docs/getting-started/walkthrough.mdx +++ b/docs-site/src/content/docs/getting-started/walkthrough.mdx @@ -1,7 +1,7 @@ --- title: "Visual Walkthrough" description: "A screenshot-guided tour of every Beacon view — dashboard, calendar, lists, tasks, music, weather, and settings — at both desktop and mobile sizes." -order: 3 +order: 4 --- # Visual Walkthrough From 6f7dc93be7ce631f798d6e4b0f13844d460068b9 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Mon, 12 Oct 2026 16:13:25 +0000 Subject: [PATCH 3/3] docs: correct FAQ against actual implementation after rebase - Fix notifications FAQ entry: notifications ARE implemented via useNotifications() - Default 10 minutes before events, configurable to 5/10/15/30 in Settings > Calendar - Browser push + HA mobile app notifications - Only for timed events (not all-day) - Fix kiosk mode FAQ entry: Kiosk Mode toggle now works (fixed in PR #51) - Settings > Display > Kiosk Mode hides Beacon's sidebar entirely - Distinguish between Beacon's sidebar and HA's ingress sidebar - Update notifications.mdx to match: document configurable timing, default 10min - Resolves contradiction between FAQ and shipped code after three-week staleness Signed-off-by: Cursor Agent Co-authored-by: Aaron Sachs --- .../src/content/docs/features/notifications.mdx | 10 +++++++--- docs-site/src/content/docs/reference/faq.mdx | 17 +++++++++++++---- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/docs-site/src/content/docs/features/notifications.mdx b/docs-site/src/content/docs/features/notifications.mdx index 3ab4d940..b217ee2d 100644 --- a/docs-site/src/content/docs/features/notifications.mdx +++ b/docs-site/src/content/docs/features/notifications.mdx @@ -12,11 +12,13 @@ Beacon sends notifications before upcoming calendar events through two channels: ## How notifications work -Every 60 seconds, Beacon scans your calendar events and checks if any event is starting within the next 15 minutes. When it finds one: +Every 60 seconds, Beacon scans your calendar events and checks if any upcoming event is starting within the configured notification window. When it finds one: 1. A **browser notification** is sent (if permission is granted) 2. A **Home Assistant mobile app notification** is sent (if the client is connected) +The default notification timing is **10 minutes** before each event. You can customize this in **Settings > Calendar** to 5, 10, 15, or 30 minutes. + Each event is only notified once — Beacon tracks which event IDs have already triggered notifications to avoid duplicates. --- @@ -43,12 +45,14 @@ The first time Beacon loads, it checks the browser's notification permission: ### Notification timing +The timing depends on your **Settings > Calendar** configuration (default: 10 minutes before each event, configurable to 5, 10, 15, or 30 minutes). + | Time Before Event | Body Text | |-------------------|-----------| -| 2-15 minutes | "Starts in X minutes" | +| 2+ minutes | "Starts in X minutes" | | 0-1 minute | "Starting now" | -The check runs every 60 seconds, so the actual notification may arrive anywhere within the 15-minute window, typically within 1 minute of the 15-minute mark. +The check runs every 60 seconds, so the actual notification may arrive anywhere within the configured window, typically within 1 minute of reaching the threshold. ### All-day events diff --git a/docs-site/src/content/docs/reference/faq.mdx b/docs-site/src/content/docs/reference/faq.mdx index cd120d9d..03dc7c49 100644 --- a/docs-site/src/content/docs/reference/faq.mdx +++ b/docs-site/src/content/docs/reference/faq.mdx @@ -93,7 +93,14 @@ Beacon is designed for **landscape displays** (16:9 or 16:10). In portrait mode, ### Does it send notifications? -**Not yet.** Push notifications and in-app notifications are not currently shipped. The closest available feature today is the on-device screen saver and kid display mode. Contributions are welcome — if you're interested in implementing notification support, please see our [Contributing guide](/docs/reference/contributing/). +**Yes.** Beacon monitors upcoming calendar events and sends notifications ahead of each event through two channels: + +1. **Browser push notifications** (requires one-time permission grant) +2. **Home Assistant mobile app notifications** via `notify.notify` + +By default, notifications fire 10 minutes before timed events (not all-day events). You can customize the timing in **Settings > Calendar** to 5, 10, 15, or 30 minutes. Beacon checks every minute and sends each notification once per event. + +See [Notifications](/docs/features/notifications/) for setup details, permission requirements, and troubleshooting. ### Does it prevent screen burn-in? @@ -123,16 +130,18 @@ Add multiple calendar integrations in Home Assistant (Google Calendar, CalDAV, L Click the gear icon in the sidebar to open the Family Members modal. Click "+ Add Member" and fill in the name, avatar, color, role, and optional PIN. See [Family Members](/docs/features/family/). -### How do I hide the Home Assistant sidebar for wall tablets? +### How do I hide the sidebar for wall tablets / kiosk setups? + +**Beacon's own sidebar**: Enable **Kiosk Mode** in **Settings > Display**. This hides Beacon's sidebar entirely and uses a full-width layout. (Fixed in [PR #51](https://github.com/asachs01/beacon/pull/51) — earlier versions had a non-functional toggle.) -**Beacon cannot hide HA's sidebar when running inside Home Assistant ingress** — that chrome is controlled by Home Assistant itself. For dedicated wall tablets or Windows kiosk setups, open Beacon's own URL directly in full-screen mode instead: +**Home Assistant's sidebar** (when running as an HA add-on): Beacon cannot hide HA's sidebar when running inside Home Assistant ingress — that chrome is controlled by Home Assistant itself. For dedicated wall tablets or Windows kiosk setups, open Beacon's direct URL in full-screen mode instead: 1. **Find the direct URL**: In HA, click "Open Web UI" on the Beacon add-on page, or use the direct ingress URL (typically `http://YOUR_HA_IP:8123/api/hassio_ingress/`) 2. **For Android tablets**: Use [Fully Kiosk Browser](/docs/getting-started/installation/#mounting-and-displaying-on-a-tablet) with "Hide Navigation Bar" and "Hide Status Bar" enabled 3. **For desktop/Pi kiosk**: Launch Chrome/Chromium with `--kiosk` flag pointed at the Beacon URL 4. **For standalone Docker**: Use the container's direct URL (e.g., `http://YOUR_DOCKER_HOST:3000`) -See the [Installation guide](/docs/getting-started/installation/#mounting-and-displaying-on-a-tablet) for detailed kiosk setup instructions. There is no SPA code setting to hide HA's sidebar — this is a browser/display-level configuration. +See the [Installation guide](/docs/getting-started/installation/#mounting-and-displaying-on-a-tablet) for detailed kiosk setup instructions. ---