A web-based dashboard to track TikTok content creation with AI-powered content generation (Claude API) and Google Sheets storage.
- Content Tracker - View and manage all content ideas and their status
- AI Content Generator - Generate headers, captions, and hashtags from a summary
- Weekly Reminders - Dashboard displays pending tasks and deadlines
- Google Sheets Storage - Persistent cloud storage for all data
- Dark Mode UI - Clean, modern interface
If you don't have Node.js installed, download it from nodejs.org.
cd tiktok-dashboard
npm installCopy .env.example to .env and fill in your API keys:
cp .env.example .envEdit .env:
ANTHROPIC_API_KEY=your_claude_api_key
PORT=3000
npm startNavigate to http://localhost:3000 in your browser.
- Go to Google Cloud Console
- Create a new project (e.g., "TikTok Dashboard")
- Navigate to APIs & Services > Library
- Search for "Google Sheets API" and enable it
- Go to APIs & Services > Credentials
- Click Create Credentials > OAuth client ID
- Configure the OAuth consent screen if prompted
- Application type: Web application
- Add authorized JavaScript origins:
http://localhost:3000 - Add authorized redirect URIs:
http://localhost:3000 - Note the Client ID
- Create a new Google Sheet
- Rename the first sheet tab to "Content" (or leave as "Sheet1" and update code)
- Note the Spreadsheet ID from the URL:
https://docs.google.com/spreadsheets/d/[SPREADSHEET_ID]/edit
- Click "Connect Google Sheets" in the dashboard
- Enter your Client ID and Spreadsheet ID when prompted
- Authorize the app when the Google consent screen appears
| Column | Field | Description |
|---|---|---|
| A | ID | Unique identifier |
| B | Title | Content title/topic |
| C | Summary | Brief description for AI generation |
| D | Header | Generated/custom header text |
| E | Caption | Generated/custom caption |
| F | Hashtags | Comma-separated hashtags |
| G | Status | idea / in-progress / filmed / edited / posted |
| H | Due Date | Target posting date |
| I | Created | Date entry was created |
tiktok-dashboard/
├── index.html # Main dashboard page
├── styles.css # Dashboard styling (dark mode)
├── app.js # Main application logic
├── sheets-api.js # Google Sheets integration
├── ai-generator.js # Claude API integration
├── server.js # Node.js proxy server
├── package.json # Dependencies
├── .env.example # Environment variables template
└── README.md # This file
- Click Add Content button
- Fill in the title and other details
- Click Save Content
- Enter a content summary in the AI Generator panel
- Click Generate Content
- Review the generated header, caption, and hashtags
- Click Use in New Content to create a new entry with the generated content
- Click on a content title to view details
- Use the edit (pencil) button to modify content
- Use the delete (trash) button to remove content
- Filter by status or search by text
- The left panel shows content due this week
- Items are color-coded by urgency:
- Red: Overdue
- Yellow: Due within 3 days
- Blue: Due within 7 days
Make sure you've created a .env file with your API key.
- Verify your Client ID is correct
- Check that
http://localhost:3000is in your authorized origins - Make sure the Google Sheets API is enabled
- Check your Anthropic API key is valid
- Ensure the server is running (
npm start)