Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/moradoadrian/carneroDev/llms.txt

Use this file to discover all available pages before exploring further.

Carnero.Dev follows Astro’s standard directory conventions with clear separation between UI components, page routes, backend logic, and static assets. Understanding the layout makes it straightforward to locate any feature — from the hero countdown timer to the server-side registration API.

Directory Tree

/
├── public/              # Static assets and public files
│   ├── favicon.ico
│   ├── favicon.svg
│   ├── carneroDev-removebg-preview.png
│   └── logoHack.png
├── src/
│   ├── components/      # Modular, reusable UI components (Astro)
│   │   ├── Hero.astro          # Hero section with countdown timer
│   │   ├── About.astro         # Event overview + innovation track cards
│   │   ├── Challenge.astro     # Hackathon challenge brief + build categories
│   │   ├── Evaluation.astro    # Judging rubric with animated progress bars
│   │   ├── Deliverables.astro  # What teams must submit
│   │   ├── Rules.astro         # Summary rules grid
│   │   ├── Timeline.astro      # Event schedule steps
│   │   ├── Prizes.astro        # Prize podium layout
│   │   ├── Speakers.astro      # Judge/speaker cards
│   │   ├── Faq.astro           # FAQ accordion
│   │   ├── Sponsors.astro      # Sponsor grid
│   │   ├── Navbar.astro        # Fixed blur navigation bar
│   │   ├── Footer.astro        # Site footer
│   │   ├── RegisterModal.astro # Registration modal with form
│   │   ├── LoadingScreen.astro # Full-screen loading overlay shown on initial page load
│   │   ├── Logo.astro          # SVG logo component
│   │   └── RamLogo.astro       # Ram mascot SVG
│   ├── layouts/
│   │   └── Layout.astro        # Base HTML layout with global head/body
│   ├── lib/
│   │   └── supabase.ts         # Supabase client initialization
│   ├── pages/
│   │   ├── index.astro         # Main single-page landing (home)
│   │   ├── bases.astro         # Full event rules & regulations page
│   │   └── api/
│   │       └── register.ts     # Server-side registration API endpoint
│   └── styles/
│       └── global.css          # Global Tailwind CSS + custom design tokens
├── astro.config.mjs     # Astro configuration (SSR, Node adapter, Vite plugins)
├── package.json
└── tsconfig.json

Key Directories

src/components

All UI is broken into focused Astro components. The homepage (index.astro) imports and assembles them in sequence, from <Hero /> at the top through <Footer /> at the bottom. LoadingScreen.astro renders a full-screen overlay on initial page load. Each component is self-contained with its own markup and scoped styles.

src/pages

Contains the two public routes (/ and /bases) plus the /api/register server endpoint. Astro’s file-based routing maps every .astro and .ts file in this directory directly to a URL path.

src/lib

Houses the Supabase client singleton (supabase.ts). Centralizing the client here ensures a single, consistently configured instance is imported by the API route rather than re-initialized on every request.

src/styles

Global CSS with Tailwind v4 config and custom utility classes. Defines the design tokens (burgundy, gold, charcoal color scales), custom keyframe animations (float, glow-pulse, scanline), and reusable aesthetic utilities such as .glassmorphism, .bg-dot-matrix, and .hex-border.

Page Routes

Carnero.Dev exposes two public-facing pages and one server-side API route.
RouteSource FileDescription
/src/pages/index.astroSingle-page scroll site assembling all Astro components in sequence. This is the primary landing experience.
/basessrc/pages/bases.astroFull official rules and regulations page for the hackathon event.
/api/registersrc/pages/api/register.tsServer-side POST endpoint (prerender: false) that writes team data to Supabase and sends a confirmation email via Resend.
The /api/register endpoint requires output: 'server' in astro.config.mjs. It is never pre-rendered — every POST request is handled at runtime by the Node.js adapter.

Build docs developers (and LLMs) love