feat: pricing page, presets gallery & enhanced landing - #1
Merged
Conversation
- /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>
Owner
Author
|
Can you share the specific change or issue you want me to address in this PR? |
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 linksWhat changed in existing pages
/createnav updated to include Presets + Pricing linksvideoFile,videoUrlstate vars from create pageTest plan
/pricing— toggle monthly/annual, verify prices update correctly/presets— search by name/tag, filter by category, hover cards show overlay/— scroll through all sections, FAQ accordion opens/closes, all nav links work/createnav shows Presets and Pricing linksnpm run buildpasses with no errors🤖 Generated with Claude Code