iArt.ai
AI motion graphics software — the After Effects alternative anyone can use. Create animations and explainer videos from a text prompt in minutes.
Run worship slides in English, Malayalam, Hindi, Tamil, Telugu, and more — one free app for songs, scripture, media, stage display, and livestreams.
MediaTypeScript · CSSGitHub @zacstudiosOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Marketing site for StageFlo, published on GitHub Pages via static export.
out/)npm install
npm run dev
npm run build
This outputs static files to out/.
main..github/workflows/deploy.yml.out/ artifact is deployed to GitHub Pages.This repo runs an automated secret scan on pushes and pull requests using gitleaks.
Workflow:
.github/workflows/secret-scan.ymlIf a secret-like value is committed, the workflow fails so it can be removed before merge.
Local pre-commit scan:
npm run hooks:install once per clone.npm run security:scan:staged.This repo now includes a static offline page at /offline/ for StageFlo public links.
If you want *.stageflo.app tunnel URLs to redirect there when the desktop app or Cloudflare tunnel is down, use a Cloudflare Worker rather than a plain Redirect Rule. Redirect Rules run before the origin response is known, so they cannot reliably react to tunnel outage responses.
Included example worker:
scripts/cloudflare-tunnel-offline-worker.mjsRecommended Cloudflare setup:
scripts/cloudflare-tunnel-offline-worker.mjs.OFFLINE_PAGE_URL=https://stageflo.app/offline/.*.stageflo.app/*.stageflo.app/* served normally so the offline page itself never loops.The worker passes through healthy requests and issues a 302 redirect to /offline/ when the tunnel returns a common origin-down status (502, 503, 504, 530) or the fetch itself fails.
The StageFlo desktop app reports anonymous install and launch activity to Supabase so you can see how many unique installs are active and which app versions are currently in use.
Setup steps:
The desktop app stores a persistent anonymous install ID in user data and reports the current version on every packaged launch. The latest active version for each install is written to app_installations.last_version.
Telemetry also includes tunnel metadata (tunnel_mode, tunnel_active, tunnel_hostname) so you can analyze named/quick tunnel adoption.
This site is static on GitHub Pages, so downloads can only be gated with a client-side form that posts to an external endpoint.
The preferred setup is a Supabase Edge Function that receives the lead form payload and writes to a download_leads table.
Setup steps:
NEXT_PUBLIC_SUPABASE_FUNCTION_URL with your deployed function URL.main to trigger deploy.Expected function URL format:
https://<project-ref>.functions.supabase.co/capture-download-lead
Feedback endpoint format:
https://<project-ref>.functions.supabase.co/capture-feedback
The GitHub Pages deploy workflow already injects NEXT_PUBLIC_SUPABASE_FUNCTION_URL into the site build via .github/workflows/deploy.yml.
CLI shortcut from this repo:
SUPABASE_ACCESS_TOKEN=... \
SUPABASE_PROJECT_REF=... \
SUPABASE_DB_PASSWORD=... \
npm run setup:supabase
For a brand new project, provide SUPABASE_ORG_ID and optionally SUPABASE_REGION / SUPABASE_PROJECT_NAME instead of SUPABASE_PROJECT_REF.
The helper script will:
capture-download-lead, capture-feedback, send-onboarding-sequence, capture-app-usage, usage-admin, and free-spots-count with --no-verify-jwt so the public website and desktop app can call them.NEXT_PUBLIC_SUPABASE_FUNCTION_URL.Optional hardening for tunnel-register:
TUNNEL_REGISTER_TOKEN as a Supabase function secret.x-tunnel-token: <TUNNEL_REGISTER_TOKEN>.capture-download-lead sends the first welcome email immediately. The remaining onboarding emails (day 2, day 4, day 7) are sent by send-onboarding-sequence.
Run it manually (dry run):
curl "https://<project-ref>.functions.supabase.co/send-onboarding-sequence?dry_run=true&batch=100" \
-H "x-admin-key: <ADMIN_API_KEY>"
Run it live:
This is the beginning of the README. Read the rest at the original. Read the full README ↗