Videojac — Changelog
User-facing release notes. Most-recent entry on top.
[2026-05-15]
- Added the Templates admin page — browse every template (bundled + your own custom uploads) in one grid with thumbnails.
- Drag-and-drop ZIP upload to add your own custom templates. Each upload lands in your own per-tenant folder and survives every app update.
- One-click Download .zip on any template (bundled or custom) so you can inspect the structure or edit one externally.
- Hide/Show toggle on bundled templates — disabling a template hides it from your customers without deleting it. Survives app updates.
- Duplicate any bundled template into your custom folder, then edit the copy freely while the original stays intact.
- Edit name / category / tier on your custom templates without leaving the page.
[2026-05-14]
- Added a Watch/Read tab on the tutorial page — every lesson now has a written version alongside the video for users who prefer to read.
[2026-05-14]
- Initial release of Videojac as a MyPancho platform app.
- Browser-based video editor with 30+ templates, multi-track timeline, and ffmpeg.wasm export — runs entirely in the customer's browser, no server uploads.
- Per-tenant subscription model: operators wire their own Stripe keys to charge end-users monthly or yearly.
- Customisable plan labels and prices (Free / Pro / Business / Premium by default — rename and reprice from Settings).
- Public sign-up + email/password login at the share URL (works with custom domains via Pancho's domain mapping).
- Per-customer audit log (admin-visible from
/app/videojac/audit).
- Stripe webhook receiver with idempotent event processing.
Internal
- New app folder
apps/videojac/ wraps the existing standalone Reel SPA at apps/videojac/source/reel/.
- saas-kit refactored to read identity + plan from a server-injected
window.__VIDEOJAC_CTX__ instead of localStorage.
- IndexedDB databases (projects, autosaves, secure storage, motion presets) namespaced by customer id to prevent cross-customer bleed on shared devices.
- Stripe secret keys + webhook signing secret stored encrypted at rest via
sodium_crypto_secretbox.