DEV Community

Cover image for AI Engineering: Advent of AI with goose Day 16 - An Immersive Countdown AI Application
Erica
Erica

Posted on

AI Engineering: Advent of AI with goose Day 16 - An Immersive Countdown AI Application

Day 16: Perspective Countdown - A Modern, Immersive Countdown AI Application

For Day 16, I shifted from backend automation and knowledge‑engineering systems into a fully interactive full-stack experience. The goal was to build a professional, dynamic countdown application that feels modern, polished, and immersive. This project combined real‑time functionality, glassmorphism UI, spatially aware animations, and accessibility‑driven design into a cohesive Next.js application.

The result is Perspective Countdown: a responsive, visually rich countdown experience built with contemporary web technologies and AI engineered with the same precision and structure I have applied throughout this challenge.

Overview
Perspective Countdown provides a real‑time countdown to December 1, 2026 at 10:00 AM. The interface blends aesthetic design with functional clarity, featuring:

  • Real‑time countdown tiles
  • Rotating fun facts
  • Email signup with validation
  • Social sharing integration
  • A responsive navigation bar
  • A realistic snowfall animation rendered on canvas The application is engineered for performance, accessibility, and long‑term maintainability.

Technology Stack
This project uses a modern, production‑ready stack:

  • Framework: Next.js 15 with App Router
  • Language: TypeScript
  • Styling: Tailwind CSS with custom animation layers
  • Fonts: Parisienne for headings, Inter for UI text
  • Runtime: Node.js This stack supports server components, client‑side interactivity, and a clean separation of concerns across the application.

Features

Core Functionality

  • Real‑time countdown updated every second
  • Rotating informational facts with timed transitions
  • Email signup with client‑side validation and persistence
  • Social sharing via Web Share API with fallback logic
  • Responsive navigation bar with scroll‑to‑section behavior

Design Elements

  • Glassmorphism UI with frosted transparency
  • Custom gradient background using a defined brand palette
  • Realistic snowfall animation using canvas and requestAnimationFrame
  • Smooth hover transitions and micro‑interactions
  • Mobile‑first responsive layout
  • WCAG‑aligned accessibility features This palette supports the glassmorphism aesthetic while maintaining contrast ratios suitable for accessibility.

Project Structure

countdown-ai/
├── app/
│   ├── api/
│   │   ├── subscribe/
│   │   │   └── route.ts        # POST endpoint for email signup
│   │   ├── share/
│   │   │   └── route.ts        # Optional API for server-side share logging
│   │   └── events/
│   │       └── route.ts        # Example backend endpoint for event metadata
│   ├── globals.css             # Global styles and animations
│   ├── layout.tsx              # Root layout component
│   └── page.tsx                # Main page component
│
├── components/
│   ├── BottomNav.tsx           # Bottom navigation bar
│   ├── Countdown.tsx           # Real-time countdown display
│   ├── EmailSignup.tsx         # Email subscription form (client)
│   ├── FunFactsRotator.tsx     # Rotating facts component
│   ├── Hero.tsx                # Hero section with icon
│   └── Snowfall.tsx            # Canvas-based snow animation
│
├── data/
│   └── funFacts.ts             # Array of rotating facts
│
├── lib/
│   ├── time.ts                 # Time calculation utilities
│   ├── email.ts                # Server-side email validation and processing
│   ├── db.ts                   # Database connection (Supabase, Prisma, or custom)
│   └── logger.ts               # Server-side logging utilities
│
├── prisma/                     # Optional ORM schema
│   └── schema.prisma
│
├── public/                     # Static assets
│
└── scripts/
    └── seed.ts                 # Database seeding script
Enter fullscreen mode Exit fullscreen mode

The structure follows Next.js 15 conventions with clear separation between UI components, data, and utility logic.

My Key Components

Countdown: Implements a real‑time countdown using setInterval with cleanup. The component updates every second and renders time segments in glassmorphic tiles.

Hero: Displays an animated hourglass icon with subtle motion. Typography uses the Parisienne font for a distinctive visual identity.

FunFactsRotator: Cycles through facts every seven seconds with fade transitions. Uses aria-live="polite" to ensure screen readers receive updates without interruption. This was actually really fun to implement.

EmailSignup: Provides client‑side validation, local persistence, and a placeholder for backend integration. Designed for future expansion into EmailJS, Supabase, or a custom API.

Snowfall: A canvas‑based animation simulating realistic snowfall. Uses 100 snowflakes with varying velocities and sizes. Optimized with requestAnimationFrame for smooth performance.

BottomNav: A fixed navigation bar with scroll‑to‑section behavior and integrated social sharing.

Accessibility
I wanted to take a moment to highlight Accessibility. My application incorporates accessibility from the foundation which is dear to my heart:

  • Semantic HTML with proper landmarks
  • ARIA labels and live regions for dynamic content
  • Keyboard navigation with visible focus states
  • Sufficient color contrast
  • Screen reader compatibility This ensures the experience is usable across a wide range of devices and assistive technologies.

Browser Compatibility

  • Chrome
  • Firefox
  • Safari
  • Edge The application includes Web Share API support with clipboard fallback and uses CSS backdrop‑filter for glassmorphism where supported.

Performance Considerations

  • Efficient use of React hooks
  • Canvas animation optimized with requestAnimationFrame
  • Minimal re‑renders through isolated state
  • Lightweight dependency footprint The result is a smooth, responsive experience across devices.

Enhancements

  • Backend API integration for email storage
  • Dark mode with preference persistence
  • Calendar event download functionality
  • Analytics instrumentation
  • Progressive Web App support These additions extended the application into a fully featured event‑driven platform.

Development Notes
The application follows Next.js 15 conventions with the App Router architecture. All interactive components are marked as client components using the use client directive. Styling is handled through Tailwind CSS utilities with custom CSS for animations and transitions.

Accessibility was integrated from the beginning rather than added later. Components use semantic HTML, ARIA attributes, and predictable keyboard interactions to ensure the interface remains usable across assistive technologies.

The backend layer is implemented through Next.js API routes, providing a clean separation between client components and server logic. Server utilities handle validation, logging, and optional database integration, allowing the application to scale into a fully featured full‑stack system without restructuring the core architecture.

My Final Thoughts
Day 16 was a return to front‑end AI engineering, but with the mindset I have developed throughout this challenge: clarity, structure, and maintainability. Building a visually rich, interactive countdown application required balancing aesthetics with performance and accessibility. The result is a polished, modern interface that feels alive without sacrificing technical rigor.

This project reminded me how much I enjoy crafting user experiences that are both beautiful and engineered with intention. It also reinforced how well goose integrates into a full‑stack workflow, from ideation to implementation.

Day 16 continues the momentum, and the next challenges will build on this foundation.

This post is part of my Advent of AI journey - AI Engineering: Advent of AI with goose Day 16 of AI engineering challenges.

Follow along for more AI Engineering Adventures with Eri!

Top comments (0)