Skip to content

feat: pricing page, presets gallery & enhanced landing - #1

Merged
singhharsh1708 merged 1 commit into
mainfrom
feat/pricing-landing-presets
Jun 6, 2026
Merged

feat: pricing page, presets gallery & enhanced landing#1
singhharsh1708 merged 1 commit into
mainfrom
feat/pricing-landing-presets

Conversation

@singhharsh1708

Copy link
Copy Markdown
Owner

Summary

  • /pricing — Monthly/annual billing toggle (20% savings), 5 tiers (Free → $20 → $32 → $48 → $160 → Enterprise), full feature comparison table, FAQ accordion, bottom CTA
  • /presets — 12 templates with live search, category filters (10 categories), hover preview/use overlays, bottom CTA
  • / (landing page) — Full rewrite: 6-step pipeline section, 4-feature grid, presets showcase, 5 testimonials, pricing teaser, FAQ accordion, full footer with product/company/legal links

What changed in existing pages

  • /create nav updated to include Presets + Pricing links
  • Removed unused videoFile, videoUrl state vars from create page

Test plan

  • Visit /pricing — toggle monthly/annual, verify prices update correctly
  • Visit /presets — search by name/tag, filter by category, hover cards show overlay
  • Visit / — scroll through all sections, FAQ accordion opens/closes, all nav links work
  • /create nav shows Presets and Pricing links
  • npm run build passes with no errors

🤖 Generated with Claude Code

- /pricing: monthly/annual toggle (20% savings), 5 tiers (Free→$20→$32→$48→$160→Enterprise), full feature comparison table, FAQ accordion
- /presets: 12 templates with search, category filters, hover preview/use overlays
- /: full landing page rewrite — pipeline (6 steps), features, presets showcase, 5 testimonials, pricing teaser, FAQ, full footer with links
- create page: nav updated with Presets + Pricing links, removed unused state vars

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@singhharsh1708

Copy link
Copy Markdown
Owner Author

@copilot

Copilot AI commented Jun 6, 2026

Copy link
Copy Markdown

@copilot

Can you share the specific change or issue you want me to address in this PR?

@singhharsh1708
singhharsh1708 merged commit 4b22f5b into main Jun 6, 2026
1 check failed
Copilot stopped work on behalf of singhharsh1708 due to an error June 6, 2026 20:50
singhharsh1708 added a commit that referenced this pull request Jun 9, 2026
#1 CSP — add fonts.googleapis.com to style-src and fonts.gstatic.com to
   font-src so Next.js Google Fonts can load in production

#3 Preset hover overlay — add z-20 so CTA buttons render above the
   tags row (which is z-10), eliminating overlap on hover

#4 cursor-pointer — add to preset card wrappers, category filter
   buttons, and Navbar hamburger button

#5 Back button — change router.push('/showcase') to router.back() in
   demo page so it returns to wherever the user came from

#6 sessionStorage quota — migrate ALL frame storage to IndexedDB:
   • create: storeFrames() instead of sessionStorage.setItem
   • editor: async loadFrames() on mount instead of sync sessionStorage
     read; storeFrames() on save instead of sessionStorage.setItem
   • site-specific frame keys also moved to IndexedDB

#7 Hero "Scroll inside to preview" broken — replace the hidden-overflow
   scroll container with a requestAnimationFrame autoplay loop that
   cycles through demo frames at 10fps; removes the need for user
   interaction entirely and works on all devices

