
β¨ Features
- Landlord-Side Negotiation β Dedicated expertise for lease renewals, extensions, and buyouts, never new-site brokering.
- Full Service Catalog β Seven dedicated service pages covering agreements, renewals, rooftop leases, buyouts, consultant costs, and hiring guidance.
- Landlord Advice Hub β Seven advice articles on lease rates, lease valuation, carrier mergers, upgrade requests, and tower attorneys.
- Contact Form with Resend β On-demand
/api/contactendpoint that validates submissions and emails them through the Resend REST API, with loading, error, and success states. - Testimonials Carousel β Verified landlord reports in an Embla-powered carousel with quote-first layout and local imagery.
- Scroll-Reveal Animations β Dedicated entrance animations per section with staggered grids and an animated process signal line, honoring
prefers-reduced-motionand no-JS fallbacks. - Responsive by Design β Fixed dock navigation, mobile drawer, and layouts that collapse cleanly below 768px.
- Fast & Static First β Astro static output with prerendered pages; only the contact API runs serverless on Vercel.
π§± Tech Stack
- Astro: Static site generator for fast, content-focused pages.
- React: Component library powering interactive islands like the testimonial carousel and contact form.
- TypeScript: Strongly typed programming that builds on JavaScript.
- Tailwind: Utility-first CSS framework for rapid UI development.
- shadcn/ui: Re-usable components built on Radix UI and Tailwind CSS.
- Motion: Animation library for entrance and state transitions in React islands.
- Resend: Transactional email API behind the contact form.
π Getting Started
Clone the repo, install deps, and boot the dev server:
git clone https://github.com/TowerFinder-Kurt-Access/cell-waves.git
cd cell-waves
bun install
bun run dev
Open http://localhost:4321 to view the app.
π¦ Build for Production
bun run build
bun run preview
π Environment
Copy the example file and add your Resend key:
cp .env.example .env
RESEND_API_KEY authenticates the contact formβs /api/contact endpoint with Resend. It is required in the local .env and in the Vercel project settings.
ποΈ Configuration
The site is componentized under src. Key areas to customize are:
src/
components/
site/ # Header, footer, hero, homepage sections, contact form
ui/ # shadcn/ui primitives
layouts/
base.astro # Global shell, head tags, scroll-reveal observer
article.astro # Shared layout for service and advice pages
pages/
index.astro # Homepage
about-us.astro # Team page
why-select-us.astro
testimonials.astro # Full landlord testimonials
blog/ # Blog index and posts
services/ # Seven service pages
advice/ # Seven advice pages
api/
contact.ts # POST endpoint wired to Resend
scripts/
count-up.ts # Animated stat badges
styles/
global.css # Theme tokens, reveal animations
lib/
content.ts # Site-wide copy, navigation, testimonials, page data
public/
images/ # Testimonial and blog imagery
π€π» Contributing
Contributions are always welcome, whether youβre fixing bugs, improving docs, or shipping new features that make the project better for everyone.
Check out Contributing.md to learn how to get started and follow the recommended workflow.
βοΈ License
Copyright Β© Cell Waves Canada. All rights reserved.