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

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 IfThe 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


