- Integrated Gemini AI for spam detection in the contact form API, returning a token for manual review requests if spam is detected.
- Implemented a manual review UI in the Form.astro component, allowing users to submit their email and justification for review.
- Updated email handler to send manual review requests to a designated email address.
- Enhanced rate limiter configuration to allow more attempts in a shorter duration for better user experience.
- Added new dependencies: jsonwebtoken and @types/jsonwebtoken for handling JWTs in the spam detection process.
- Adjusted positioning and dimensions of the BackToTop button for better accessibility and user experience.
- Increased right margin and button size to enhance visibility and interaction.
- Updated ImageModal styles to include overflow handling and a maximum height for better usability.
- Adjusted the structure to place the enlarged image at the top, enhancing visual presentation.
- Removed the redundant image container to streamline the component.
- Updated ImageModal styles to center the modal and adjust image container dimensions for better visual presentation.
- Refactored CompactSteps to include an icon component for better visual consistency and adjusted layout for improved readability.
- Removed outdated WorkExperience item rendering to streamline the component structure.
- Updated aboutme page to conditionally set icons based on title content for better context.
- Replace Netlify adapter with Node adapter in astro.config.ts for standalone mode.
- Update package.json to reflect the new dependency on @astrojs/node.
- Modify package-lock.json to include updated versions of dependencies and remove Netlify-specific configurations from the contact form.
- Introduce a hidden CSRF token input field in the contact form.
- Implement a function to fetch and set the CSRF token on form load.
- Update form submission logic to use FormData and re-fetch the CSRF token after successful submission.