v3.0.0
Changes
✨ Updates
New Badge Feature
- Introduced Badge mode for shields.io-style SVG generation, complementing the existing Orbit animation.
- Create customizable badges with 3,200+ brand icons from Simple Icons.
- Enable highlight mode for a trailing light and shine animation effect.
Shared Architecture Refactoring
- Extracted reusable
IconSearchcomponent for consistent icon selection across features. - Created shared
TextInputand card (Preview,Customize) components to reduce duplication. - Introduced
resolveSimpleIconutility for consistent icon resolution in API routes. - Improved context type safety with error-throwing hooks.
🛠 Fixes & Improvements
Security Enhancements
- Added XML entity escaping to prevent XSS/injection attacks via SVG text parameters.
- Implemented hex color validation in API endpoints to block malicious input.
- Added text length restrictions (100 characters max) on both Orbit and Badge API endpoints.
- Fixed React Server Components CVE vulnerabilities.
Performance & Compatibility
- Fixed Orbit SVG width not properly accommodating long text with dynamic width calculation.
- Added cache headers (
public, max-age=3600, s-maxage=3600) to both Orbit and Badge API routes for improved performance. - Updated README with comprehensive Badge feature documentation and API examples.
Dependencies
- Upgraded packages across the monorepo for improved stability and security.
Full Changelog: https://github.com/wontory/tech-stack/commits/v3.0.0