Skip to content

stevenpollack/power-tools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

82 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Power Tools Reviews

An entertainment website where famous authors review power tools - when literature meets hardware.

Project Status

Current Phase: Phase 1 - Technical Setup (βœ… Complete) Next Phase: Content Integration from Streams 1 & 2

Project Overview

This Astro v5 project provides the technical foundation for the Power Tools Reviews website. The site will feature reviews written by 12 famous authors covering 20 popular Home Depot tools, generating 240 unique review combinations.

Core Features

  • 🎨 Enhanced floating wall of cards UI
  • πŸ“š 12 literary authors with distinctive writing styles
  • πŸ”§ 20 power tools from Home Depot
  • πŸ“ 240 pre-generated reviews (12 Γ— 20)
  • πŸ“± Mobile-first responsive design
  • ⚑ Lightning-fast static site generation

Technology Stack

  • Framework: Astro v5.10+ with React islands
  • Styling: Tailwind CSS v4 + custom CSS
  • TypeScript: Strict configuration with ES2022
  • Package Manager: pnpm v10.12.4
  • Deployment: Vercel (configured)
  • Code Quality: ESLint v9 + Prettier

Project Structure

power-tools-reviews/
β”œβ”€β”€ .github/workflows/        # CI/CD configuration
β”œβ”€β”€ .vscode/                  # VS Code settings
β”œβ”€β”€ public/                   # Static assets
β”‚   β”œβ”€β”€ images/
β”‚   β”‚   β”œβ”€β”€ authors/         # Author portraits (Stream 1)
β”‚   β”‚   └── tools/           # Tool images (Stream 2)
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/           # React + Astro components
β”‚   β”‚   β”œβ”€β”€ FloatingCard.tsx  # Individual card component
β”‚   β”‚   β”œβ”€β”€ CardWall.astro    # Main wall container
β”‚   β”‚   └── FilterControls.tsx # Filtering UI
β”‚   β”œβ”€β”€ content/             # Content collections
β”‚   β”‚   β”œβ”€β”€ authors/         # Author data (Stream 1)
β”‚   β”‚   β”œβ”€β”€ tools/           # Tool data (Stream 2)
β”‚   β”‚   └── reviews/         # Generated reviews (Phase 2)
β”‚   β”œβ”€β”€ layouts/
β”‚   β”‚   └── ReviewLayout.astro # Main layout
β”‚   β”œβ”€β”€ pages/               # Route pages
β”‚   β”‚   β”œβ”€β”€ index.astro      # Floating wall homepage
β”‚   β”‚   β”œβ”€β”€ [author].astro   # Author detail pages
β”‚   β”‚   β”œβ”€β”€ [tool].astro     # Tool detail pages
β”‚   β”‚   └── review/[slug].astro # Individual reviews
β”‚   β”œβ”€β”€ styles/              # Global styles
β”‚   └── utils/               # Helper functions
β”œβ”€β”€ astro.config.mjs         # Astro configuration
β”œβ”€β”€ package.json             # Dependencies
β”œβ”€β”€ tailwind.config.mjs      # Tailwind configuration
β”œβ”€β”€ tsconfig.json            # TypeScript configuration
β”œβ”€β”€ eslint.config.js         # ESLint configuration
└── prettier.config.js       # Prettier configuration

Content Collections Schema

Authors Collection

{
  name: string;
  slug: string;
  lifespan: string;
  nationality: string;
  primaryWorks: string[];
  styleKeywords: string[];
  literaryMovement: string;
  portrait: {
    filename: string;
    source: string;
    license: string;
  };
  styleAnalysis: {
    summary: string;
    detailed: string;
    vocabulary: string;
    sentenceStructure: string;
    themes: string[];
    quirks: string[];
  };
}

Tools Collection

{
  name: string;
  slug: string;
  brand: string;
  category: string;
  subcategory?: string;
  homeDepotSku: string;
  homeDepotUrl: string;
  image: {
    filename: string;
    originalUrl: string;
    license: string;
  };
  specifications: {
    power: string;
    weight: string;
    dimensions: string;
    keyFeatures: string[];
    batteryLife?: string;
    cordless: boolean;
  };
  pricing: {
    currentPrice: number;
    msrp?: number;
    onSale: boolean;
  };
  popularity: {
    reviewCount: number;
    averageRating: number;
    homeDepotRank?: number;
  };
}

Reviews Collection

{
  authorId: string;
  toolId: string;
  featured: boolean;
  mood: "humorous" | "dramatic" | "technical" | "philosophical";
  tone: "formal" | "casual" | "satirical" | "earnest";
  readingTime: number;
  shareCount: number;
  dateCreated: string;
  lastUpdated: string;
}

Development Commands

# Install dependencies
pnpm install

# Start development server
pnpm dev

# Type check
pnpm type-check

# Lint code
pnpm lint

# Format code
pnpm format

# Build for production
pnpm build

# Preview production build
pnpm preview

Integration Requirements

Stream 1: Author Research Agent

Expected Deliverable: authors-research-package.zip

  • Place author JSON files in src/content/authors/
  • Place author portraits in public/images/authors/
  • Ensure data matches the Authors Collection schema

Stream 2: Tool Collection Agent

Expected Deliverable: tools-research-package.zip

  • Place tool JSON files in src/content/tools/
  • Place tool images in public/images/tools/
  • Ensure data matches the Tools Collection schema

Current Implementation Status

βœ… Completed

  • Complete Astro v5 project structure
  • All dependencies at latest versions (June 2025)
  • Content collections configured for author/tool integration
  • Component structure ready for floating wall implementation
  • ESLint + Prettier configured and working
  • TypeScript strict configuration
  • Vercel deployment configuration ready

πŸ”„ Ready for Integration

  • Dynamic pages configured but awaiting content
  • Component skeletons ready for Phase 3 implementation
  • Content collections schema validated
  • Image directories prepared for assets

πŸ“‹ TODO After Integration

  1. Phase 2: Content generation using LLM with author styles and tool data
  2. Phase 3: Enhanced floating wall UI implementation
  3. Phase 4: Social sharing, filtering, and search functionality

Quality Gates Achieved

  • βœ… Project builds successfully without errors
  • βœ… Content collections validate against TypeScript schemas
  • βœ… All configuration files properly set up
  • βœ… Development environment fully functional
  • βœ… Ready for immediate content integration

Integration Testing

After receiving data from Streams 1 & 2:

  1. Validate Data Integrity:

    pnpm type-check
  2. Test Content Loading:

    pnpm dev
    # Navigate to localhost:4321 to test content collections
  3. Verify Build Process:

    pnpm build

Next Steps

  1. Await Stream 1 & 2 Completion: Author research and tool collection
  2. Integrate Content: Place data files in appropriate content directories
  3. Generate Reviews: Use LLM to create 240 review combinations
  4. Implement Enhanced UI: Build the floating wall interface
  5. Deploy: Push to Vercel for live preview

Support

For technical questions or integration issues, contact the project coordinator immediately.


Status: βœ… Technical Setup Complete - Ready for Content Integration

About

Tools reviewed by some of histories most powerful tools.

Resources

Stars

Watchers

Forks

Packages

No packages published