Commit Graph
1252 Commits
Author SHA1 Message Date
BFlat 8e754b4b8f website: landing buttons and footer cta updates (#1607)
- Renamed the "Supercharge Credits" button to **Use on Web** (globe
icon) in the hero and bottom CTA. Routes subscribers to the webapp
homepage, everyone else to `/pricing`.
- Removed the "Create image / Create video" links from both sections.
- Split Discord + GitHub into a separate "Open source &
community-driven" CTA (subtle container) above the "Ready to craft?"
CTA.
2026-06-05 14:47:30 +07:00
BFlat cbda6b7b1f fix(webapp): prevent iOS caret loss in mobile prompt input (#1605)
MentionTextarea's DOM-sync effect rewrote innerHTML under the live caret
whenever buildHTML's identity changed, detaching the cursor on iOS
Safari mid-typing. Skip the rewrite when focused and the DOM already
matches value, and memoize colorMap in MobilePromptForm to stop the
per-render churn.
2026-06-04 13:05:30 +07:00
BFlat 1d8f64dd23 webapp: midjourney icon and name mappings (#1602) 2026-06-02 22:58:33 +07:00
BFlat 2a49226479 mobile view update (#1601)
- Separate mobile generations page
- Bottom mobile navbar
2026-06-02 20:36:02 +07:00
BFlat c5dcf0e155 app styling updates (#1596)
darker tone
2026-06-01 18:17:14 +07:00
BFlat e39fe7c106 textToVideoSupported api field (#1593) 2026-06-01 01:30:24 +07:00
bflatastic 5d4f307320 model selector width update 2026-05-30 01:03:13 +07:00
bflatastic c589f20110 popover updates for info tooltip 2026-05-30 00:42:55 +07:00
BFlat 58d4f4ff12 webapp: extra info for models (#1588) 2026-05-30 00:30:14 +07:00
bflatastic 9598a86dcd webapp: recreate failed jobs 2026-05-29 06:40:54 +07:00
bflatastic cfd60a4d11 webapp: create row card styling fixes and copy prompt on failed and in progress rows 2026-05-27 14:30:29 +07:00
BFlat 2b0a692634 webapp: create pages list view (#1581)
Create pages now have a toggle for grid/list view depending on
preference
2026-05-27 14:14:36 +07:00
bflatastic 2b0c5b9085 webapp: revert previous google flow fix - check subscription instead 2026-05-26 23:39:04 +07:00
BFlat 006068a4c5 webapp: route new Google SSO users to the welcome page (once) (#1579)
After Google sign-in, brand-new accounts now land on /welcome instead of
the set-password page; returning users go to their normal destination.

"New user" is detected via the SSO response's
username_not_yet_customized (forced to false by the backend for
returning Google logins, so repeat logins never re-trigger it). A
per-user-token localStorage marker guards against the rare
email→Google-link edge case so welcome shows at most once per account.

- session.ts: add consumeNewUserWelcome(isNewUser) helper
- login / signup-form / signup-cta-modal: route via the helper
2026-05-26 23:02:44 +07:00
BFlat ee4a7f7e2f webapp: flow update password setting completely optional (#1578) 2026-05-26 22:28:27 +07:00
bflatastic 5d100a60e9 website: landing font fix 2026-05-26 21:56:09 +07:00
BFlat c36c0d283c webapp: mobile responsive settings modal (#1576)
- settings modal is now full height and width on mobile with side tabs
laid horizontally at the top
2026-05-26 20:51:57 +07:00
BFlat a8f464e7ec webapp: only render background decoration on desktop (not mobile) for performance 2026-05-26 20:35:21 +07:00
BFlat 2d6cb2f03c fix test 4: revert glass blue styling 2026-05-26 20:20:21 +07:00
BFlat b82029484a fix test 3: mobile freeze 2026-05-26 20:05:21 +07:00
BFlat 73171cd3a8 fix: stop mobile freeze when overlays open over the prompt box
On mobile Safari, opening any overlay (mobile menu, signup modal) over the
create pages froze the UI for 5-10s. Cause: the fixed prompt box uses the
`.glass` class (`backdrop-filter: blur`), and iOS Safari re-evaluates a
backdrop-filter against the newly composited overlay content, hanging the
main thread. Desktop was unaffected.

- Disable every `backdrop-filter` on mobile (<= 639px) via a universal reset.
- Make `.glass` fully opaque on mobile so dropping the blur is invisible.
- Revert the earlier Google Sign-In deferral attempt in GoogleLoginButton
  (it didn't address the real cause).
2026-05-26 19:55:08 +07:00
BFlat 33be9f1ca4 ## Fix: mobile signup modal freeze (defer Google Sign-In)
**Problem:** On mobile Safari, tapping "Sign up to create" on the create pages froze for 5–10s before the signup modal appeared. Desktop was fine.

**Cause:** The modal mounts Google's GSI sign-in widget (`<GoogleLogin>`), which boots a cross-site iframe to `accounts.google.com`. Mobile Safari's tracking prevention (ITP) throttles that cross-site init for several seconds, and because the widget mounted synchronously when the modal opened, the modal's first paint was blocked behind it. The login/signup pages didn't show this because they mount the widget during a route change, hiding the cost.

**Fix:** Defer mounting the real GSI iframe until after first paint (`useEffect` + `requestAnimationFrame`). The custom "Continue with Google" button shows instantly; the actual Google button hydrates a frame later, off the critical path. The container has a fixed height, so there's no layout shift.

- Centralized in `GoogleLoginButton`, so the login/signup pages benefit too.
- Tradeoff: the Google button becomes clickable ~1 frame later (imperceptible).
- No behavior change on desktop.
2026-05-26 19:34:36 +07:00
BFlat ebe2129b4b webapp: UX, CTA improvements (#1574)
## Signup, credits, and pricing polish

A round of UX improvements around signing up, running out of credits,
and the pricing page.

**Signup**
- Refreshed the signup prompt copy and added a "Continue with Google"
option (same flow as the login/signup pages)
- Added a "Sign up to create" button on the image and video pages for
logged-out visitors

**Create pages**
- Punchier empty-state headlines ("Describe anything. See it in
seconds." for images, "Describe a scene. See it in motion." for video)
- Added a subtle background pattern behind the empty state

**Out of credits**
- New modal that appears when a generation is blocked by not enough
credits
- Subscribers see "Upgrade plan" (hidden if they're already on the top
plan) plus "Buy credits"
- People without a plan get a "Choose a plan" prompt instead

**Pricing page**
- Existing subscribers get a "Buy more credits" shortcut at the top of
the page
- "Contact Us" now opens a small menu to copy the email or open your
mail app

**Cleanup**
- Removed the "Seedance 2.0 is in Early Alpha" warning from the task
queue

**Buy credits modal**
- Restyled the buy credits modal to be more appealing
2026-05-26 16:08:50 +07:00
BFlat 417e915882 webapp: site title for home page 2026-05-26 02:23:08 +07:00
BFlat 6e8a7bf817 webapp: fix google sso not logging user in on mobile safari 2026-05-26 02:19:54 +07:00
BFlat 110f9327d8 webapp: redirect already logged in users back to homepage if they land on login/signup pages 2026-05-26 02:16:10 +07:00
BFlat 19d0813f02 webapp: login signup improvements + Google SSO (#1567)
## Login & Signup improvements + Google sign-in

- **Refreshed login & signup pages** - cleaner two-panel design with a
looping
Seedance 2.0 showcase video alongside the form, the ArtCraft logo, and a
back
button. Tidied up the related password-reset and welcome screens to
match.
- **Sign in with Google** - added a "Continue with Google" button to
both the
  login and signup pages.
- **Set a password after Google sign-up** - first-time Google users are
guided to
create a password (so they can also sign in on the desktop app), then
continue
  to the welcome/pricing page. Returning users go straight in.
- **Account settings** - the password option now says "Set" for accounts
that
don't have a password yet (and skips asking for a current one), and
"Change"
  otherwise.
2026-05-26 01:57:05 +07:00
BFlat 96b6150051 webapp: sd plus models name/icon mappings, promptbox width increase (#1563) 2026-05-25 15:16:04 +07:00
BFlat 1d6d0ec1c3 webapp: grok imagine name/icon mapping, linked max duration for image… (#1562)
… ref mode
2026-05-25 14:23:38 +07:00
Brandon Thomas 88c922314f enqueue grok requests + grok jobs (#1560) 2026-05-24 11:27:25 -04:00
Brandon Thomas 6b5dcc8d35 fix artcraft desktop (#1550) 2026-05-22 16:16:23 -04:00
BFlatandClaude Opus 4.7 c204f05fdb webapp: improvements may 22 (#1548)
- remove small plan text on pricing page
- persist prompt/settings across reloads, add frontend lightbox
references media (audio/video)
- remove topbar for edit 3d page, reclaim vertical space and relocate
scene title rename/right topbar actions

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-22 14:05:19 +07:00
BFlat 9c01f1387a website: add referrals back under profile dropdown 2026-05-22 10:53:34 +07:00
BFlat 934a30c9e1 web/webapp: pricing plan ui update (#1544) 2026-05-21 21:29:28 +07:00
bflatastic b94787e10c webapp: settings ui fixes 2026-05-20 13:20:13 +07:00
bflatastic 01db05c169 website/webapp: flow fixes 2026-05-20 00:41:45 +07:00
bflatastic 6a69c26fa2 website: readd Image/Video navbar links 2026-05-19 23:14:28 +07:00
BFlat a50ce98803 webapp: coming soon model (#1539) 2026-05-19 22:59:34 +07:00
BFlat 8d7b623a96 webapp: demo scene to support image AND video (#1538)
PageScene's top-right preview card now first-classes video alongside
images.

- **New query params**: `?image=<media_token>` and
`?video=<media_token>`. `?image=` is an exact alias for the existing
`?output=` (and `?demo=`), which keep working for legacy/shared links.
- **Toggle when both are set**: a small sliding pill in the card header
switches between the video and image side. Video shows first. The whole
pill is one click target - tap anywhere on it to flip.
- **Video gets native controls**: `<video autoplay muted loop
playsInline controls>`. Wrapper click-to-expand suppresses clicks that
land on the control bar so play/pause doesn't fullscreen the card.
- **Prompt caption follows the active side**: the line under the preview
shows whichever asset (video or image) is currently displayed.
- **Promptbox 3D auto-prefill still uses the image's prompt** only.
Video-only links skip prefill.
- Internal URL builders (splash modal `pickExample`, "See other demo
scenes" overlay) now produce `?image=` URLs. External links with
`?output=` continue to resolve via the parser fallback.
2026-05-19 22:39:22 +07:00
bflatastic 87153de16d webapp: edit-3d page stack "See other demo scenes" and onboarding hint inside the promptbox
Add an `aboveStackSlot` prop to PromptBox3D rendered as the first
child of its `bottom-4 flex-col` stack, and thread a
`promptboxAboveStackSlot` prop through Stage3D / Stage3DBody. The lib
now owns the vertical math, so the webapp's button never overlaps the
prompt input regardless of textarea height — replaces the host-side
ResizeObserver/MutationObserver positioning that was unreliable in
production builds.
2026-05-19 01:27:06 +07:00
bflatastic 4982d3162d webapp: fix "See other demo scenes" promptbox tracking in production builds 2026-05-19 01:07:25 +07:00
BFlat 83cf580a9a webapp: add "See other demo scenes" overlay; fix FOV stickiness acros… (#1536)
…s scenes

Adds an inline overlay above the promptbox in /edit-3d (visible only
when `?output=` is in the URL) for swapping to another curated example
scene. The grid reuses SceneSplashCard + EXAMPLE_SCENES and filters out
the current scene. Position tracks the promptbox stack via Resize- and
MutationObserver so the pill sits 12px above it at any height.

Also resets the lib's camera Zustand state (cameras, selectedCameraId,
focalLengthDragging) on every sceneToken change. save_manager.load-
FromJson only emits CamerasReplacedEvent when scene_json carries a
`cameras` field, so navigating from a scene whose JSON had cameras (e.g.
60mm) into one that omits them left the prior cameras array in the store
and the per-frame tick kept applying its FOV to the new viewport.

OnboardingHelper: nudge the WASD/Look chip up to bottom-72 and drop its
background tint so it stacks cleanly above the new pill.
2026-05-19 00:56:06 +07:00
BFlat 246b189a2a Feature/website to webapp linking (#1535) 2026-05-19 00:15:23 +07:00
BFlat fa4776bb21 webapp: image ref in promptbox click to preview (#1532)
feature: add high-res image preview modal to prompt box

- Added click-to-preview functionality for reference and end frame
images in `ImagePromptRow`.
- Updated `RefImage` interface to include `fullUrl` for fetching
high-resolution library images.
- Populated `fullUrl` for library selections in `create-image` and
`create-video` pages.
- Configured the preview modal to tightly wrap the image so the close
button anchors correctly to the corner.
- Updated the image uploading indicator to use the standardized
`spinner-third` icon.
2026-05-17 12:39:53 +07:00
Tanish Mankuandbflatastic d570aa396c Webapp: Add pagescene support (#1511)
Co-authored-by: bflatastic <bombayapirat@gmail.com>
2026-05-16 12:28:24 -07:00
BFlat 43fcccce65 web/webapp: username, email, password change 2026-05-16 15:12:59 +07:00
Brandon Thomas 7ea0bb0dd2 gpt-image-2 with HD options; refactor image omni gen and pricing pipelines (#1523) 2026-05-15 10:49:56 -04:00
bflatastic 9645efce7d web/webapp download fixes 2026-05-15 20:49:33 +07:00
bflatastic 4a3d239735 web/webapp: fix cors error on file download 2026-05-15 20:42:32 +07:00
BFlat eaf89abb65 web: mobile menu to show referrals link 2026-05-14 14:57:12 +07:00