Automation
Discover how n8n automation workflows, serverless API routes, and clean cloud deployment strategies power this entire platform, saving hundreds of hours of manual work.
Automation Architecture
Public Website
Next.js 14 App Router with server-side rendering for SEO-optimized pages
PostgreSQL Database
6 tables with indexes: videos, blogs, gallery, stats, sync_logs, admin_sessions
Admin Panel
JWT-authenticated admin interface with sync controls and content management
API Routes
Server-side only API routes — no API keys ever reach the client browser
Sync Engine
One-click sync from admin panel fetches and upserts data from all external sources
Three.js Visuals
Interactive 3D particles and distorted geometry for a futuristic developer aesthetic
Data Pipeline
Each sync operation follows a consistent pattern: fetch from API → transform data → upsert to database → log the operation
Automated Workflows
YouTube Video Sync
YouTube Data API v3 fetches all playlist items and channel statistics. Videos are upserted into PostgreSQL with deduplication on youtube_id.
Pexels Gallery Sync
Curated photos are fetched from the Pexels API with multiple resolution variants. Each photo is stored with photographer attribution and metadata.
Blog RSS Sync
RSS feeds from both Medium and Blogger are parsed simultaneously. Posts are stored with source tracking, enabling content from multiple platforms.
Stats Collection
Growth metrics like subscriber count, view count, and content totals are automatically recorded during each sync, creating a historical trend.
Example: YouTube Sync Flow
// 1. Admin triggers sync or n8n cron job runs
POST /api/sync/youtube
// 2. Server fetches all playlist items
const items = await fetchAllPlaylistItems();
// 3. Each video is upserted to PostgreSQL
INSERT INTO videos (youtube_id, title, ...)
ON CONFLICT (youtube_id) DO UPDATE SET ...
// 4. Channel stats are recorded
INSERT INTO stats (metric_name, metric_value, source)
VALUES ('youtube_subscribers', 12500, 'youtube')
// 5. Sync operation is logged
INSERT INTO sync_logs (source, status, records_synced)
VALUES ('youtube', 'completed', 47)Why This Matters
In a fast-growing digital landscape, doing things manually doesn't scale. By building robust custom data pipelines and implementing scalable automation architectures, I focus entirely on creating content, not organizing it. If your team or agency is spending hours on repetitive data entry, API integration is the solution.