Note: #2 (session GET) is correct NextAuth behaviour — /api/auth/session
is intentionally GET. #8 (OAuth errors) requires NEXTAUTH_URL and OAuth
callback URL to be set correctly in the Vercel/provider dashboards.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
singhharsh1708 added a commit that referenced this pull request Jul 9, 2026
…ew loop (#162)

* fix(#161): resolve all 8 bugs reported in issue

#1 CSP — add fonts.googleapis.com to style-src and fonts.gstatic.com to
   font-src so Next.js Google Fonts can load in production

#3 Preset hover overlay — add z-20 so CTA buttons render above the
   tags row (which is z-10), eliminating overlap on hover

#4 cursor-pointer — add to preset card wrappers, category filter
   buttons, and Navbar hamburger button

#5 Back button — change router.push('/showcase') to router.back() in
   demo page so it returns to wherever the user came from

#6 sessionStorage quota — migrate ALL frame storage to IndexedDB:
   • create: storeFrames() instead of sessionStorage.setItem
   • editor: async loadFrames() on mount instead of sync sessionStorage
     read; storeFrames() on save instead of sessionStorage.setItem
   • site-specific frame keys also moved to IndexedDB

#7 Hero "Scroll inside to preview" broken — replace the hidden-overflow
   scroll container with a requestAnimationFrame autoplay loop that
   cycles through demo frames at 10fps; removes the need for user
   interaction entirely and works on all devices

Note: #2 (session GET) is correct NextAuth behaviour — /api/auth/session
is intentionally GET. #8 (OAuth errors) requires NEXTAUTH_URL and OAuth
callback URL to be set correctly in the Vercel/provider dashboards.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(#161): complete audit pass — cursor, auth error handling, CSP, env docs

- cursor-pointer added to Button base class (affects every button in app)
- signin page: add loading spinner + error state for GitHub/Google OAuth
- signin page: reads callbackUrl from search params correctly
- signin page: wrapped in Suspense for useSearchParams compatibility
- .env.example: document AUTH_SECRET / AUTH_URL (NextAuth v5 names) with
  clear instructions for Vercel deployment (root cause of login failures)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(auth): render only configured OAuth providers dynamically

- auth.config.ts: conditionally register GitHub/Google providers only
  when their env credentials are present
- signin page: fetch live provider list via getProviders() and render
  buttons for exactly the configured providers (Google button now
  appears automatically once its credentials are added — no code change)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* feat(editor+create): live style previews, undo/redo, shortcuts, drag-drop

Create flow:
- Live animated style previews — each style card now renders a real
  looping canvas animation (via new drawFrame2D dispatcher + StylePreview
  component) instead of a static icon. Selected card animates with the
  chosen palette; others show a static frame to save CPU.
- Configure step gets a large live preview that reflects palette changes
  in real time.
- Drag-and-drop video upload (the UI already promised it) with active
  drop-zone highlighting and type validation.
- Enter key advances Style → Configure → Generate.

Editor:
- Undo/redo with a 100-step history. Consecutive same-field text edits
  coalesce into one undo step (typing a heading = one undo, not per-key).
  AI chat edits are a single undoable step too.
- Keyboard shortcuts: Cmd/Ctrl+Z undo, Cmd/Ctrl+Shift+Z (or +Y) redo,
  Cmd/Ctrl+S save, Cmd/Ctrl+E export.
- Duplicate-section button in the section list.
- Unsaved-changes indicator (amber dot) + beforeunload warning.

generate2DFrames refactored to share the new drawFrame2D dispatcher.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* fix(editor+home): stale-closure shortcuts, mobile detection, preview loop

- editor: ⌘S/⌘E acted on a mount-time closure of handleSave/handleExport, so
  keyboard save and export persisted stale sections. Route both through a ref
  refreshed each render and drop the exhaustive-deps suppression.
- home: replace setState-in-effect mobile detection with useSyncExternalStore
  over matchMedia. Fixes the react-hooks lint error and makes the hero react to
  resize, while the server snapshot stays mobile so SSR still emits no frame
  URLs (#156).
- StylePreview: colors sat in the effect deps, so every recolor tore down the
  rAF loop and snapped progress back to 0. Read draw options from a ref and
  size the canvas with a ResizeObserver.
- generate2DFrames: clamp the denominator so frameCount === 1 yields p = 0
  instead of NaN.
- remove dead imports and state left behind by the shared Navbar refactor.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants