How vetra-studio/website works
Purpose and Entry Point
This is a small Next.js App Router site, derived from create-next-app. Its primary rendered route is the root page at app/page.tsx, served by the Next.js runtime at /. No API routes, database integrations, or backend service boundaries are present in the repository tree.
Application Shell
app/layout.tsx defines the root layout shared by all App Router pages. It is the global composition boundary for document-level structure, metadata, font setup, and persistent site chrome. app/globals.css supplies application-wide styling imported through this layout.
Paths:
• app/layout.tsx
• app/globals.css
Root Page Composition
app/page.tsx is the main feature/page entry point and is where route-specific content is assembled. With only this route present, the application is currently a single-page site rather than a multi-route product flow.
Paths:
• app/page.tsx
• app/layout.tsx
Shared Navigation and Header
The site’s top-level navigation is separated into reusable components. components/Header.tsx likely provides header structure and delegates navigation-specific UI to components/Navbar.tsx. These components form the primary user navigation boundary and should remain layout-oriented rather than owning page business logic.
Paths:
• components/Header.tsx
• components/Navbar.tsx
• app/page.tsx
Footer and Contact Surface
Footer concerns are componentized separately from page content. components/Footer.tsx is the outer footer region, while components/FooterContact.tsx isolates contact-oriented footer content. This supports reuse if additional App Router pages are added.
Paths:
• components/Footer.tsx
• components/FooterContact.tsx
• app/page.tsx
Rendering, Styling, and Assets
The project uses the Next.js TypeScript runtime and App Router conventions. Styling is centered on global CSS in app/globals.css, with PostCSS processing configured in postcss.config.mjs. Static browser-served assets belong under public, though no individual assets are listed. The README states next/font is used for optimized Geist font loading, normally configured from the root layout.
Paths:
• app/globals.css
• app/layout.tsx
• public
Runtime and Deployment Boundary
Development starts through the package scripts defined in package.json (the README identifies npm run dev) and is served locally on port 3000. Build/runtime behavior is governed by Next.js configuration in next.config.ts. The documented deployment target is Vercel, but no Vercel-specific configuration, external APIs, persistence layer, authentication provider, or environment configuration is represented in the tree.
Paths:
• package.json
• next.config.ts
• README.md
Main entry points: layout.tsx Root layout · page.tsx Root page · Header.tsx Header · Footer.tsx Footer
Components 12
App Router
- Root layout · Provides document structure, metadata, fonts, and shared chrome.
app/layout.tsx - Root page · The site's only rendered route.
app/page.tsx - Global styles
app/globals.css
Shared UI
- Header
components/Header.tsx - Navigation bar
components/Navbar.tsx - Footer
components/Footer.tsx - Footer contact
components/FooterContact.tsx
Runtime & Delivery
- Next.js runtime · Serves the App Router site at /.
- Package scripts
package.json - Next configuration
next.config.ts - Static assets · Browser-served static files.
public - README · Documents local development and Vercel deployment.
README.md
Connections 11
- Package scripts → Next.js runtime: starts dev server
- Next configuration → Next.js runtime: configures
- Next.js runtime → Root layout: renders route shell
- Root layout → Root page: wraps
- Root layout → Global styles: imports
- Root page → Header: composes
- Header → Navigation bar: delegates navigation
- Root page → Footer: composes
- Footer → Footer contact: contains
- Next.js runtime → Static assets: serves
- README → Package scripts: documents dev command