From 04f878e4848a15f8a2f1d4edaec63d913f06491d Mon Sep 17 00:00:00 2001
From: Remi <73385395+itsrubberduck@users.noreply.github.com>
Date: Sat, 4 Oct 2025 15:57:43 +0200
Subject: [PATCH] Revamp landing page messaging and news for Live ATC focus
---
app/pages/index.vue | 410 +++++++++++++++---------------
content/news/alpha-prototype.md | 42 +--
content/news/runtime-hardening.md | 46 ++--
3 files changed, 259 insertions(+), 239 deletions(-)
diff --git a/app/pages/index.vue b/app/pages/index.vue
index 9d81cd9..e9d4025 100644
--- a/app/pages/index.vue
+++ b/app/pages/index.vue
@@ -103,34 +103,41 @@
+
+
- Learning path (in progress)
+ Classroom alpha modules
- Together with the community we structure training modules – from the first radio call to networks like
- VATSIM. Feedback from tests flows straight into every chapter.
+ Invitation-only cohorts practise listening comprehension: extract the clearance, compare with the answer
+ key and repeat until every call sticks.
- - 1Basics (concept): phonetic alphabet, numbers, standard readbacks.
-
- - 2Ground (alpha): taxi flows, hotspots, holding short.
-
- - 3Departure (planned): SID handling, altitude/speed calls.
-
- - 4Arrival (planned): STARs, vectors, approach briefing.
-
- - 5VATSIM (community beta): checklists, etiquette, live practice.
-
+ - 1Basics (concept): numbers, letters, standard readbacks.
+ - 2Ground (alpha): taxi flows, hotspots, hold short calls.
+ - 3Departure (alpha): SID expectations, climb/heading changes.
+ - 4Arrival (planned): STAR shortcuts, vectoring, approach clearance.
+ - 5Network drills (planned): etiquette before joining VATSIM/IVAO.
@@ -626,49 +625,142 @@
- Plans & hosting
+ Product lineup & availability
- Three ways to use OpenSquawk – all currently €0 while we cover the infrastructure.
+ Two experiences, one stack. Classroom is flying today via invitation, Live ATC is the flagship in active
+ development and the open-source core stays free to inspect or host yourself.
-
+
-
Community
+
Flagship
- Open-source (self-host)
+ Live ATC (in development)
- Full control over infrastructure and data. Self-hosting is always an option.
+ AI controller that listens to your PTT call, consults the state machine and answers with authentic
+ phraseology. Perfect for solo IFR/VFR practice when networks are offline.
- 0€ / forever
+ Closed alpha · waitlist open
-
- Full feature set & customization
+ PTT → STT → LLM decision tree → TTS pipeline
-
- Plugin SDK & API access
+ MSFS 2020 plug-in streams live telemetry
-
- Community support & docs
+ Proactive calls for spacing, altitude and handoffs
-
- Managed hosting & updates included
+ Public download (planned post-alpha)
-
- Guided multi-user environments
+ X-Plane / FlightGear builds (roadmap)
+
+
+
+
+ Join the waitlist
+
+
+
+
+
+
+
+ Live today
+
+
+
+
Classroom (alpha invitation)
+
+ Listening drills that sharpen comprehension: decode clearances, practise readbacks and compare against
+ official transcripts.
+
+
+ Invitation only · alpha
+
+
+ -
+
+ Scenario packs: Ground, Departure, Approach
+
+ -
+
+ Instant feedback on key details (altitude, squawk, headings)
+
+ -
+
+ Invite-based cohorts for structured feedback
+
+ -
+
+ Public signup (planned)
+
+ -
+
+ Offline package download (researching)
+
+
+
+
+ Request an invite
+
+
+
+
+
+
Open source
+
+
+
+ Self-host & contribute
+
+
+ Clone the repo, run Docker and modify the controller logic. Ideal for researchers, virtual airlines or
+ devs who want a fully local stack.
+
+
+ 0€ / always
+
+
+ -
+
+ Nuxt UI, Node services, STT/LLM/TTS pipeline – all open
+
+ -
+
+ Decision tree & prompts ready for experimentation
+
+ -
+
+ Plugin SDK hooks for future sims (X-Plane, FlightGear)
+
+ -
+
+ Managed hosting or SLA
+
+ -
+
+ Cloud voice/STT credits included
@@ -683,107 +775,16 @@
-
-
-
-
- Recommended
-
-
-
-
Hosted – learning mode
-
- We cover the base costs so you can train with all fundamental features. For live ATC you provide your
- own OpenAI API key – we only use it for the background radio requests.
-
-
- 0€ / beta
-
-
- -
-
- Learning modules & core features included
-
- -
-
- Managed updates handled by us
-
- -
-
- Zero setup – ready to train
-
- -
-
- Shared team environments
-
- -
-
- Live ATC usage covered by us
-
-
-
-
- Join the waitlist
-
-
-
-
-
-
Teams
-
-
-
- Hosted – community server
-
-
- For virtual airlines and groups that want to practise together. We are testing dedicated environments
- – currently also €0 and powered by your own API key.
-
-
- 0€ / beta
-
-
- -
-
- Shared sessions & multi-role practise
-
- -
-
- Managed environment & updates
-
- -
-
- Roadmap shaped by team feedback
-
- -
-
- Live ATC usage covered by us
-
- -
-
- Full infrastructure control
-
-
-
-
- Get in touch
-
-
-
- Direct VATSIM integration is on hold until licensing is clarified. We stay aligned with the network
- guidelines before enabling any live connectivity.
+ Live ATC alpha runs offline-first while we research licensing for networks such as VATSIM and IVAO. We will
+ only enable direct connectivity once community rules and legal reviews are satisfied.
- In the meantime we focus on offline training flows and roadmap voting to decide which learning content
- launches next.
+ Until then we double down on the state machine, simulator plug-ins and new Classroom scenarios – shaped by
+ roadmap votes and alpha feedback.
@@ -853,37 +854,37 @@ POST /api/route/taxi
- How it works
+ Radio loop in four tightly controlled stages
- Audio in → understanding → response out. Designed for low latency and clean radio discipline.
+ Every transmission passes through deterministic checkpoints so phraseology stays believable and safe.
-
- 1 · ASR
+
+ 1 · Capture
-
Streaming speech-to-text tuned for radio.
+
Push-to-talk audio plus simulator telemetry stream into the engine.
-
- 2 · NLU
+
+ 2 · Understand
-
LLM understands intent, context and state.
+
Whisper-class STT normalises radio noise; the LLM interprets intent.
- 3 · Logic
+ 3 · Decide
-
Rules, flight data, taxi routing, validation.
+
A curated state machine enforces valid clearances and cross-checks flight data.
- 4 · TTS
+ 4 · Speak
-
Natural voice-out with accurate numbers.
+
Coqui/Piper TTS deliver regionalised voices with crisp numbers.
@@ -1084,11 +1085,11 @@ POST /api/route/taxi
- How affordable is “Hosted – Basic”?
+ How do I access the Classroom?
- Current target is ~€4–5 per month, final pricing after cost benchmarking. We will share the results
- transparently on the blog.
+ The Classroom is invitation-only during alpha. Join the waitlist and mention “Classroom” or email
+ info@opensquawk.de to request an invite.
@@ -1105,8 +1106,8 @@ POST /api/route/taxi
OpenSquawk
- Open-source, low-cost AI ATC for flight simulators. Alpha prototype available – basic coding skills
- recommended.
+ OpenSquawk builds Live ATC and Classroom training as open-source projects: speech-to-text, LLM-guided
+ state machine and natural TTS ready for sim pilots.
- Vision
+ Live ATC
-
- Learning path
+
+ Classroom
- Pricing
+ Product lineup
@@ -1226,9 +1227,10 @@ interface ExtendedNavLink extends NavLink {
}
const navLinks: NavLink[] = [
- {label: 'Vision', to: '#features'},
+ {label: 'Live ATC', to: '#features'},
+ {label: 'Classroom', to: '#classroom'},
{label: 'Roadmap', to: '#roadmap'},
- {label: 'Plans', to: '#pricing'},
+ {label: 'Lineup', to: '#pricing'},
{label: 'Get involved', to: '#contributing'},
{label: 'FAQ', to: '#faq'},
]
diff --git a/content/news/alpha-prototype.md b/content/news/alpha-prototype.md
index b213147..b344a25 100644
--- a/content/news/alpha-prototype.md
+++ b/content/news/alpha-prototype.md
@@ -1,33 +1,39 @@
---
title: "Alpha prototype ready for early testing"
date: "2025-09-15"
-summary: "Our first OpenSquawk alpha build runs locally for MSFS and shows where community-driven AI ATC is heading."
+summary: "Our first Live ATC loop now runs end-to-end: push-to-talk audio, state machine decisions and natural voice replies."
---
-We have stabilised the OpenSquawk alpha prototype internally and are now handing it to curious co-developers. The build combines a Nuxt interface with Node services for speech-to-text, decision logic and TTS. Everything runs locally as long as you bring a bit of terminal experience.
+The first OpenSquawk alpha is finally in the wild for contributors. It wires the entire Live ATC loop together:
+press your simulator push-to-talk key, we capture the audio, run Whisper-class speech-to-text, let the LLM pick a
+legal response from our state machine and answer through Coqui/Piper voices. Everything runs locally so you can study
+and tweak every step.
-## What to expect
+## What ships in the alpha
-- Self-host setup: `yarn install`, fill your `.env`, then `yarn dev` or `docker compose up` for the full stack.
-- Simulator focus: Microsoft Flight Simulator (MSFS) first; X-Plane is already in the concept phase.
-- Target image: community-driven features so VATSIM training stays realistic and hosting remains affordable.
+- **Live ATC core:** Streaming PTT audio into the controller, including intent understanding and rule-checked replies.
+- **Telemetry bridge:** The MSFS 2020 plug-in mirrors heading, altitude, flight plan legs and radio stack into the
+ decision engine so the controller can vector or warn even without pilot input.
+- **Classroom carry-over:** The existing listening drills stay available for invitees – Ground and Departure packs help
+ you test comprehension before flying with Live ATC.
## Prerequisites
-- Basic knowledge of Node/Nuxt (reading logs, updating packages, configuring `.env`).
-- Access to MSFS (PC) for the first radio experiments.
-- Willingness to document issues and ship small tweaks via pull request.
+- A Windows MSFS 2020 install and a microphone/PTT setup in your sim.
+- Comfort with Node/Nuxt tooling (`yarn install`, `.env` wiring, `yarn dev` or `docker compose up`).
+- Willingness to log findings, share radio snippets and propose rule updates.
-## How you can help
+## How to help
-- Test the alpha build and report findings as issues – ideally with logs or quick screenshots.
-- Check the `help-wanted` issues for concrete tasks aimed at Node/Nuxt devs, ATC SMEs, testers and infra/cost benchmarking.
-- Share feature ideas directly in the roadmap or email us at [info@opensquawk.de](mailto:info@opensquawk.de).
+- Fly short circuits with the alpha controller, then file issues with timestamps, transcripts or audio.
+- Extend the decision tree with regional phraseology or additional branches (missed approach, pattern work, VFR).
+- Record Classroom feedback so we can refine the answer keys and scoring UX.
-## Next steps
+## Next milestones
-- X-Plane plug-in as the next milestone.
-- Iterate learning modules (Ground → Departure → Arrival → VATSIM).
-- Benchmark hosting costs transparently and share them on the blog.
+- Polish the telemetry plug-in for MSFS 2024 and begin the X-Plane bridge prototype.
+- Add proactive ATC calls (spacing alerts, runway occupancy checks) triggered purely from flight-state changes.
+- Expand Classroom with Arrival scenarios and a lightweight dashboard for instructors.
-Thanks for every piece of feedback – together we can turn OpenSquawk into open-source, low-cost AI ATC for flight simulators.
+Thank you for pushing the very first iteration of Live ATC forward – every log and suggestion keeps the project honest
+and grounded in real-world procedures.
diff --git a/content/news/runtime-hardening.md b/content/news/runtime-hardening.md
index 9f23e6d..971e0a4 100644
--- a/content/news/runtime-hardening.md
+++ b/content/news/runtime-hardening.md
@@ -1,36 +1,48 @@
---
-title: "Runtime hardening & safer inputs"
+title: "Runtime hardening for Live ATC"
date: "2025-09-18"
-summary: "A new configuration hub, secure audio uploads and stronger passwords make OpenSquawk more robust."
+summary: "The Live ATC alpha now validates PTT audio, centralises config and guards Classroom accounts with stronger inputs."
readingTime: "3 min read"
---
-We worked across the backend, runtime config and onboarding today to make OpenSquawk more resilient. Three workstreams were in focus: reproducible configuration, clean audio inputs for the radio workflow and tighter protection for user accounts.
+Today’s update is all about resilience for the Live ATC pipeline and the Classroom invite system. We tightened how
+runtime values are loaded, cleaned the push-to-talk ingestion path and refreshed onboarding checks so alpha access
+stays tidy.
## Highlights
-- **Central runtime configuration:** All sensitive keys (OpenAI, TTS, Piper & Speaches) now flow through a shared helper. Misconfigurations show up instantly with clear error messages.
-- **Safer radio inputs:** The PTT API now accepts validated base64 audio up to 2 MB and standardises unknown formats to WAV before Whisper takes over.
-- **Stronger passwords:** Registration checks email format and password quality (length, letters/numbers, special characters) so alpha access is not created with trivial credentials.
+- **Unified runtime config:** Every key (Whisper, local LLM, Coqui/Piper, simulator bridge) now flows through
+ `server/utils/runtimeConfig.ts`. Missing values surface with precise error messages before the stack boots.
+- **Safer push-to-talk uploads:** The radio endpoint accepts only validated base64 audio up to 2 MB, normalises
+ everything to WAV/mono and rejects suspicious payloads before they reach Whisper.
+- **Stronger accounts:** Waitlist and Classroom invites now require solid passwords and validated emails, keeping the
+ closed alpha manageable.
## Details
-### Runtime configuration tidied up
+### Runtime configuration tightened
-A new utility (`server/utils/runtimeConfig.ts`) encapsulates every runtime variable. The `OpenAI` and TTS clients consistently pull keys, models, voice defaults as well as Piper/Speaches switches from there. The server now stops with an explanatory error if `OPENAI_API_KEY` is missing – better to fail early than silently throw 500s.
+The new helper checks every secret up front and exposes defaults for local development. Live ATC services now share the
+same source of truth for model names, TTS voice selections and plug-in ports, which means fewer mismatches when swapping
+between Docker and bare-metal setups.
-### Audio endpoints hardened
+### Push-to-talk ingress hardened
-The push-to-talk route validates base64 input, caps file size at a practical 2 MB (~60 seconds of radio) and enforces known audio formats. That reduces the risk of memory spikes and ensures FFmpeg only kicks in for real conversions. At the same time, TTS endpoints now read their settings from the runtime config and respect local Piper ports and Speaches base URLs.
+The `/api/radio/ptt` route sanitises payloads: it verifies base64 structure, caps file size to a realistic
+push-to-talk clip and converts formats through FFmpeg only when needed. If the payload fails validation we respond with
+clear 400 errors so testers can retry quickly.
-### Onboarding secured
+### Classroom onboarding tightened
-Registration immediately rejects invalid input: wrong emails, short passwords or missing special characters now return clear error messages. Test accounts stay manageable and security standards rise without slowing the flow.
+Invite-only accounts now go through the same validation logic as the waitlist: incorrect emails, weak passwords or
+missing consent checkboxes stop the flow immediately. That keeps the Classroom cohorts small enough for meaningful
+feedback.
-## Outlook
+## What’s next
-- Connect the Hotjar/analytics opt-in to the new config logic.
-- Mirror the same password guidelines for login (including feedback UI).
-- Consider processing larger audio files asynchronously if long-form transcripts become interesting.
+- Expose telemetry bridge status in the UI so testers can confirm MSFS data is streaming.
+- Mirror the new validation for future X-Plane and FlightGear plug-ins.
+- Add long-form transcription support for Classroom scenario creation (async processing).
-If you have more hardening ideas, feel free to open issues or send PRs directly!
+Hardening isn’t glamorous, but it makes every Live ATC exchange more reliable. Thanks for testing and filing detailed
+bug reports!