No description
  • Astro 91.6%
  • CSS 6%
  • TypeScript 2%
  • JavaScript 0.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Michael Davis 7b06fed5c5 Bump APP_VERSION to 0.2.4 (Settings > Updates card + "Not now" fix)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-12 20:16:05 -07:00
.claude tendlore.com: initial site (marketing, pricing, activate/recover) 2026-07-07 17:54:06 -07:00
public Point /buy and pricing at the live Stripe payment link 2026-08-02 09:20:37 -07:00
src Bump APP_VERSION to 0.2.4 (Settings > Updates card + "Not now" fix) 2026-08-12 20:16:05 -07:00
.gitignore tendlore.com: initial site (marketing, pricing, activate/recover) 2026-07-07 17:54:06 -07:00
astro.config.mjs tendlore.com: initial site (marketing, pricing, activate/recover) 2026-07-07 17:54:06 -07:00
CLAUDE.md tendlore.com: initial site (marketing, pricing, activate/recover) 2026-07-07 17:54:06 -07:00
package-lock.json lockfile: peer flag update from npm install 2026-07-07 18:42:01 -07:00
package.json tendlore.com: initial site (marketing, pricing, activate/recover) 2026-07-07 17:54:06 -07:00
README.md Add app screenshots to homepage 2026-08-08 09:55:53 -07:00
tsconfig.json tendlore.com: initial site (marketing, pricing, activate/recover) 2026-07-07 17:54:06 -07:00

tendlore.com

Static Astro marketing + commerce site for Tendlore (a Volarra product). Requires Node >= 22.12.

Dev

npm install
npm run dev        # http://localhost:4322
npm run build      # → dist/
npm run preview

Deploy (manual — no git auto-deploy)

Cloudflare Pages project tendlore, account michael@m-davis.com:

npm run build && npx wrangler pages deploy dist --project-name tendlore

Domains: tendlore.com, www.tendlore.com, tendlore.pages.dev.

Downloads & update feed (R2)

The installer is a Velopack Tendlore-win-Setup.exe that lives inside the update feed folder, so one upload serves first installs and updates:

  • Bucket: tendlore-downloads, custom domain downloads.tendlore.com
  • Feed root: downloads.tendlore.com/updates/tendlore-win-x64/ (must match UpdateService.FeedUrl in the app repo)
  • Upload after pwsh eng/build-velopack.ps1 in the app repo — every file in artifacts/velopack/:
for f in ../tendlore/artifacts/velopack/*; do
  npx wrangler r2 object put "tendlore-downloads/updates/tendlore-win-x64/$(basename "$f")" --file "$f" --remote
done

Shipping a new app version (lockstep)

  1. Bump <Version> in tendlore/Directory.Build.props, build the Velopack release, upload the folder to R2 (above).
  2. Bump APP_VERSION in src/config.ts to match.
  3. npm run build && npx wrangler pages deploy dist --project-name tendlore.

Homepage screenshots (src/assets/screenshots/)

App screenshots used on the homepage (src/pages/index.astro) live in src/assets/screenshots/ and are imported via astro:assets (<Image>), not public/ — Astro optimizes them to webp srcsets at build time and unused files are excluded from dist/ automatically. To swap or add one: drop the PNG in that folder, import it in index.astro, and give it real alt text. Never put raw app screenshots in public/ — anything there ships byte-for-byte and unreferenced, so a screenshot with something sensitive in frame (a phone number, an address) would be silently published even if unused on any page.

Commerce wiring (src/config.ts + public/_redirects)

  • STRIPE_PAYMENT_LINK — the $39 one-time Stripe Payment Link. Its plink_… id must be mapped in the license worker's CATALOG var (studio repo, license-worker/wrangler.jsonc), and the link's after-payment redirect must be https://tendlore.com/activate?session_id={CHECKOUT_SESSION_ID}.
  • public/_redirects /buy — the stable checkout URL the desktop app opens; point it at the same payment link.
  • LICENSE_API_BASE — the shared Volarra license worker (license.volarra.com); /activate and /recover call it from the browser, so tendlore.com must be in the worker's ALLOWED_ORIGINS.

Verify after deploy

curl -sI https://tendlore.com | head -2
curl -sI "https://downloads.tendlore.com/updates/tendlore-win-x64/Tendlore-win-Setup.exe" | grep -i 'HTTP\|content-length'
curl -s "https://license.volarra.com/health"