Commit Graph

198 Commits

Author SHA1 Message Date
Bitreon 9583dcf078 Fix profile dropdown z-index
- Changed dropdown positioning from absolute to fixed with z-index: 9999 to prevent it from being hidden behind sidebar

- Added complete profile menu with My Collections, My Components, Settings, and Sign Out options

- Implemented mock mode for local testing (window.enableAuthMock() / window.disableAuthMock())

- Mock mode automatically disabled on Vercel/production environments
2026-03-26 15:21:40 +04:00
github-actions[bot] e8b3eea86e chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/23576680885)
2026-03-26 04:03:21 +00:00
Daniel Avila 528cf0354f fix: Remove Beta badge and logo glow from sidebar (#454)
* fix: Remove Beta badge from sidebar

* fix: Remove logo glow effect from sidebar
2026-03-25 19:46:38 -04:00
Dani cfa13b4477 fix: Move theme toggle to TopBar, remove featured card glow 2026-03-25 19:14:02 -04:00
Dani 5bec39235d fix: Post-merge fixes for dark mode PR (#451)
- Detect OS color scheme preference on first visit (prefers-color-scheme)
- Fix duplicate SVG mask IDs in CountryFlag causing rendering conflicts
- Replace useCallback with useMemo for search results in SearchModal
- Remove spurious submodule reference
2026-03-25 18:54:46 -04:00
Bitreon 746a8e2c18 feat: Dashboard dark mode UI overhaul (#451)
* feat: Complete dashboard UI overhaul with dark mode theme system

- Added ThemeToggle component with persistent theme switching
- Implemented comprehensive dark mode styles across all dashboard pages
- Enhanced UI components: Sidebar, TopBar, ComponentGrid, TrendingView, JobsView
- Improved modal designs: SearchModal, SendToRepoModal, CartSidebar
- Updated featured pages and component detail pages with dark mode support
- Added CountryFlag component for jobs display
- Refined typography, spacing, and color schemes for better readability
- Enhanced interactive elements with smooth transitions and hover states
- Updated global styles with CSS variables for theme consistency

* docs: Add comprehensive PR documentation and screenshot guide

* docs: Transform PR into compelling business-focused summary

- Emphasize user benefits and platform value
- Highlight featured partner improvements (Neon, Vercel, Supabase, etc.)
- Detail expected business impact and metrics
- Add comprehensive business value section
- Include strategic benefits and revenue impact
- Professional acknowledgments from BitreonX team
- Focus on quality and attention to detail

* docs: Add executive summary highlighting business value and BitreonX quality

* docs: Add quick reference card for easy PR creation

* fix: resolve remaining P2 issues - sidebar active state, cart height, and date format

- Fix Sidebar.astro active-state icon styling to target nested span element
- Fix CartSidebar.tsx scrollable content height to be dynamic based on footer
- Fix WeWorkRemotely date format from RFC-2822 to ISO 8601 for proper sorting

* fix: use flexbox layout for CartSidebar instead of absolute positioning

Replace hard-coded height calculations with proper flexbox layout:
- Add flex-col to sidebar panel container
- Make header and footer shrink-0 (fixed size)
- Make content flex-1 with min-h-0 (fills remaining space)
- Remove absolute positioning from footer
- Remove hard-coded viewport height calculations

This ensures the scrollable content area dynamically adjusts to the
actual footer height without items being obscured.

* fix: resolve 11 additional P2 code review issues

- Fix malformed Tailwind classes in featured/[slug].astro (hover border syntax)
- Fix malformed Tailwind classes in MyComponentsView and SaveToCollectionButton
- Fix tooltip initialization non-idempotency in Sidebar (prevent duplicate listeners)
- Fix Recently Added sort mislabeling in ComponentGrid
- Fix single/multi-category filter conflict in ComponentGrid
- Fix tag click event bubbling in JobsView
- Fix SearchModal MutationObserver and timer cleanup
- Fix logo visibility issue in JobsView
- Fix fallback color construction in TrendingView
- Fix theme.ts localStorage trust issue with runtime validation
- Fix missing width/height in icon SVGs
- Fix XSS vulnerability in component detail page (use textContent)
- Fix sidebar overflow-x clipping tooltips

* fix: resolve SearchModal timeout race condition and Recently Added sort mismatch

- Fix SearchModal closeModal timeout cleanup using ref to prevent race conditions
  when modal is closed and reopened quickly
- Fix Recently Added sort to use reverse name sort (Z-A) instead of downloads,
  providing distinct behavior from Most Popular until actual date field is available

* fix: Remove misleading 'Recently Added' sort option

The 'Recently Added' sort was using reverse alphabetical order as a placeholder, which is misleading to users expecting actual recency. Since component data doesn't include creation dates, removed this option entirely.

Fixes violation P2 in PR #451
2026-03-25 18:49:38 -04:00
Dani 9594d221a2 chore: Update pdf, skill-creator, and webapp-testing skills from upstream anthropics/skills (March 22, 2026)
pdf (document-processing/pdf-processing):
- Replace SKILL.md with upstream pypdf-based version (was simplified pdfplumber version)
- Update FORMS.md with upstream changes
- Add reference.md (new)
- Add 8 Python scripts: check_bounding_boxes, check_fillable_fields, convert_pdf_to_images,
  create_validation_image, extract_form_field_info, extract_form_structure,
  fill_fillable_fields, fill_pdf_form_with_annotations

skill-creator (development/skill-development):
- Replace SKILL.md with upstream version
- Add agents/: analyzer.md, comparator.md, grader.md (new)
- Add assets/eval_review.html (new)
- Add eval-viewer/: generate_review.py, viewer.html (new)
- Add references/schemas.md (new, existing skill-creator-original.md preserved)
- Add 8 scripts: aggregate_benchmark, generate_report, improve_description, package_skill,
  quick_validate, run_eval, run_loop, utils, __init__ (new)

webapp-testing (security/webapp-testing):
- Add examples/: console_logging.py, element_discovery.py, static_html_automation.py (new)
- SKILL.md unchanged (identical to upstream)

Regenerated catalog: 701 skills
2026-03-25 11:30:33 -04:00
github-actions[bot] ab38321f3a chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/23523904916)
2026-03-25 03:50:32 +00:00
github-actions[bot] e460c6c663 chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/23472073993)
2026-03-24 03:51:47 +00:00
Dani f9e2c1ccd6 chore: Regenerate components.json after skill migration rebase
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-23 11:24:45 -04:00
Dani c8c7a42260 chore: Update claude-api and docx skills from upstream anthropics/skills (March 22, 2026)
Synced skill updates from https://github.com/anthropics/skills:

claude-api skill (SKILL.md + 23 supporting files):
- Models API reference: added GET /v1/models endpoint to Supporting endpoints section
- Live capability lookup section added (models.md updated with Models API field reference
  and capability-filter examples for querying context window, vision, thinking support, etc.)
- Compaction beta expanded: now covers Opus 4.6 and Sonnet 4.6 (was Opus 4.6 only)
- max_tokens defaults guidance added: ~16K for non-streaming, ~64K for streaming
- 128K output tokens wording refined: "for values that large" instead of "for large max_tokens"
- Additional language-specific updates across Python, TypeScript, Java, Go, Ruby, C#, PHP, curl

docx skill (5 XML template files):
- scripts/templates/comments.xml
- scripts/templates/commentsExtended.xml
- scripts/templates/commentsExtensible.xml
- scripts/templates/commentsIds.xml
- scripts/templates/people.xml

Local-only files preserved (not overwritten):
- docx: docx-js.md, ooxml.md, ooxml/ directory, scripts/document.py, scripts/utilities.py

Regenerated catalog: 701 skills total.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-23 11:21:21 -04:00
github-actions[bot] 4a1bbbdd9a chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/23420640101)
2026-03-23 03:59:38 +00:00
Claude db8aa4d7cd feat(dashboard): add slide presentation view for skills
Add a new "Slides" view mode alongside Code/Preview in the SkillExplorer.
Parses YAML frontmatter into a title slide and splits H2 sections into
individual content slides with navigation, keyboard shortcuts, and fullscreen.

