A fun and playful cat-focused content platform built with Next.js 15, featuring Hank the Cat!
This is a Next.js project bootstrapped with create-next-app
.
This project uses next/font
to automatically optimize and load Geist, a new font family for Vercel.
-
Install dependencies:
pnpm install
-
Run the development server:
pnpm dev
-
Open your browser: Navigate to http://localhost:3000
You can start editing the page by modifying app/page.tsx
. The page auto-updates as you edit the file.
- ✨ Modern Next.js 15 with App Router
- 🐱 Cat-focused content platform
- 📱 Responsive design
- 🎨 Interactive components
- 💖 Real-time "purr" counter updates
- 🔒 Premium content simulation
app/
├── components/
│ ├── Header.tsx
│ ├── Navigation.tsx
│ ├── ProfileSection.tsx
│ ├── PremiumBanner.tsx
│ ├── ContentGrid.tsx
│ └── Footer.tsx
├── globals.css
├── layout.tsx
└── page.tsx
Replace emoji placeholders with actual photos of Hank by:
- Adding images to
public/images/
- Updating the content data in
ContentGrid.tsx
- Replacing emoji in
content-image
divs with<img>
tags
- User authentication
- Multiple cat profiles
- Image upload functionality (via Google Drive)
- Payment integration
- Real-time messaging (Subs only!)
You'll need to:
- Create a Google Cloud project
- Enable Google Drive API
- Create OAuth 2.0 credentials
- Get a refresh token
Create .env.local
with your credentials:
GOOGLE_SERVICE_ACCOUNT_KEY_PATH=./service-account-key.json
GOOGLE_DRIVE_PARENT_FOLDER_ID=your_onlyhank_folder_id
Create this structure in your Google Drive:
onlyhank/
├── photos/
│ ├── Morning Stretches/
│ ├── Sunbeam Naps/
│ └── Treat Reactions/
└── videos/
├── Zoomies/
├── Box Adventures/
└── Toe Bean Close-ups/
- Right-click each content folder (Morning Stretches, etc.)
- Select "View details" or "Manage"
- Add descriptions in the folder's metadata/description field
- Server Actions: Fetch folder data from Google Drive API
- Dynamic Content: Cards generated from folder names and descriptions
- Content Types: Navigation switches between photos and videos folders
- Real-time Updates: Purr counters update periodically
- Error Handling: Graceful handling of API errors and missing folders
- Folder Name → Card Title
- Folder Description → Card Description
- Creation Date → Time ago display
- Folder Location → Content type (photos/videos)