Commit Graph

10 Commits

Author SHA1 Message Date
daniel f5f7146888 feat: Add collections API endpoints and improve dashboard proxy
- Add Vercel serverless functions for user collections CRUD (collections.js, [id].js, items.js)
- Add shared auth (Clerk JWT verification) and Neon DB client helpers
- Add @clerk/backend dependency for token verification
- Improve dashboard API proxy: handle double-compression, error handling, filter accept-encoding
- Add retry logic to collections-api.ts for GET requests

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 16:32:23 -05:00
daniel f96e76b1b5 feat: Group My Components items by type in sidebar and right panel
Sidebar tree now nests items under type sub-groups (Skills, Agents, etc.)
and right panel shows typed sections instead of a flat grid.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 14:04:41 -05:00
daniel 0f9fc1b11d chore: Update docs link to docs.aitmpl.com
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 00:39:34 -05:00
daniel b414acaa12 feat: Add beta dashboard banner on docs site and beta label on dashboard
- Banner on docs/index.html linking to app.aitmpl.com
- Beta badge next to title in dashboard sidebar

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 00:29:28 -05:00
daniel 8deb996b85 fix: Fix trending page to fetch data from production URL
Was fetching /trending-data.json locally which no longer exists.
Now fetches from www.aitmpl.com like components.json.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 00:01:06 -05:00
daniel c5d1a78796 fix: Gitignore generated data files in dashboard
Remove trending-data.json from tracking and add both components.json
and trending-data.json to .gitignore. These are fetched at runtime
from www.aitmpl.com, not needed in the repo.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 23:50:33 -05:00
daniel 6560e8c738 fix: Fix dashboard icons and simplify data loading
- TypeIcon: use inline SVG instead of DOMParser (broke SSR hydration)
- Remove placeholder components.json (not needed, fetches from prod URL)
- Simplify COMPONENTS_JSON_URL to always use www.aitmpl.com

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 23:47:14 -05:00
daniel 0f4aaa7217 security: Fix XSS vulnerabilities in docs site and dashboard
Static site (docs/js/):
- Add escapeHTML() utility to utils.js for sanitizing dynamic content
- Apply escapeHTML to component names, descriptions, categories, and
  install commands in card generation (search-functionality.js,
  index-events.js)
- Replace innerHTML with DOM methods for search category tags

Dashboard:
- Create shared TypeIcon component using DOMParser for safe SVG
  rendering (rejects malformed SVG via parsererror check)
- Remove all dangerouslySetInnerHTML usage from SearchModal,
  ComponentGrid, TrendingView, and MyComponentsView
- Clean up unused ICONS imports

Resolves CLA-23

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 23:13:17 -05:00
daniel 2832428952 fix(dashboard): Remove prebuild hack, use standard Astro public/ dir
- Delete scripts/prebuild.cjs (no longer needed)
- Remove static/ directory, assets already live in public/
- Commit placeholder components.json and trending-data.json to public/
  so Vercel can serve them without needing a prebuild write workaround
- Remove prebuild script from package.json
- Update .gitignore to track placeholder data files

Resolves CLA-20, CLA-21

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 23:13:17 -05:00
daniel 37de8b550f feat: Add dashboard source code (app.aitmpl.com)
Astro 5 + React + Tailwind dashboard with Clerk auth for browsing
and managing Claude Code Templates components. Includes proper
.gitignore to exclude build artifacts and generated data files.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 23:13:17 -05:00