docs/codecanyon-package-release.md.CodeCanyon Package Release Guide
RevenuePilot CRM ships marketplace release artifacts from packages/. Build the package from a clean working tree when possible, after migrations, demo seeding, browser QA, and command health checks have passed.
Release Folder
The package builder creates this structure:
packages/
revenuepilot-crm-codecanyon-v1.0.0/
revenuepilot-crm-v1.0.0-complete.zip
revenuepilot-crm-v1.0.0-source.zip
revenuepilot-crm-v1.0.0-demo.zip
README-FIRST.txt
release-manifest.json
checksums-sha256.txt
documentation/
screenshots/
demo-online/
Buyer ZIPs
complete.zipis for shared hosting and cPanel buyers. It includes a fresh productionvendor/tree fromcomposer install --no-dev --optimize-autoloader, compiled assets, application source, installer, docs, and a clean Laravel storage skeleton.source.zipis for developers. It excludesvendor/and compiled assets, so the buyer must run Composer and NPM.demo.zipcontains the online demo checklist, environment template, demo credentials, screenshots, and the demo seed flow. It does not include a raw database dump.
Exclusions
Every package must exclude .git, .env, real credentials, node_modules, generated logs, cache, sessions, local storage uploads, test browser captures, private keys, database dumps, dev Composer packages, and oversized documentation videos.
The HTML docs include documentation/pages/asset-licenses.html for exact Creative Tim Material Dashboard v1.0.7 attribution, icons, fonts, images, and bundled vendor asset attribution.
Submission Links
Fill these in the Envato upload form and marketplace copy after the user-hosted demo/docs are live:
| Field | Value before upload |
|---|---|
| Public documentation URL | Set during final upload |
| Live preview URL | Set during final upload |
Final submission fails if either hosted link is missing. Do not hardcode fake public documentation or live preview URLs into the package.
Use the package builder URL inputs for the final package only. If the documentation is hosted under the same domain, the default convention is the clean live preview base URL plus /documentation/.
Marketplace Claims
Use evidence-based wording for v1.0.0:
Stripe and PayPal sandbox-tested payment workflowswebhook signature hardeningMeta and Google Ads readiness and approval workflowsLaravel Reverb-ready realtime chat, enabled when Reverb credentials and the worker are configuredQuickBooks and Xero accounting sync, sandbox/configuration-ready with live sync disabled by defaultproduction mailbox import settings with IMAP/OAuth fields, UID/message-id dedupe, and import logs; configure later by defaultprovider configuration prepared for buyer setupLive tested,Sandbox tested,Configuration-ready, andPlannedonly as shown by/crm/marketplace-pack/comparison
Do not claim production payment processing, production ad-account mutation, production accounting mutation, or live mailbox import until the matching provider tests, credentials, and upload evidence are available. Use docs/revenuepilot-sales-enhancement.md as the source of truth for provider claim levels and required environment keys.
Run the reviewer text scan before the final build:
.\scripts\check-codecanyon-reviewer-readiness.ps1
Build Command
.\scripts\build-codecanyon-package.ps1 -Version 1.0.0
Run the deeper test gate when preparing the final upload:
.\scripts\build-codecanyon-package.ps1 -Version 1.0.0 -RunTests -DocumentationUrl "https://demo.company-domain.com/documentation/" -LivePreviewUrl "https://demo.company-domain.com" -FinalUpload
-FinalUpload rejects missing, fake, localhost, /public, and placeholder URLs. It also runs the final readiness scan against the generated release folder after ZIP and checksum creation.
Online Demo
Use the demo ZIP alongside the complete ZIP on a staging domain. Install the app, choose demo seed from the installer or run php artisan crm:demo-seed, then verify:
php artisan crm:sync-support-mailboxes
php artisan crm:sync-accounting-providers
php artisan crm:run-recurring-billing
php artisan crm:sync-payment-gateways
php artisan crm:retry-payment-events
php artisan crm:portal-readiness-check
For realtime chat demos, configure Reverb and run the Reverb server alongside the queue worker. If Reverb is not configured, market chat updates as polling fallback/configuration-ready only.
Demo credentials:
| Role | Password | |
|---|---|---|
| Admin | admin@ovion.tech | Demo@12345 |
| Manager | demo-manager@ovion.tech | password |
| Staff | demo-agent@ovion.tech | password |
| Client | apex-client@revenuepilot.test | password |
Before screenshot capture, open /crm/demo-studio and run the Full Product Tour, Portal Client Tour, and Revenue & Billing Tour. The tour panel is draggable/minimizable and stores progress locally; use Clear Tour Progress to reset tour state only.
Final Screenshot QA
After the staging demo is complete, recapture the marketplace screenshots into the root screenshots/ folder. This folder is the source of truth for documentation and CodeCanyon packages; scripts/build-codecanyon-package.ps1 copies it to packages/.../screenshots/ and regenerates the package manifest with the hosted live preview URL.
Required screenshot set: 20 desktop pages in both dark/night and light/day themes for 40 PNGs total: staff login, CRM dashboard, today workspace, leads, deal board, companies, projects, task board, invoices, payment gateways, support inbox, support tickets, delivery notes, system health, setup checklist, marketplace comparison, production runners, white-label preview, portal dashboard, and portal tickets.
php artisan crm:demo-seed
node scripts/capture-marketplace-screenshots.mjs
Before upload, confirm dark and light themes, desktop viewport readability, KPI cards, broken images, sidebar overlays, placeholder captions, stale tour state, and RevenuePilot CRM branding. The builder writes screenshots/screenshot-manifest.json; final upload mode fails when the manifest or required screenshot set is missing.
Envato Review Notes
The package follows the current Envato guidance to keep item files organized, include English HTML documentation, provide source code, and avoid placing all scripts/images/docs in the root. Verify the latest Envato rules immediately before upload:
- https://help.author.envato.com/hc/en-us/articles/360000471583-Code-Item-Preparation-Technical-Requirements
- https://help.author.envato.com/hc/en-us/articles/360000424863-Item-Presentation-Requirements
- https://help.author.envato.com/hc/en-us/articles/360000471066-Item-Information-and-Metadata-Requirements