iArt.ai
AI 모션 그래픽 소프트웨어, 누구나 사용할 수 있는 After Effects 대안, 텍스트 프롬프트로 몇 분 안에 애니메이션·설명 영상 제작
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
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:
여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