- Redesigned the 404 error page with a clean background and floating elements for improved visual appeal.
- Introduced glassmorphism effects for the main error container, enhancing the overall aesthetic.
- Added animated elements, including a bouncing 404 number and fun emoji animations, to create a more engaging user experience.
- Implemented responsive design adjustments for better usability on mobile devices.
- Included action buttons for navigation back to the homepage and an about section, improving user interaction.
- Changed the education icon from 'tabler:graduation' to 'tabler:school' to better reflect the educational context.
- This update enhances the clarity and relevance of the icon used in the component.
- Replaced placeholder text with comprehensive descriptions for various educational programs in Dutch, German, and French.
- Updated titles to ensure consistency in terminology across languages.
- Enhanced the overall clarity and informativeness of the education section in the translations file.
- Added a new navigation link for "Skills" in the header data.
- Updated section divs in the About Me page to include specific IDs for "About", "Resume", "Skills", "Certifications", and "Education" for better linking and accessibility.
- Ensured consistent structure across content sections to enhance user experience.
- Changed shimmer effect gradient from white to black for better visibility in light mode.
- Ensured consistent styling across all three components to enhance user experience and visual appeal.
- Introduced touch event listeners to enhance mobile interactivity for certification, education, and skills cards.
- Refactored modal display logic to improve user experience by allowing smooth scrolling and restoring scroll position after modal closure.
- Updated event handling to prevent default actions and ensure modals function correctly across devices.
- Updated modal content styles in Certifications, Education, and Skills components to allow for scrollable content on mobile devices.
- Removed body overflow control during modal display, enabling better user experience by allowing background scrolling.
- Enhanced Work Experience component with click-to-expand functionality for mobile users, improving accessibility and interaction.
- Added touchend event listeners to certification, education, and skills cards for improved mobile compatibility.
- Updated click event listeners to prevent default actions, ensuring modals display correctly on both desktop and mobile devices.
- Enhanced mobile-specific styles in the Work Experience component for better usability, including adjustments to padding, gap, and text sizing.
- Replaced existing widgets with modern versions for Work Experience, Certifications, Skills, and Education sections to improve visual appeal and interactivity.
- Introduced an animated hero background and enhanced call-to-action buttons for better user engagement.
- Implemented staggered animations for content sections to create a more dynamic user experience.
- Updated styles for a cohesive glassmorphism effect across all sections, enhancing the overall aesthetic of the page.
- Reduced the number of weeks shown in the ContributionCalendar component from 19 to 18 when in mobile view and not expanded.
- This change aims to further enhance the usability of the calendar on smaller screens.
- Modified the logic for determining the number of weeks to show in the ContributionCalendar component, reducing the count from 20 to 19 when in mobile view and not expanded.
- This change aims to optimize the calendar display for better usability on smaller screens.
- Updated date handling in ContributionCalendar to work entirely in UTC, ensuring consistency with Gitea's date representation.
- Adjusted logic for calculating the start date of the 52-week period and generating calendar days accordingly.
- Improved comments for clarity regarding the use of UTC in date manipulations.
- Cleaned up redundant code and ensured proper date formatting in the rendering of calendar days.
- Minor adjustments in the development.astro file to comment out a collapsible intro section for better organization.
- Added a new navigation link for "Journii" in the navigation component.
- Updated the layout of multiple pages including antifp, development, eap, privacy, terms, and uptime to enhance visual appeal and organization.
- Introduced hero sections with engaging visuals and improved typography for better readability.
- Enhanced table of contents and key highlights sections for clearer navigation and information presentation.
- Improved styling consistency across pages with backdrop blur effects and responsive design adjustments.
- Introduced a utility function to escape HTML special characters in email content, preventing potential XSS vulnerabilities.
- Updated email templates to utilize the escapeHtml function for user inputs, including name, email, message, IP address, and user agent.
- Ensured that all dynamic content in emails is properly sanitized before being rendered, enhancing overall security and reliability.
- Added detailed logging for spam check attempts and results to aid in debugging.
- Implemented error handling for API key issues and service unavailability, ensuring the system fails open by returning false if Gemini is unreachable.
- Maintained existing spam detection logic while enhancing robustness and user feedback during the process.
- Improved spam detection by integrating Gemini AI and heuristic checks, allowing for more accurate identification of spam messages.
- Updated logging to specify the source of spam detection (Gemini or heuristic) for better debugging and monitoring.
- Maintained existing functionality while enhancing the overall user experience in the contact form submission process.
- 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.
- Deleted multiple blog-related components including Grid, GridItem, Headline, List, ListItem, Pagination, RelatedPosts, SinglePost, and Tags to simplify the codebase.
- Removed associated configurations from src/config.yaml, eliminating unused blog settings.
- Cleaned up email templates and layouts related to blog functionality to enhance maintainability.
- Updated styles in tailwind.css for consistency following the removal of blog components.
- Increased the refresh interval in UpdateTimer from 300 seconds to 1800 seconds for less frequent updates.
- Refactored UptimeStatusIsland to utilize a 30-minute window for data caching and fetching, enhancing performance.
- Updated styles in UptimeStatusIsland for better visual consistency, including backdrop blur effects and improved layout for mobile responsiveness.
- Added state management for mobile detection and scroll position tracking in the UptimeStatusIsland component.
- Implemented responsive design adjustments for heartbeat display based on screen size.
- Introduced visual indicators for scroll position on mobile to improve user experience.
- Updated styles for heartbeat history container to accommodate mobile layout and scrolling behavior.
- Added a new section for SessionStorage usage in the privacy policy, detailing its purpose and data handling.
- Updated headings to include scroll margin for better navigation.
- Revised language in the privacy policy to clarify data handling practices, including contact form submissions and cookie usage.
- Enhanced the terms page with a link to the privacy policy for more comprehensive user information.
- Updated contact information in both documents to include company details.
- Changed the progress bar gradient to a blue color scheme for better alignment with the overall design.
- Adjusted the height and border radius of the progress bar for a more modern appearance.
- Enhanced the transition effect and added a box shadow for improved visual depth.
- Adjusted the color mapping for heartbeat statuses to enhance clarity: changed DOWN to red, PENDING to yellow, and maintained UP as green.
- Simplified the logic for better readability and maintainability.
- Removed UpdateTimer component and integrated countdown functionality directly into UptimeStatusIsland.
- Implemented sessionStorage caching for system status data to enhance performance and user experience.
- Added visual countdown display for the next update, improving user awareness of data refresh timing.
- Updated privacy policy to clarify the use of sessionStorage for caching non-personal data.
- Removed unnecessary comments and adjusted the date format to exclude timezone information.
- Enhanced clarity of the function by focusing on local time display without timezone context.
- Integrated Tippy.js for enhanced tooltip functionality in the UptimeStatusIsland component, providing detailed heartbeat information on hover.
- Added custom styles for Tippy.js tooltips to support light and dark themes.
- Updated package.json and package-lock.json to include @tippyjs/react and its dependencies.
- Updated formatLocalTime function to accept a timezone parameter, allowing for dynamic local time display.
- Modified heartbeat time display to include both local and UTC formats for better user clarity.
- Ensured handling of invalid date scenarios to improve robustness of date formatting.
- Updated package-lock.json to reflect new versions of dependencies, including luxon for date handling.
- Modified UptimeStatusIsland component to improve local time formatting, ensuring UTC display and handling of invalid dates.
- Introduced a new Uptime link in the footer for system status monitoring.
- Updated translations to include the Uptime label in the footer.
- Simplified page title for improved clarity and focus on IT systems and automation.
- Added luxon library for improved date handling.
- Updated UptimeStatusIsland component to format and display local time for heartbeats.
- Enhanced state management to track user timezone and locale.
- Ensured UTC formatting for timestamps in API responses.
- Added state management for open badges and refs for badge popups.
- Implemented toggle functionality for badge information on click.
- Updated badge rendering to support mobile interactions, improving user experience.
- Added react-icons package to the project for icon usage.
- Enhanced UptimeStatusIsland component to display responsive badges for certificate expiry, average ping, and uptime metrics, utilizing icons for mobile views.
- Enabled prerendering for the Uptime page to improve performance.
- Implemented getStaticPaths function to generate paths for supported languages, enhancing SEO and accessibility for multilingual users.
- Updated ToggleTheme component styles for better visibility in dark mode.
- Added a new Uptime link in the Footer for system status monitoring.
- Introduced translations for Uptime in English, Dutch, German, and French to support multilingual users.
- Changed the dateModified to June 7, 2025, for both privacy and terms pages.
- Updated the "Last updated" subtitle to reflect the new modification date.
- Deleted outdated privacy and terms markdown files.
- Updated privacy and terms Astro components to reflect changes in legal compliance, including GDPR and Dutch law.
- Enhanced clarity in user rights and data usage sections.
- Added contact information for privacy and legal inquiries.
- Updated the "Last updated" date to March 6, 2025.
- Changed company references from AstroWind LLC to 365DevNet.
- Revised country references from California, United States to The Netherlands.
- Enhanced language for consistency and clarity throughout the documents.
- Added details on data collection practices and user preferences for improved transparency.
- Enhanced sitemap configuration to limit entries and ensure a single sitemap generation.
- Updated robots.txt to reflect the new sitemap URL.
- Revised metadata descriptions and titles across multiple pages for better SEO alignment.
- Obfuscated email address in the footer for improved privacy.
- Adjusted content in various pages to better reflect services offered and enhance clarity.
- 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.
- Changed LanguageSelectorComponent to use client:visible for better loading performance.
- Updated CollapsibleIntro and ContributionCalendar components to utilize client:visible, enhancing user experience by ensuring they load only when in view.
- Improved icon alignment and sizes for a more cohesive appearance.
- Adjusted padding and spacing to ensure better visual consistency with the overall theme.
- Removed unnecessary spacing in the header layout for a cleaner appearance.
- Enhanced the contact link with additional hover styles for better user experience and visual feedback.
- 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.