Skip to main content

max / audiofiles

1.9 KB · 50 lines History Blame Raw
1 # Trial Mode for Audiofiles
2
3 ## Overview
4
5 Allow users to use Audiofiles without a license key by clicking a "I am still testing the software" button. A 30-day countdown tracks usage, but never locks the user out.
6
7 ## Behavior
8
9 ### Before Day 30
10
11 - On launch (or in a license prompt area), show a button: **"I am still testing the software"**
12 - Clicking it dismisses the prompt and grants full access to all features
13 - A small, non-intrusive indicator shows days remaining: `Trial: 23 days left`
14 - The countdown is based on calendar days since first launch, not usage days
15
16 ### After Day 30
17
18 - The software continues to work identically — no features are disabled
19 - The button text changes to: **"I am still "testing" the software :)"**
20 - The days indicator goes negative: `Trial: -4 days`
21 - No nag screens, no popups, no degraded experience
22
23 ## Implementation Notes
24
25 ### Trial State
26
27 - Store `first_launch_date` in local app config (e.g. `~/.config/audiofiles/trial.json` or equivalent platform path)
28 - Calculate `days_elapsed = (now - first_launch_date).days`
29 - Display `days_remaining = 30 - days_elapsed` (goes negative naturally)
30
31 ### UI States
32
33 | State | Button Text | Indicator |
34 |-------|------------|-----------|
35 | `days_remaining > 0` | "I am still testing the software" | `Trial: {n} days left` |
36 | `days_remaining <= 0` | "I am still \"testing\" the software :)" | `Trial: {n} days` |
37
38 ### License Key Integration
39
40 - If a valid MNW/SyncKit license key is entered, the trial indicator and button disappear entirely
41 - Trial mode and licensed mode are mutually exclusive display states — the underlying functionality is identical
42 - This serves as a tech demo for MNW/SyncKit license key validation, not as actual DRM
43
44 ### What This Does NOT Do
45
46 - Does not disable any features
47 - Does not lock the user out
48 - Does not phone home or enforce anything server-side
49 - Does not reset or tamper-proof the trial date (if someone deletes the config, they get another 30 days — that's fine)
50