- Add PageView model for daily-bucketed view tracking - Add viewCount fields to Tool, Collection, Agent models - Add social proof fields to StatsSnapshot - Add POST /api/track/view endpoint with IP-based dedup - Add GET /api/activity/public endpoint for real activity stream - Add /api/sync/view-rollup daily cron for aggregating views - Expand stats-snapshot cron with new social proof queries - Replace hardcoded homepage stats with real DB-driven props - Add downloads to hero metrics strip - Add PublicActivityStream component fetching real UserActivity - Add useTrackView hook for tool, collection, agent detail pages - Add forkCount column to collections and agents listings - Add views/reviews to tool detail statistics sidebar - Remove deprecated hardcoded statistics and categories from homePageData
81 lines
1.6 KiB
JSON
81 lines
1.6 KiB
JSON
{
|
|
"$schema": "https://openapi.vercel.sh/vercel.json",
|
|
"buildCommand": "pnpm run build:web",
|
|
"outputDirectory": "apps/web/.next",
|
|
"installCommand": "pnpm install",
|
|
"framework": "nextjs",
|
|
"git": {
|
|
"deploymentEnabled": {
|
|
"main": true
|
|
}
|
|
},
|
|
"github": {
|
|
"silent": false,
|
|
"autoJobCancelation": true
|
|
},
|
|
"headers": [
|
|
{
|
|
"source": "/(.*)",
|
|
"headers": [
|
|
{
|
|
"key": "Strict-Transport-Security",
|
|
"value": "max-age=31536000; includeSubDomains; preload"
|
|
},
|
|
{
|
|
"key": "X-Content-Type-Options",
|
|
"value": "nosniff"
|
|
},
|
|
{
|
|
"key": "X-Frame-Options",
|
|
"value": "DENY"
|
|
},
|
|
{
|
|
"key": "X-XSS-Protection",
|
|
"value": "1; mode=block"
|
|
},
|
|
{
|
|
"key": "Referrer-Policy",
|
|
"value": "strict-origin-when-cross-origin"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"crons": [
|
|
{
|
|
"path": "/api/sync/changes",
|
|
"schedule": "0 */4 * * *"
|
|
},
|
|
{
|
|
"path": "/api/sync/keyword",
|
|
"schedule": "0 */6 * * *"
|
|
},
|
|
{
|
|
"path": "/api/sync/enrich",
|
|
"schedule": "*/2 * * * *"
|
|
},
|
|
{
|
|
"path": "/api/sync/metrics",
|
|
"schedule": "0 0 * * *"
|
|
},
|
|
{
|
|
"path": "/api/sync/stats-snapshot",
|
|
"schedule": "0 0 * * *"
|
|
},
|
|
{
|
|
"path": "/api/sync/view-rollup",
|
|
"schedule": "30 0 * * *"
|
|
},
|
|
{
|
|
"path": "/api/sync/cleanup-activity",
|
|
"schedule": "0 3 * * *"
|
|
},
|
|
{
|
|
"path": "/api/cron/discord-summary",
|
|
"schedule": "0 9 * * *"
|
|
},
|
|
{
|
|
"path": "/api/cron/use-cases",
|
|
"schedule": "0 0 * * *"
|
|
}
|
|
]
|
|
}
|