As a frontend developer, implement the Navbar section for the Landing page. Build the `Navbar` component using `useState` for `scrolled` and `drawerOpen` state, and `useEffect` for scroll detection (threshold: 24px) and body overflow locking when mobile drawer is open. Use `framer-motion` for logo entrance animations (`motion.a`, `motion.div`, `motion.span`) with custom cubic-bezier easing `[0.22, 1, 0.36, 1]`. Render desktop `nb-nav-links` from the `NAV_LINKS` array (Products, Orders, Reviews, Cart, Login), a `motion.a` CTA with `whileHover`/`whileTap` scale, and a mobile hamburger button with three `nb-hamburger-line` spans and aria labels. Apply `nb-scrolled` class conditionally. Import `Navbar.css`. This component is shared across pages — check if it already exists before creating.
Create SQLAlchemy models for Product, Category, Order, OrderItem, Review, Cart, CartItem, and User tables. Write Alembic migration scripts for initial schema creation including indexes, foreign keys, and constraints. Ensure models support all required fields for the e-commerce platform including product variants, pricing, and status fields.
Set up React global state management for cart and authentication using Context API or Zustand. Cart state: items, quantities, totals, sync with backend on auth. Auth state: user profile, roles, JWT token refresh logic, protected route guards. Persist cart to localStorage for guests, merge on login. Export typed hooks for component consumption. All frontend pages depend on this.
Establish CSS custom properties (variables) for the full design token system: color palette (#2B3A67 primary, #F2545B secondary, #F9A620 accent, #F77F00 highlight, #F4F4F9 bg, etc.), typography scale, spacing scale, border radius, shadow levels, and responsive breakpoints (320px–1920px). Create a global CSS file. Document token names for component consistency across all pages.
Configure a CI/CD pipeline (GitHub Actions or equivalent). Pipeline stages: lint and type-check (ESLint, mypy), Docker image build for frontend and backend, push images to container registry, deploy to staging on PR merge, deploy to production on release tag. Add environment-specific secret injection and rollback trigger on failed health check.
As a frontend developer, implement the `LandingVaultHero` section using `@react-three/fiber` Canvas and `@react-three/drei` Environment. Build the `VaultDoorScene` component with refs `doorRef`, `glowRef`, `lightRef`, `scrollProgress`, and `targetRotation`. Create five `useMemo` THREE.js materials: `doorMaterial` (MeshStandardMaterial, color `#3a4a50`, metalness 0.85), `frameMaterial`, `accentMaterial` (emissive `#FFD166`), `handleMaterial`, `lockMaterial`, and `innerGlowMaterial` (MeshBasicMaterial, DoubleSide). In `useEffect`, listen to scroll events and use `gsap.to` with `power2.out` easing to animate `scrollProgress`. In `useFrame`, rotate `doorRef` on Y-axis up to -1.2 radians, ramp `doorMaterial.emissiveIntensity`, `accentMaterial.emissiveIntensity`, `innerGlowMaterial.opacity`, and `lightRef.intensity` based on scroll progress. Render `ambientLight` and `directionalLight` with the lightRef. Import `LandingVaultHero.css`, `gsap`, and THREE.
As a frontend developer, implement the `VaultDoorAnimation` section using `@react-three/fiber` Canvas and `@react-three/drei` Environment. Build three sub-components: `MoneyStack` (renders 8 `boxGeometry` bill meshes stacked on Y-axis at `0.028` intervals with a `#FFD166` band, using `MeshStandardMaterial` with `transparent`/`opacity` props), `VaultShelf` (renders shelf surface and two bracket meshes using `MeshStandardMaterial` color `#2a3a40`), and `VaultDoor` (two halves that swing open driven by `openProgress` prop using refs `leftRef` and `rightRef`). Manage `openProgress` state via scroll listener with `gsap` easing. Use `useMemo` for all THREE.js materials to prevent re-creation. Integrate `useFrame` for per-frame rotation of door halves. Import `VaultDoorAnimation.css`, `gsap`, and THREE. Use `useRef`, `useEffect`, `useMemo`, `useState`, `useCallback` from React.
As a frontend developer, implement the `LandingProductShowcase` section using `framer-motion` `motion` and `AnimatePresence`. Define a `products` array of 4 items (Premium $100 Bundle, Mixed Denominations, $50 Film Stack, Classic $20 Pack) each with fields: `id`, `title`, `badge`, `badgeClass`, `desc`, `longDesc`, `denomination`, `quantity`, `price`, `priceNum`, `features`, `billColor`, `billLabel`, `stackCount`. Manage `useState` for the active selected product. Render product selector tabs and an animated detail panel with `AnimatePresence` for enter/exit transitions. Show badge classes (`ps-badge-premium`, `ps-badge-popular`, `ps-badge-value`, `ps-badge-classic`), feature tags, and a bill stack visual driven by `stackCount` and `billColor` gradient. Use `useCallback` for selection handler. Import `LandingProductShowcase.css`.
As a frontend developer, implement the `LandingProductCategories` section with a `CategoryTile` component that has 3D tilt effect on mouse move. Build `CategoryTile` with `useRef` for `tileRef`, `useState` for `isHovered`, `tapped`, and `tiltStyle` (`rotateX`/`rotateY`). Implement `handleMouseMove` to compute tilt angles (max ±12deg rotateY, ±10deg rotateX) relative to tile center using `getBoundingClientRect`. Use `handleMouseEnter`/`handleMouseLeave` to toggle hover state and reset tilt. Use `handleTap` with 600ms timeout for touch feedback. Animate via `motion.div` with `animate` prop driven by `tiltStyle`. Render 3 category tiles from the `categories` array (Denominations with `Layers` icon, Bundle Sizes with `Package` icon, Premium Collections with `Crown` icon from `lucide-react`), each with icon wrapper class (`lpc-icon-wrap--denominations`, etc.), title, description, and tag chips. Import `LandingProductCategories.css`.
As a frontend developer, implement the `LandingFeatureHighlights` section using `gsap` with `ScrollTrigger` plugin. Register `ScrollTrigger` at module level. Define `FEATURES` array of 3 items (Matte Finish, Ultra-Realistic Details, Fast & Secure Checkout) each with `title`, `description`, `cta`, `href`, `pathLength`, and `svgPath` fields. Build `FeatureIcon` sub-component rendering an SVG with a `path` element using `strokeDasharray` and `strokeDashoffset` set to `pathLength` for draw-on animation. In `LandingFeatureHighlights`, use `useRef` for `sectionRef`, `headerRefs`, `cardRefs`, `iconRefs` (ref arrays). In `useEffect`, create a `gsap.context` with a timeline triggered at `top 80%` / `end bottom 20%`: animate `headerRefs` with staggered `opacity 0→1, y 20→0` at 0.1s intervals, then `cardRefs` with `opacity 0→1, y 30→0` at 0.15s offsets, then SVG path `strokeDashoffset` draw-on animation. Return `ctx.revert()` on cleanup. Import `LandingFeatureHighlights.css`.
As a frontend developer, implement the `LandingTestimonials` section using `framer-motion` `motion` and `useInView`. Define a `testimonials` array of 4 items (Marcus Holloway, Ava Chen, Diego Morales, Jordan Blake) with `name`, `role`, `initials`, `rating` (4-5 stars), and `text` fields. Build `StarRating` sub-component rendering 5 `motion.span` stars using `FaStar` from `react-icons/fa`, each with `rotateY: 180→0` spring animation (`stiffness: 260, damping: 20`) staggered at 0.1s delays, conditioned on `inView` prop. Build `TestimonialCard` sub-component with `motion.div` animating `opacity 0, y 32 → opacity 1, y 0` with `[0.22, 1, 0.36, 1]` easing and `index * 0.12` delay. Render avatar with initials using class `lt-avatar-{index % 4}`. Use `useInView` with `{ once: true }` on the section ref to trigger animations. Import `LandingTestimonials.css`.
As a frontend developer, implement the `LandingTrustBadges` section using `gsap` with `ScrollTrigger`. Define a `badges` array of 4 items (Secure Checkout with `FaShieldAlt`, Fast Shipping with `FaShippingFast`, Premium Quality with `FaGem`, 100% Discreet with `FaUserSecret` from `react-icons/fa`). Use `useRef` for `sectionRef`, `badgeRefs` array, and `iconRefs` array. In `useEffect`, create a `gsap.context`: stagger-animate `badgeRefs` from `opacity 0, y 20` to `opacity 1, y 0` with `power3.out`, 0.08s stagger, ScrollTrigger `top 85%`. Then for each `iconRef`, add infinite yoyo `boxShadow` pulse animation to `0 0 20px rgba(78, 205, 196, 0.6)` with `sine.inOut`, repeat -1, and randomized delay up to 0.6s. Render two parallax decorative `div`s (`tb-deco-bg`, `tb-deco-mid`) with inline CSS transform using `--scroll` custom property. Render `tb-grid` with 4 badge cards. Return `ctx.revert()` on cleanup. Import `LandingTrustBadges.css`.
As a frontend developer, implement the `LandingCTA` section using `framer-motion` `motion`, `useInView`, and `AnimatePresence`. Define `PARTICLE_COUNT = 8` particles with radial angle distribution (`2π / 8`) and a `PARTICLE_COLORS` array of gold/teal values. Manage `useState` for `hovering`, `magnetOffset` (`{x, y}`), and `burstKey`. Implement `handleMouseMove` with magnetic pull: compute `dx/dy` from cursor to button center via `getBoundingClientRect`, calculate distance, and if under 200px threshold, apply `strength * 0.35` pull offset (max 40px). On `handleHoverStart`, set `hovering` and increment `burstKey` to re-trigger `AnimatePresence` particle burst. Use `useMemo` to compute 8 `particleTargets` with radial `x/y` and random radius (50–80px). Define `fadeUp` variants with `custom` delay index. Use `useInView` with `{ once: true, margin: '-80px' }` on `sectionRef`. Render `Lock` icon from `lucide-react` inside the CTA button. Import `LandingCTA.css`.
As a frontend developer, implement the `Footer` section using `framer-motion` `motion`. Build `FooterLink` and `FooterLinkWrapper` sub-components that render animated underline spans using `motion.span` with `scaleX: 0 → 1` on hover (0.25s `easeOut`). Build `LinkColumn` component accepting `title` and `links` props, rendering a `ftr-col-title` header and `ftr-col-list` of `FooterLinkWrapper` items. Define three link arrays: `companyLinks` (Products, Orders, Reviews, Dashboard), `supportLinks` (Help Center, Shipping Info, Returns, Contact), `legalLinks` (Terms, Privacy, Cookie, Disclaimer). Render social icons using `FaInstagram`, `FaTwitter`, `FaFacebookF` from `react-icons/fa`. Manage `useState` for `email` and `submitted` for the newsletter form; on submit, set `submitted = true` and reset after 3000ms timeout. Render two parallax decorative divs (`ftr-deco-bg`, `ftr-deco-mid`) with `--scroll` CSS variable transforms. This component is shared across pages — check if it already exists. Import `Footer.css`.
Implement FastAPI routes for product management. Public endpoints: list products with pagination/filtering/sorting by category, price, and name; get single product detail with images and related products. Admin endpoints: create, update, delete products; manage product images; bulk import/export. Include Pydantic schemas for request/response validation.
Implement FastAPI routes for product categories. Endpoints: list all categories with product counts, get category by slug, create/update/delete categories (admin). Include hierarchical category support for prop money types (denominations, bundles, premium collections). Add Pydantic schemas.
Implement FastAPI routes for cart management. Endpoints: get cart (session or user-based), add item to cart, update item quantity, remove item, clear cart. Support both authenticated users (persistent cart) and guest sessions (cookie-based). Handle cart merging on login. Include inventory/stock validation on add.
Implement global FastAPI exception handlers and middleware for consistent error response format across all endpoints. Cover: validation errors (422), authentication errors (401), authorization errors (403), not-found errors (404), Stripe payment errors, database errors, and unhandled 500s. Add request ID header propagation and structured JSON logging for all requests and errors.
Create seed scripts to populate the database with initial data: 4 product categories (Denominations, Bundle Sizes, Premium Collections, Mixed), 8-12 sample prop money products with realistic descriptions and pricing, 4 fake customer reviews/testimonials (Marcus Holloway, Ava Chen, Diego Morales, Jordan Blake) matching the LandingTestimonials component. Use Alembic or a standalone seed script runnable via docker-compose.
Implement Stripe payment integration following PCI DSS compliance best practices. Endpoints: create payment intent, confirm payment, handle webhooks for payment success/failure/refund events. Use Stripe Elements on frontend (tokenization only — no raw card data touches server). Store only last-4, card brand, and Stripe customer/payment method IDs. Configure webhook signature validation.
Build the Products listing page. Features: product grid/list view toggle, filter sidebar (category, price range, denomination, bundle size), sort controls (price, popularity, newest), pagination or infinite scroll, product card components with image, name, price, and add-to-cart button. Integrate with Products and Categories APIs. Responsive layout with loading skeletons and empty state. Note: depends on Products API (t002), Categories API (t003), and global state (t011).
Build the Cart page. Features: itemized cart table with product images, names, unit prices, quantity steppers, remove buttons, line totals; order summary sidebar with subtotal, shipping estimate, and total; proceed to checkout CTA. Sync with cart global state and Cart API. Handle empty cart state gracefully with CTA to browse products. Note: depends on Cart API (t004) and global state (t011).
Build the admin Products management page. Features: products data table with image thumbnail, title, price, category, stock, status columns; add/edit product modal or form (title, description, images upload, denomination, price, stock); delete with confirmation; search and filter by category. Integrate with Products API admin endpoints (t002). Note: depends on Products API (t002).
Add security middleware to the FastAPI backend: rate limiting per IP and per user (slowapi or Redis-backed), CORS configuration for allowed frontend origins, security headers (HSTS, CSP, X-Frame-Options), input sanitization middleware, and JWT token blacklist for logout. Configure stricter limits on auth and payment endpoints.
Implement FastAPI routes for order management. User endpoints: create order from cart (triggered post-payment), list user orders, get order detail with items and status history. Admin endpoints: list all orders with filters (status, date range, customer), update order status (pending/processing/shipped/delivered/cancelled), add tracking number. Note: frontend Admin Orders page (to be built) will depend on this task.
Build the multi-step Checkout page. Steps: shipping address form, order review, payment via Stripe Elements (PCI DSS compliant card tokenization). Integrate Stripe.js for tokenization — no raw card data touches backend. Connect to Stripe checkout API endpoint (t005). Handle payment errors with user-friendly messages. Show order summary throughout. Note: depends on Stripe checkout API (t005) and global state (t011).
Implement order confirmation endpoint that returns full order summary after successful payment. Include order ID, itemized list, totals, shipping address, estimated delivery, and confirmation number. Trigger transactional confirmation email. Endpoint must be idempotent and secured to order owner only. Note: frontend OrderConfirmation page will depend on this task.
Implement FastAPI routes for product reviews and testimonials. User endpoints: submit review, get reviews for a product with pagination. Admin endpoints: list all reviews, approve/reject/delete reviews, feature reviews as testimonials. Include average rating aggregation. Pydantic schemas for review creation and response. Note: frontend Admin Reviews page will depend on this task.
Implement FastAPI admin analytics endpoints. Stats: total revenue (daily/weekly/monthly), order count by status, top-selling products, recent orders feed, customer acquisition metrics, average order value, inventory low-stock alerts. Use efficient SQL aggregations. Secure all endpoints with admin role check middleware. Include date range filtering. Note: frontend Admin Dashboard page will depend on this task.
Integrate LangChain and LiteLLM to provide GPT-powered user-friendly responses for product recommendations, order status explanations, and support queries. Implement a FastAPI AI service endpoint. Use LiteLLM as the model abstraction layer for provider flexibility. Add context injection (product catalog, order data) via LangChain chains. Rate-limit AI calls and cache common responses.
Build the admin Orders management page. Features: orders data table (order ID, customer, date, total, status), filter by status and date range, search by order ID or customer email, inline status update dropdown, pagination, click-through to order detail with full item list and status history. Integrate with Orders API admin endpoints (t006). Note: depends on Orders API (t006).
Build the ProductDetail page. Features: image gallery with zoom (per SRD: zoomable images), product title/description/price, denomination/variant selector, quantity picker, add-to-cart button, product reviews section with star ratings, related products carousel, compare products feature. Integrate with Product and Reviews APIs. Note: depends on Products API (t002), Reviews API (t008), and global state (t011).
Build the OrderConfirmation page shown post-purchase. Display: confirmation number, thank-you message, itemized order summary, shipping address, estimated delivery date, and CTA to continue shopping or view orders. Fetch from Order Confirmation API using order ID from URL params. Handle edge cases (invalid order ID, unauthorized access). Note: depends on Order Confirmation API (t007).
Build the admin Dashboard page. Display KPI cards (revenue, orders, customers, avg order value), revenue chart with date range picker, recent orders table with quick-status-update controls, low-stock product alerts, and top-products leaderboard. Integrate with Admin Stats API (t009). Role-guard route to admin users only. Note: depends on Admin Stats API (t009) and global state (t011).
Build the admin Reviews management page. Features: reviews table (reviewer, product, rating, excerpt, status, date), filter by status and product, approve/reject/delete actions, feature toggle for testimonials, view full review modal, bulk action support. Integrate with Reviews API admin endpoints (t008). Note: depends on Reviews API (t008).

Ultra-realistic prop money with matte finishes, crafted for filmmakers, photographers, and creative professionals. Indistinguishable from real currency on camera.
The Currency Vault Experience
Scroll to unlock the vault and explore shelves of ultra-realistic prop money, arranged by denomination and ready for your next production.
Every bill features a matte finish, realistic texture, and camera-ready detail. Browse denominations from $1 to $100 — stacked, banded, and ready to ship for your film set or photo shoot.
Browse the Collection→Camera-ready prop money for every production need. Click any stack to explore denomination details, pricing, and quality features.
Ultra-realistic $100 bills with matte finish. Perfect for film close-ups and photography.
Variety pack with $1, $5, $20, $50, and $100 bills. Great for diverse scene setups.
Stacks of realistic $50 bills designed for mid-range prop scenes and wallet fillers.
The most commonly seen denomination on screen. Essential for any prop inventory.
Our ultimate collection — all denominations, premium paper, and a display-ready money band.
1,000 mixed bills for large-scale film sets. Volume pricing with production-grade quality.
Whether you need a single hero bill for a close-up or crates of cash for a heist scene, we have the right category for your production.
Browse our full range of realistic prop bills — from singles to hundreds. Each denomination features matte finish printing with authentic detailing for flawless on-camera results.
Save more when you buy in bulk. Our pre-packaged bundles are perfect for large productions, offering volume discounts on stacks of 50, 100, or 500 bills.
Our highest-fidelity prop money with enhanced texture, watermark simulation, and dual-sided printing. Designed for close-up shots and cinematic excellence.
From indie films to major photo shoots, our prop money delivers the realism your project deserves.
Our prop money features a premium matte coating that eliminates glare and reflections, ensuring it looks indistinguishable from real currency under any studio lighting setup.
Explore Finishes→Every denomination is meticulously crafted with accurate sizing, intricate line work, and color-matched inks — built to pass the camera test in 4K productions.
See the Details→Shop with confidence through our encrypted checkout process. Every order ships discreetly with tracking, so your production stays on schedule.
Start Shopping→Hear from filmmakers, photographers, and artists who rely on winter-prop for camera-ready realism.Authentic reviews from our community.
“The matte finish on these bills is unbelievable. Under studio lighting, our crew couldn't tell the difference on camera. Saved us thousands versus renting real-looking props from a prop house.
“I shoot luxury lifestyle content and these props are my secret weapon. The texture, the color accuracy — every detail holds up in 4K. My clients always ask where I source them.
“We ordered the mixed denomination bundle for a music video shoot. Delivery was fast, the quality exceeded expectations, and the bills fanned perfectly on camera. Already reordering.
“Used winter-prop bills across three stage productions this season. They look incredible from the audience and hold up to repeated handling. Our go-to for every future show.
“The matte finish on these bills is unbelievable. Under studio lighting, our crew couldn't tell the difference on camera. Saved us thousands versus renting real-looking props from a prop house.
“I shoot luxury lifestyle content and these props are my secret weapon. The texture, the color accuracy — every detail holds up in 4K. My clients always ask where I source them.
“We ordered the mixed denomination bundle for a music video shoot. Delivery was fast, the quality exceeded expectations, and the bills fanned perfectly on camera. Already reordering.
“Used winter-prop bills across three stage productions this season. They look incredible from the audience and hold up to repeated handling. Our go-to for every future show.
Every order is handled with care — from secure payment to discreet delivery at your door.
Browse our vault of realistic prop money. No account required.
No comments yet. Be the first!