https://claude.ai/code/session_01XsDWS1qRqiCjBjcfcNi7Z9
2026-03-22 04:24:53 +00:00
github-actions[bot] deb36c8b7d chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/23395063474)
2026-03-22 03:55:11 +00:00
Daniel Avila 39c10aab48 feat(jobs): add Claude Code jobs section with free scraping pipeline (#435)
* feat(jobs): add Claude Code jobs section with free scraping pipeline

Add a new Jobs page (/jobs) and homepage preview showing positions that
require Claude Code. The scraper uses only free sources (HN Firebase API,
HN Algolia, RemoteOK, WeWorkRemotely RSS) with no API keys needed.
Runs daily via GitHub Actions alongside existing data updates.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(jobs): address all Cubic review feedback (P1+P2)

P1 fixes:
- Location parser now skips role titles (e.g. "AI-Native Technical Operations Lead")
- Salary extraction filters out funding/revenue amounts ($37M raised)
- applyUrl validated with safeUrl() to prevent javascript: injection

P2 fixes:
- timeAgo() handles NaN/invalid dates gracefully
- WeWorkRemotely IDs use URL slug instead of non-deterministic hash()
- GitHub Action diff check includes dashboard/public/claude-jobs.json
- Remote flag also checks description body for remote indicators

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(jobs): fix mojibake encoding and false salary extraction

- strip_html() now fixes common UTF-8 mojibake patterns (’ → ', â€" → —)
- Salary validation requires k/K suffix or >= $1000 for raw amounts
- Removes false positives: $100-140, $150-300 (ambiguous), $20K (bounty)
- Adds $X/yr pattern for single-value annual salaries

Addresses Cubic review comments #8, #9, #10.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat(jobs): add Anthropic Careers source, auth gate, and UI improvements

- Add Greenhouse API collector for Anthropic career listings mentioning Claude Code
- Add Clerk auth gate requiring sign-in to view job links
- Add auth banner with sign-in CTA for unauthenticated users
- Improve description/tag color contrast (#999/#aaa) for dark theme
- Add Anthropic source badge (purple)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(jobs): address Cubic review — avoid unnecessary rerenders and remove candidate cap

- useGlobalAuth: only call setState when values actually change (prevents 500ms rerender loop)
- Remove hard cap of 80 Anthropic candidates to avoid dropping valid Claude Code roles

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-21 15:32:44 -04:00
Dani 4ef7743517 chore: Update slack-gif-creator skill to latest Anthropic version
Synced creative-design/slack-gif-creator with upstream anthropics/skills.
Simplified SKILL.md, updated core modules, removed template files.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-20 20:45:47 -04:00
Dani 2cad57b147 feat: add brightdata-local-search skill to featured/brightdata page
- Added brightdata-local-search skill card to Skills Layer section
- Updated installCommand to include development/brightdata-local-search
- Incremented Components count from 7 to 8
- Added Featured Pages documentation to CLAUDE.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-18 00:02:07 -04:00
Dani 903651c050 chore: regenerate components.json catalog
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 23:53:06 -04:00
Daniel Avila 385147bf0f improve: enhance generate-tests command (#425) 2026-03-17 17:46:11 -04:00
Daniel Avila ef7cddcacc feat: Component Review Loop — automated daily improvement cycle (#414)
* feat: add Component Review Loop with dashboard, API, and agents

Automated daily cycle that reviews, improves, and creates PRs for
components with full traceability in Neon and Linear coordination.

- Add Neon schema: review_cycles, tool_executions, cycle_control tables
- Add API endpoints: cycles (CRUD), tools (logging), control (pause/resume)
- Add dashboard panel at /live-task with cycle table and tool timeline
- Add 3 agents: component-researcher, component-improver, linear-tracker
- Add Clerk auth on control endpoint (restricted to admin email)
- Add authenticateAndGetEmail() to shared auth lib

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: address code review feedback on component review loop

- Fix Neon BIGSERIAL types: id fields now typed as string
- Add Agent tool to component-improver for reviewer delegation
- Fix linear-tracker: remove next-review label on failure to prevent re-queuing
- Validate cycle_id and limit params in API endpoints
- Add https:// check on PR URLs before rendering as links
- Add cycleStartTime to ToolTimeline scroll effect deps
- Note catalog regen is handled by pr-verification, not improver

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 13:15:09 -04:00
Dani 650e6852e9 feat: update Bright Data links to use tracking URL
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-13 19:30:19 -04:00
Daniel Avila f6d8b9c5cc feat: add Bright Data web data template as featured integration (#413)
* feat: add Bright Data web data template as featured integration

Add Bright Data skills (search, scrape, data-feeds, bright-data-mcp,
bright-data-best-practices, design-mirror), MCP component, and featured
page with complete documentation covering 60+ tools for web search,
scraping, structured data extraction, and browser automation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* chore: regenerate components.json with Bright Data components

Updates catalog to include new web-data skills (search, scrape,
data-feeds, bright-data-mcp, bright-data-best-practices, design-mirror)
and brightdata MCP component.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat(dashboard): improve Bright Data featured page UX

- Move Bright Data to first position in featured list
- Add View buttons linking to each skill detail page
- Add rounded corners to logo images across featured cards, header, and sidebar

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 19:18:13 -04:00
daniel 4889304c24 feat(dashboard): redesign component detail pages with unified viewer components
- Add MarkdownViewer, JsonViewer, SkillExplorer components with Code/Preview toggle, search (Cmd+F), TOC sidebar, and gradient fade expand/collapse
- Add FileTreeSidebar for skill file navigation (starts collapsed)
- Make file tree panel stretch to match content height
- Green download badge with icon on detail pages
- Remove Add to Stack button and sidebar collapse functionality
- Metadata displayed as clickable label pills with modal
- Add marked dependency for client-side markdown rendering

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 23:04:11 -04:00
daniel 1c40132dbd fix: cf-crawl skill auto-loads credentials from .env files
The skill now searches for CLOUDFLARE_ACCOUNT_ID and CLOUDFLARE_API_TOKEN
in shell env vars, .env, .env.local, and ~/.env before prompting the user.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 21:02:50 -04:00
daniel e8924578e1 chore: sync components.json to dashboard for cf-crawl skill
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 20:39:08 -04:00
Dani f0b42118fe chore: Regenerate components catalog with PocketBase skills
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 20:27:54 -04:00
Dani 908e21ce8c feat: Add UTM tracking params to BrainGrid partner banner link
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 12:33:27 -04:00
Dani 9212d24244 feat: Add BrainGrid partner banner across all pages
Add PartnerBanner component with BrainGrid branding to index and all
type pages (agents, commands, skills, etc.). Remove BrainGrid from
featured cards section. Include logo assets.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 12:29:33 -04:00
Dani 1aa6c47d21 feat(seo): Add critical SEO foundations — meta tags, canonical, OG, JSON-LD, robots.txt
- Add robots.txt with crawl directives and AI crawler policies
- Add canonical tags to all pages via DashboardLayout
- Add meta descriptions (unique per page type)
- Add Open Graph and Twitter Card meta tags
- Add WebSite + Organization JSON-LD schema (global)
- Add SoftwareApplication JSON-LD schema (homepage)
- Optimize page titles with keywords and component counts
- Add security headers (HSTS, X-Frame-Options, CSP) to vercel.json

SEO Health Score: 22/100 → ~47/100 (estimated)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 18:20:37 -04:00
Dani a50338d5d1 chore: Sync Anthropic official skills from upstream
Updated 5 Anthropic skill mirrors with latest upstream content:
- docx-official: Major update with new scripts, templates, office schemas
- pptx-official: Restructured with editing.md, pptxgenjs.md, new scripts
- pdf-anthropic: Added subscript/superscript section, extract_form_structure.py
- xlsx-official: Updated SKILL.md, added scripts/office directory
- skill-creator: Major update with agents, eval-viewer, benchmark scripts

Skipped locally customized skills (mcp-builder, slack-gif-creator).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 09:33:42 -04:00
Dani 196a569212 feat: Migrate blog to dashboard for www.aitmpl.com
Copy blog posts, assets, CSS, and static files from docs/ to
dashboard/public/ so they are served by the Astro dashboard project.
This restores /blog/ URLs that broke after the domain migration.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 17:36:36 -04:00
Dani 90d00a22ab fix: Use resolved absolute URL in SSR fetch instead of relative path
The url variable was computed correctly but never used - fetch() still
received the original relative COMPONENTS_JSON_URL, causing "Failed to
parse URL from /components.json" on server-side rendering.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 21:19:15 -05:00
Dani 8432c377c6 fix: Resolve SSR fetch for components.json + update CLAUDE.md
- Use absolute URL (https://www.aitmpl.com) for server-side fetch of components.json
- Set site config in astro.config.mjs as fallback
- Update CLAUDE.md to reflect unified single Vercel project architecture

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 21:13:00 -05:00
Dani 571986c94c fix: Resolve SSR fetch for components.json on Vercel
- Set site: 'https://www.aitmpl.com' in astro.config.mjs so import.meta.env.SITE is defined
- Server-side fetch resolves relative /components.json URL using SITE, VERCEL_URL, or localhost fallback
- Fixes "fetch failed" error on component detail pages

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 21:08:20 -05:00
Dani d1f561f914 feat: Migrate API endpoints to Astro dashboard, unify under single Vercel project
- Migrate all API endpoints from api/ (Vercel serverless) to dashboard/src/pages/api/ (Astro routes)
  - track-download-supabase, track-command-usage, track-installation-outcome, track-website-events
  - collections (index, [id], items)
  - health-check, claude-code-check, discord/interactions
- Add shared API libs: cors.ts, neon.ts, auth.ts, changelog-parser.ts
- Add @supabase/supabase-js, @neondatabase/serverless, discord-interactions, @clerk/backend deps
- Remove catch-all API proxy ([...path].ts) - APIs are now native Astro routes
- Serve components.json and trending-data.json from dashboard/public/
- Switch to same-origin fetching (relative URLs) for data files
- Add dashboard/vercel.json with crons and CORS headers
- Simplify CI/CD to single deploy target (dashboard project)
- Update deploy script and package.json scripts

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 20:59:52 -05:00
Dani 6ac16aed3c feat: Add metadata cards carousel and Send to Repo feature
- Add horizontal metadata cards carousel to component detail page
  parsing frontmatter (skills/agents/commands), JSON (MCPs/settings/hooks)
- Cards show description, tools, model, version, author, tags, license
  with orange accent border, compact design, and text truncation
- Add "Send to Repo" button (gated to admin) in My Components
  with GitHub OAuth flow and PR creation
- Add "Metadata" and "Code" section titles
- Update components.json and trending data

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 19:23:47 -05:00
Daniel Avila 3a9e95a883 Add project structure tree visualization to components view (#402)
* feat(dashboard): organize My Components as real project structure with .claude/ tree

Replaces the flat type-grouped view in the collections sidebar with a
realistic project directory tree showing exactly how components will be
installed:

  project/
  ├── .claude/
  │   ├── agents/
  │   ├── commands/
  │   ├── skills/
  │   ├── hooks/
  │   └── settings.json
  └── .mcp.json

Adds an ASCII project structure preview in the main content area so
users can visualize the full installation layout before running the
install command.

https://claude.ai/code/session_01Gh8sj2GFiXotit4qSftpid

* Update dashboard/src/components/MyComponentsView.tsx

Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
2026-03-05 21:19:43 -05:00
Daniel Avila 6cf26f9582 feat: Redesign featured pages to match component detail layout (#395)
Replace iframe-based featured pages with native dashboard layout using
tabbed navigation, sidebar with metadata, and partner-specific content.

- Rewrite dashboard featured/[slug].astro from iframe embed to native
  Astro page with Overview content + Website external link tab
- Expand FeaturedItem type with metadata, links, CTA, and badge data
- Add partner badge color variants (Partner/Database/Toolkit)
- Add sidebar cards: partner info, CTA button, install command, metadata, links
- Remove redundant metadata fields (Type/Category/Website already shown via dedicated fields)
- Update docs/ featured pages with component-page layout (legacy site)
- Create docs/css/featured-page.css for featured-specific styles

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 14:18:13 -05:00
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