PageSourceSearch

https://blindlock.app/assets/bl-lifetime-config.js?v=8ad73f63b6cd

js blindlock.app collected 2026-10-04 12:00:35 UTC 5,684 bytes, 106 lines download raw bytes

1window.BlindLockLifetimeCheckout = {
2  // Der Vorflug (website-ops/tools/launch-preflight.mjs) laesst `live` nur mit
3  // dieser Erklaerung durch. Sie ist die bewusste Aussage "dieser Stand ist der
4  // oeffentliche", nicht bloss ein Schalter mehr.
5  environment: 'production',
6
7  // The one switch that opens the shop. `preview` shows prices and the
8  // founders list and never links to a checkout. `live` links every phase to
9  // the hosted checkout below — flip it only when the merchant account can
10  // take real money AND there is something to download.
11  launchMode: 'live',
12
13  // Checkout: hosted links only. Every entry must point at the Merchant of
14  // Record's own checkout page. No third-party payment JavaScript is loaded
15  // into our documents — see de/checkout.html for why.
16  // Incomplete config never charges — UI stays in preview.
17  //
18  // Split by page language on purpose. Each link carries `lang` as Polar
19  // metadata; that metadata decides the post-purchase page AND the language of
20  // the licence mail. A German buyer on an English link gets an English mail
21  // and the English success page. Source of truth for these six addresses:
22  // website-ops/docs/polar-kauf-links.md.
23  checkoutUrls: {
24    de: {
25      phase1: 'https://buy.polar.sh/polar_cl_qLDi6nwsuF7uDMLSdWzMwqhoeZpFIoApNk7h33ASZy8',
26      phase2: 'https://buy.polar.sh/polar_cl_lwFnMZekz0IxPeux5vNN5Rp7vqpxi15S4dEeg3z1zRI',
27      phase3: 'https://buy.polar.sh/polar_cl_nRhiIm5H1ULHZlV1ivZo4LdX9UnROgjJ4LV9h4bhF8d'
28    },
29    en: {
30      phase1: 'https://buy.polar.sh/polar_cl_wWUgrpr8W9HuZQqg3DDYWDEO4iiDO6sSfXeAJ1oFRA4',
31      phase2: 'https://buy.polar.sh/polar_cl_ev2JveAGH5qzyKokNKweVGSX971VIoAtxRlRl3rycvW',
32      phase3: 'https://buy.polar.sh/polar_cl_WxczxnGIRDvhDFMHWNtKJS3d3mkdGdtlkZyr6299uma'
33    }
34  },
35
36  // Locale success pages. The same URLs must be configured as the post-purchase
37  // redirect in the Merchant of Record's dashboard.
38  // Ohne .html: die Website leitet jede .html-Adresse auf die kurze Form um
39  // (308, gemessen am 28.08.2026). Nach dem Bezahlen soll niemand einen
40  // Umweg gehen. Und ohne die Vorgangsnummer, die der Haendler anbieten
41  // wuerde: die Seite zeigt jedem dasselbe und speichert nichts -- eine
42  // Kennung in der Adresse landet im Browser-Verlauf und in jedem
43  // Protokoll, durch das sie laeuft.
44  successUrls: {
45    en: 'https://blindlock.app/en/purchase-success',
46    de: 'https://blindlock.app/de/kauf-erfolgreich'
47  },
48
49  // Real store/binary URLs only — leave empty until each build ships.
50  downloadUrls: {
51    windows: 'https://dl.blindlock.app/BlindLock_1.8.8_x64-setup.exe',
52    macos: 'https://dl.blindlock.app/BlindLock_1.8.8_aarch64.dmg',
53    linux: 'https://dl.blindlock.app/BlindLock_1.8.8_amd64.deb',
54    // iOS und Android sind NICHT ausgeliefert: es gibt keine Store-Eintraege.
55    // Leer lassen, bis es sie gibt — eine erfundene Adresse waere schlimmer als
56    // eine leere. Sie stehen deshalb auch nicht in `launchPlatforms` unten.
57    ios: '',
58    android: ''
59  },
60
61  // Launch surface; live cutover expects a HTTPS URL per platform above.
62  // Nur die Plattformen, fuer die oben eine echte Adresse steht. iOS und
63  // Android bleiben draussen, bis ihre Store-Eintraege existieren; sie sind auf
64  // der Website weiterhin als dauerhaft kostenlos beschrieben, aber sie sind
65  // nicht Teil dessen, was dieser Start ausliefert.
66  launchPlatforms: ['windows', 'macos', 'linux'],
67
68  // Phase math + urgency copy.
69  //
70  // `availabilityUrl` is where the page gets the REAL number: the licence
71  // server answers `{"sold": n}` counted from the records that mint the
72  // licences, so the counter on the pricing page cannot drift from what was
73  // actually sold. It is the only honest way to show scarcity, and the page
74  // shows it prominently — so it must never become a hand-edited constant
75  // here. Leave the address in place.
76  //
77  // `sold` is only the fallback for the seconds before the first answer
78  // arrives, and for a visitor whose network eats the call. It is 0 because
79  // that is the safe direction: a page that briefly shows more availability
80  // than there is has undersold; one that shows less has lied.
81  //
82  // The caps are OURS, not the merchant's — the merchant has no idea a phase
83  // exists. Changing one changes what the page promises, nothing else.
84  lifetime: {
85    phases: [
86      // `cap` is what the phase actually holds, `shown` is what the page
87      // advertises. They differ by one on purpose: the founder's own
88      // end-to-end test purchase consumes a licence that was never for
89      // sale, so 100 stay available to customers either way. Without
90      // this the page would read 99 of 100 forever after that test.
91      { phase: 1, cap: 101, shown: 100, price: 49 },
92      { phase: 2, cap: 350, price: 89 },
93      { phase: 3, cap: 550, price: 109 }
94    ],
95    sold: 0,
96    availabilityUrl: 'https://api.blindlock.app/api/v1/lifetime-availability',
97    pollSeconds: 60
98  },
99
100  // Pre-launch waitlist (Brevo DOI). Empty actions → coming soon. Not checkout.
101  founders: {
102    formActionEn: 'https://0f78531c.sibforms.com/v2/serve/MUIFAASQEz7uSdN5l0oZll0o33nj9EbKBXjguKMdFd0cM2B-ZfAACBpzONuqcQQzy1DwgJenDJNrvnAs6QDKo8oUSp8pLkGgKFISuD-O5jec6-Fr1kqxY1pTNYQS099Iyl-Era_s76kERCzoDsqMEgZ6SJyFWdaOf7U0V_8M59ESkicPAdVyhKPxTggx4vlwGQd-xxfe0BlZko0DgQ==',
103    formActionDe: 'https://0f78531c.sibforms.com/v2/serve/MUIFAAWjFwBXI6gfLozgRy48XteR32LufOV5NOdYhaA6tVPJWUeMPd0sXFhEECZZsGLFYiPI5F_4o2bJ9METLVzG51rmss5KwmEiif7Rty0JowCQb_UiR8URkHAVHaJthudbJ-88g_yYI5a9es2h_fQ8jKexuIwZon4fkOwTvHqf8VYuBKyUka6xyBgPRViJT_ssDRz4psO_vE1LjA==',
104    emailField: 'EMAIL'
105  }
106};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.