Skip to content

Goodspeed is in closed beta. Enter your email and we check your invite on the spot: invited accounts start free today, and everyone else joins the waitlist in one click. Get started

Skip to content
Goodspeed

Connect OneSignal to your Goodspeed app

Push notification delivery via OneSignal SDK: token registration, Android channels, and server-side send from Edge Functions. Goodspeed wires OneSignal into every app that needs it at generation time, so you start with a working integration, not a blank config and a documentation tab.

WHAT GETS WIRED IN

Built into every OneSignal build

Every app Goodspeed generates with OneSignal includes these wired integrations from the first build. No manual setup required.

ItemDescriptionStrength
Initialized behind a flagOneSignal.initialize() runs at boot with the app ID from gas.config.ts, and only when push is switched on.Setup
Permission asked after onboardingrequestPermission() fires once someone has seen what the app does, which is where opt-in rates are highest.Interface
Token stored with its platformThe device token lands in the Supabase push_tokens table alongside iOS or Android, so sends can be segmented.Data
Send-push functionAn Edge Function takes a user ID and a payload, looks up the token and delivers through the OneSignal API.Data
Android channels from configNotification channels are created at app start from the list in gas.config.ts, giving people per-channel control in Android settings.Interface

Source: the Goodspeed app foundation · push-notifications

REAL GENERATED CODE

A snippet from a OneSignal integration the pipeline ships

This pattern is lifted from the engineered plumbing that ships inside every Goodspeed app. The studio generates OneSignal integration code like this for every app that includes it, not a placeholder you have to fill in yourself.

  1. OneSignal init

    // lib/onesignal.ts
    export function initOneSignal(): void {
      if (isWeb) return;
      if (!gasConfig.features.pushNotifications.enabled) return;
      const appId = gasConfig.backend.onesignal?.appId;
      if (!appId) return;
      OneSignal.initialize(appId);
      OneSignal.Notifications.addEventListener(
        'click',
        (event) => handleNotificationOpen(event),
      );
    }
GDaily Allergens

Today's log

Gluten
Tree nuts
Shellfish
Dairy
HomeScanLogProfile

START WITH ONESIGNAL

Your OneSignal integration, generated