Skip to content

feat: implement AI video generator landing page - #1

Merged
superezzdev merged 1 commit into
mainfrom
feature/landing-page
Aug 4, 2026
Merged

feat: implement AI video generator landing page#1
superezzdev merged 1 commit into
mainfrom
feature/landing-page

Conversation

@superezzdev

@superezzdev superezzdev commented Aug 4, 2026

Copy link
Copy Markdown
Owner

Summary by CodeRabbit

  • New Features
    • Added a complete Veodit landing page showcasing AI video editing capabilities.
    • Added animated hero, feature, workflow, showcase, comparison, pricing, FAQ, GitHub, CTA, and footer sections.
    • Added responsive navigation with mobile menu support.
    • Added monthly and yearly pricing views.
    • Added reusable interactive UI elements, including dialogs, menus, forms, tabs, calendars, charts, toasts, and tooltips.
    • Added dark-theme styling, animations, responsive layouts, accessibility support, and reduced-motion handling.
  • Documentation
    • Added design-system guidance and updated project setup documentation.

Copilot AI lite review requested due to automatic review settings August 4, 2026 14:44
@superezzdev
superezzdev merged commit 006d3a9 into main Aug 4, 2026
1 of 2 checks passed
@coderabbitai

coderabbitai Bot commented Aug 4, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 7759a95d-bc4e-46fd-88fc-0fb41fd0791d

📥 Commits

Reviewing files that changed from the base of the PR and between 97d2c28 and 533d169.

