All posts

Change what your app says without a new build: remote texts and slides

Send a welcome line, a support link, a notice or a row of announcement slides to every copy of your program from your PWF Auth panel, with a different text for your VIP customers, and no new build to ship

2 min read

Your program says things that change more often than your code does: a welcome line, the support link, a notice about maintenance, a "version 2.0 is out" banner, a weekend sale. Shipping a new build for each of those is slow, and half your customers never update anyway. With Texts & slides, your program receives that content from your panel every time it signs in, and you change it whenever you like

Texts

On Texts & slides, add a text:

  • Name: for you, like "Welcome message"
  • Key: what your program reads, like welcome_message. It's made from the name, and can't change after saving, because your program depends on it
  • Text: up to 100 KB, sent exactly as you write it, line breaks included
  • Send it to my apps: switch it off to keep a text in the panel without sending it

A different text for some customers

A licence key can get its own version of a text, for example a different welcome line for your VIP customers, or a personal note for a reseller. Open the text, enter the licence key and its own text, and save. The program on that key gets its own version, everyone else gets the app's text

Slides

A slide is a picture with a title and an optional line: a new version, a sale, a tip. Upload a JPG, PNG, GIF or WebP up to 5 MB, or paste a link to one. Animated GIFs keep moving, and wide pictures of about 560 × 220 look best. Order the slides the way your program shows them, and hide one without deleting it

Read them in your program

Texts and slides arrive with every sign-in, in the texts and slides fields of the reply. To read them again later, without signing in again:

' all texts for this key (its own values already applied)
Dim texts = (Await client.GetTextsAsync()).GetStringMap("texts")
If texts.ContainsKey("welcome_message") Then lblWelcome.Text = texts("welcome_message")

' the slides, in order
Dim r = Await client.GetSlidesAsync()
Dim slides As JsonElement
If r.TryGetProperty("slides", slides) Then
    For Each s In slides.EnumerateArray()
        Dim title = s.GetProperty("line1").GetString()
        Dim picture = s.GetProperty("image_url").GetString()
    Next
End If

The Python client has get_texts() and get_slides(), Node.js getTexts() and getSlides(), and the SDK generator writes them for other languages

Only for paying customers

Only active keys get texts and slides. A banned, paused or expired key gets none, so content meant for customers stays with customers

Ideas

  • A support link you can change when you move from Telegram to Discord
  • A maintenance notice before a big update, removed when it's done
  • A slide for every new version, with a link to the update
  • A thank-you line just for customers who bought the lifetime licence

Need a value per customer that your program can also write? That's what user variables are for. The full guide is in Texts & slides

Protect your app for free

Licence keys, customer accounts and the kill switch, in every language. Make an account and sign in with your first key in a few minutes

Create a free account