⛔ Files ignored due to path filters (6)
  • package-lock.json is excluded by !**/package-lock.json
  • public/file.svg is excluded by !**/*.svg
  • public/globe.svg is excluded by !**/*.svg
  • public/next.svg is excluded by !**/*.svg
  • public/vercel.svg is excluded by !**/*.svg
  • public/window.svg is excluded by !**/*.svg
📒 Files selected for processing (93)
  • .gitignore
  • AGENTS.md
  • CLAUDE.md
  • README.md
  • Theme.md
  • app/globals.css
  • app/layout.tsx
  • app/page.tsx
  • components.json
  • components/icons/github.tsx
  • components/landing/CTA.tsx
  • components/landing/FAQ.tsx
  • components/landing/Features.tsx
  • components/landing/Footer.tsx
  • components/landing/GitHubRepo.tsx
  • components/landing/Header.tsx
  • components/landing/Hero.tsx
  • components/landing/HowItWorks.tsx
  • components/landing/Pricing.tsx
  • components/landing/Showcase.tsx
  • components/landing/TrustedBy.tsx
  • components/landing/WhyChooseUs.tsx
  • components/landing/index.ts
  • components/ui/accordion.tsx
  • components/ui/alert-dialog.tsx
  • components/ui/alert.tsx
  • components/ui/aspect-ratio.tsx
  • components/ui/attachment.tsx
  • components/ui/avatar.tsx
  • components/ui/badge.tsx
  • components/ui/breadcrumb.tsx
  • components/ui/bubble.tsx
  • components/ui/button-group.tsx
  • components/ui/button.tsx
  • components/ui/calendar.tsx
  • components/ui/card.tsx
  • components/ui/carousel.tsx
  • components/ui/chart.tsx
  • components/ui/checkbox.tsx
  • components/ui/collapsible.tsx
  • components/ui/combobox.tsx
  • components/ui/command.tsx
  • components/ui/context-menu.tsx
  • components/ui/dialog.tsx
  • components/ui/direction.tsx
  • components/ui/drawer.tsx
  • components/ui/dropdown-menu.tsx
  • components/ui/empty.tsx
  • components/ui/field.tsx
  • components/ui/hover-card.tsx
  • components/ui/input-group.tsx
  • components/ui/input-otp.tsx
  • components/ui/input.tsx
  • components/ui/item.tsx
  • components/ui/kbd.tsx
  • components/ui/label.tsx
  • components/ui/marker.tsx
  • components/ui/menubar.tsx
  • components/ui/message-scroller.tsx
  • components/ui/message.tsx
  • components/ui/native-select.tsx
  • components/ui/navigation-menu.tsx
  • components/ui/pagination.tsx
  • components/ui/popover.tsx
  • components/ui/progress.tsx
  • components/ui/radio-group.tsx
  • components/ui/resizable.tsx
  • components/ui/scroll-area.tsx
  • components/ui/select.tsx
  • components/ui/separator.tsx
  • components/ui/sheet.tsx
  • components/ui/sidebar.tsx
  • components/ui/skeleton.tsx
  • components/ui/slider.tsx
  • components/ui/spinner.tsx
  • components/ui/switch.tsx
  • components/ui/table.tsx
  • components/ui/tabs.tsx
  • components/ui/textarea.tsx
  • components/ui/toast.tsx
  • components/ui/toggle-group.tsx
  • components/ui/toggle.tsx
  • components/ui/tooltip.tsx
  • constants/index.ts
  • eslint.config.mjs
  • hooks/use-mobile.ts
  • lib/animations.ts
  • lib/utils.ts
  • next.config.ts
  • package.json
  • postcss.config.mjs
  • tsconfig.json
  • types/index.ts

📝 Walkthrough

Walkthrough

Changes

Veodit now includes a configured Next.js application with a dark design system, shared content contracts, reusable UI components, and an animated landing page. Project documentation, linting, TypeScript, styling, and package configuration were added.

Landing page
app/page.tsx, components/landing/*, constants/index.ts

The page composes navigation, hero, feature, workflow, showcase, comparison, pricing, repository, FAQ, CTA, and footer sections.

UI system
components/ui/*, app/globals.css, Theme.md

Reusable controls and layout components use Base UI primitives, Tailwind classes, shared variants, data attributes, responsive behavior, and motion styles.

Project setup
package.json, tsconfig.json, eslint.config.mjs, next.config.ts, postcss.config.mjs

The project includes Next.js scripts, dependencies, aliases, lint rules, Tailwind processing, and build configuration.

Estimated code review effort: 5 (Critical) | ~120 minutes

Suggested reviewers: copilot

Sequence Diagram(s)

sequenceDiagram
  participant Browser
  participant RootLayout
  participant Home
  participant LandingSections
  Browser->>RootLayout: Request page
  RootLayout->>Home: Render children with metadata and theme
  Home->>LandingSections: Compose landing sections
  LandingSections-->>Browser: Render responsive Veodit landing page
Loading
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/landing-page

Comment @coderabbitai help to get the list of available commands.

@superezzdev
superezzdev deleted the feature/landing-page branch August 4, 2026 14:45
@superezzdev

Copy link
Copy Markdown
Owner Author

Made landing page

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Implements a marketing/landing page for Veodit using the Next.js App Router, adding a set of landing-page sections and a fairly large set of reusable UI components (Base UI + shadcn patterns), along with project scaffolding/config to support Tailwind + TypeScript.

Changes:

  • Added a complete landing page composition (app/page.tsx) with dedicated section components under components/landing/.
  • Introduced a UI component library under components/ui/ plus shared helpers (lib/utils.ts, lib/animations.ts, hooks, and types).
  • Added baseline project configuration for Next.js + TypeScript + ESLint + PostCSS/Tailwind and public assets.

Reviewed changes

Copilot reviewed 91 out of 99 changed files in this pull request and generated 11 comments.

Show a summary per file
File Description
types/index.ts Adds shared TS interfaces for landing/config data.
tsconfig.json Introduces TypeScript compiler configuration for the app.
README.md Replaces README content with create-next-app template text.
public/window.svg Adds public SVG asset.
public/vercel.svg Adds public SVG asset.
public/next.svg Adds public SVG asset.
public/globe.svg Adds public SVG asset.
public/file.svg Adds public SVG asset.
postcss.config.mjs Adds PostCSS config for Tailwind processing.
package.json Defines Next/React/Tailwind + UI dependencies and scripts.
next.config.ts Adds Next.js configuration stub.
lib/utils.ts Adds cn() helper (clsx + tailwind-merge).
lib/animations.ts Adds shared motion transition/variant presets.
hooks/use-mobile.ts Adds useIsMobile() hook based on matchMedia.
eslint.config.mjs Adds ESLint flat config using Next presets.
components/ui/tooltip.tsx Adds tooltip primitives wrapper with Tailwind styling.
components/ui/toggle.tsx Adds toggle wrapper + CVA variants.
components/ui/toggle-group.tsx Adds toggle-group wrapper + context styling.
components/ui/toast.tsx Adds toast system wrapper around Base UI toast manager.
components/ui/textarea.tsx Adds styled textarea component.
components/ui/tabs.tsx Adds tabs primitives wrapper + styling variants.
components/ui/table.tsx Adds table primitives wrappers.
components/ui/switch.tsx Adds switch primitives wrapper.
components/ui/spinner.tsx Adds spinner component using lucide Loader icon.
components/ui/slider.tsx Adds slider primitives wrapper.
components/ui/skeleton.tsx Adds skeleton loading component.
components/ui/sheet.tsx Adds sheet/dialog wrapper.
components/ui/separator.tsx Adds separator wrapper.
components/ui/select.tsx Adds select primitives wrapper.
components/ui/scroll-area.tsx Adds scroll-area primitives wrapper.
components/ui/resizable.tsx Adds resizable panels wrappers.
components/ui/radio-group.tsx Adds radio group wrappers.
components/ui/progress.tsx Adds progress wrappers.
components/ui/popover.tsx Adds popover wrappers.
components/ui/pagination.tsx Adds pagination components built on Button rendering.
components/ui/navigation-menu.tsx Adds navigation-menu wrappers + styling.
components/ui/native-select.tsx Adds styled native <select> wrapper.
components/ui/message.tsx Adds message layout primitives for chat-like UIs.
components/ui/message-scroller.tsx Adds message scroller wrappers around @shadcn/react message scroller.
components/ui/marker.tsx Adds marker component + variants.
components/ui/label.tsx Adds styled label component.
components/ui/kbd.tsx Adds keyboard key (kbd) display components.
components/ui/item.tsx Adds item/list primitives + variants.
components/ui/input.tsx Adds input wrapper (Base UI Input).
components/ui/input-otp.tsx Adds OTP input wrappers.
components/ui/input-group.tsx Adds input group compound component.
components/ui/hover-card.tsx Adds hover/preview card wrappers.
components/ui/field.tsx Adds field/fieldset layout helpers + error rendering.
components/ui/empty.tsx Adds empty state components + variants.
components/ui/direction.tsx Re-exports Base UI direction provider/hooks.
components/ui/dialog.tsx Adds dialog wrappers.
components/ui/context-menu.tsx Adds context menu wrappers.
components/ui/command.tsx Adds command palette wrappers around cmdk + Dialog.
components/ui/collapsible.tsx Adds collapsible wrappers.
components/ui/checkbox.tsx Adds checkbox wrappers.
components/ui/carousel.tsx Adds carousel wrappers using embla-carousel-react.
components/ui/card.tsx Adds card primitives.
components/ui/calendar.tsx Adds calendar component wrapper around react-day-picker.
components/ui/button.tsx Adds Button wrapper + CVA variants.
components/ui/button-group.tsx Adds button-group layout helpers.
components/ui/bubble.tsx Adds chat bubble compound components + variants.
components/ui/breadcrumb.tsx Adds breadcrumb primitives.
components/ui/badge.tsx Adds badge component + variants.
components/ui/avatar.tsx Adds avatar primitives wrappers.
components/ui/attachment.tsx Adds attachment UI compound components.
components/ui/aspect-ratio.tsx Adds aspect ratio helper component.
components/ui/alert.tsx Adds alert component + variants.
components/ui/alert-dialog.tsx Adds alert-dialog wrappers.
components/ui/accordion.tsx Adds accordion wrappers.
components/landing/WhyChooseUs.tsx Adds “Why Veodit” comparison section.
components/landing/TrustedBy.tsx Adds marquee-style “Trusted by” section.
components/landing/Pricing.tsx Adds pricing section with monthly/yearly toggle.
components/landing/index.ts Exports landing page sections barrel.
components/landing/HowItWorks.tsx Adds workflow steps (“How it works”) section.
components/landing/Header.tsx Adds responsive header with mobile overlay menu.
components/landing/GitHubRepo.tsx Adds GitHub repo promo card/CTA section.
components/landing/Footer.tsx Adds footer with newsletter input + link sections.
components/landing/Features.tsx Adds features grid section.
components/landing/FAQ.tsx Adds FAQ accordion section.
components/landing/CTA.tsx Adds primary call-to-action section.
components/icons/github.tsx Adds GitHub logo SVG component.
components.json Adds shadcn/ui components registry configuration.
CLAUDE.md Adds pointer file to @AGENTS.md.
app/page.tsx Composes the landing page from the section components.
app/layout.tsx Adds root layout, global styles, and metadata.
AGENTS.md Adds Next.js agent rules block.
.gitignore Adds ignore rules for Next.js/node tooling outputs.
Suppressed comments (1)

components/landing/CTA.tsx:56

  • Tailwind’s default spacing scale doesn’t include h-13, so this utility likely won’t be generated (unless spacing is explicitly extended). Consider using an arbitrary value to preserve the intended height.
            <Button
              variant="outline"
              className="h-13 rounded-2xl border-white/10 bg-white/5 px-8 text-base font-medium text-zinc-300 hover:bg-white/10 hover:text-white transition-all duration-300"
            >

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread app/layout.tsx
},
};

export default function RootLayout({ children }: LayoutProps<"/">) {
Comment thread components/ui/spinner.tsx
Comment on lines +1 to +4
import { cn } from "@/lib/utils"
import { Loader2Icon } from "lucide-react"

function Spinner({ className, ...props }: React.ComponentProps<"svg">) {
Comment on lines +1 to +3
import { cn } from "@/lib/utils"

function Skeleton({ className, ...props }: React.ComponentProps<"div">) {
Comment on lines +11 to +22
style={
{
"--ratio": ratio,
} as React.CSSProperties
}
className={cn("relative aspect-(--ratio)", className)}
{...props}
/>
)
}

export { AspectRatio }
Comment thread components/ui/kbd.tsx
Comment on lines +1 to +4
import { cn } from "@/lib/utils"

function Kbd({ className, ...props }: React.ComponentProps<"kbd">) {
return (
Comment on lines +47 to +52
<Button
className="h-13 rounded-2xl bg-gradient-to-r from-violet-600 to-cyan-500 px-10 text-base font-medium text-white border-0 hover:opacity-90 transition-all duration-300 hover:shadow-[0_0_40px_rgba(139,92,246,0.3)]"
>
Start Editing for Free
<ArrowRight className="size-4 ml-1.5" />
</Button>
Comment on lines +84 to +91
<NavigationMenuPrimitive.Content
data-slot="navigation-menu-content"
className={cn(
"data-ending-style:data-activation-direction=left:translate-x-[50%] data-ending-style:data-activation-direction=right:translate-x-[-50%] data-starting-style:data-activation-direction=left:translate-x-[-50%] data-starting-style:data-activation-direction=right:translate-x-[50%] h-full w-auto p-2 pr-2.5 transition-[opacity,transform,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] group-data-[viewport=false]/navigation-menu:rounded-md group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:shadow group-data-[viewport=false]/navigation-menu:ring-1 group-data-[viewport=false]/navigation-menu:ring-foreground/10 group-data-[viewport=false]/navigation-menu:duration-300 data-ending-style:opacity-0 data-starting-style:opacity-0 data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 data-[motion^=from-]:animate-in data-[motion^=from-]:fade-in data-[motion^=to-]:animate-out data-[motion^=to-]:fade-out **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none group-data-[viewport=false]/navigation-menu:data-open:animate-in group-data-[viewport=false]/navigation-menu:data-open:fade-in-0 group-data-[viewport=false]/navigation-menu:data-open:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-closed:animate-out group-data-[viewport=false]/navigation-menu:data-closed:fade-out-0 group-data-[viewport=false]/navigation-menu:data-closed:zoom-out-95",
className
)}
{...props}
/>
Comment on lines +57 to +61
<AccordionItem
key={index}
value={index}
className="border-b border-white/5"
>
Comment thread lib/animations.ts
Comment on lines +1 to +5
"use client";

import type { Variants, Transition } from "motion/react";

// ── Shared transition presets ──────────────────────────────────────────
Comment thread README.md
@@ -1,2 +1,36 @@
# Veodit
𝙰𝚗 𝚘𝚙𝚎𝚗-𝚜𝚘𝚞𝚛𝚌𝚎 𝙰𝙸-𝚙𝚘𝚠𝚎𝚛𝚎𝚍 𝚟𝚒𝚍𝚎𝚘 𝚎𝚍𝚒𝚝𝚒𝚗𝚐 𝚙𝚕𝚊𝚝𝚏𝚘𝚛𝚖 𝚝𝚑𝚊𝚝 𝚝𝚛𝚊𝚗𝚜𝚏𝚘𝚛𝚖𝚜 𝚛𝚊𝚠 𝚏𝚘𝚘𝚝𝚊𝚐𝚎 𝚒𝚗𝚝𝚘 𝚙𝚘𝚕𝚒𝚜𝚑𝚎𝚍 𝚟𝚒𝚍𝚎𝚘𝚜 𝚊𝚞𝚝𝚘𝚖𝚊𝚝𝚒𝚌𝚊𝚕𝚕𝚢.
This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app).
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