Skip to main content
✳︎

Changelog

Log of all notable changes and updates made to this website.

2026

  1. Nov 5· v1.8.2· latest

    Say Hi on Instagram

    The footer now links to my Instagram, @withluv.lily. Behind the scenes, I also slimmed down the site's server code so that new changes can…

    The footer now links to my Instagram, @withluv.lily. Behind the scenes, I also slimmed down the site's server code so that new changes can deploy again.

  2. Nov 5· v1.8.0

    Search Your Way Through the Bookmarks

    The bookmarks page has a new search icon. Click it and type to find bookmarks by title, website or tag, on its own or alongside the…

    The bookmarks page has a new search icon. Click it and type to find bookmarks by title, website or tag, on its own or alongside the category and tag filters.

  3. Nov 5· v1.7.2

    Moving House to Netlify

    The garden now lives on Netlify instead of Vercel. Nothing should look different, and the visitor counter still counts first visits only.

    The garden now lives on Netlify instead of Vercel. Nothing should look different, and the visitor counter still counts first visits only.

  4. Nov 4· v1.7.1

    Keeping Your Email Private

    The guestbook and AMA now go only through the site's own server, and the database is closed to the public. Email addresses you leave there…

    The guestbook and AMA now go only through the site's own server, and the database is closed to the public. Email addresses you leave there stay private and are only used to send you a reply.

  5. Nov 4· v1.7.0

    Counting New Visitors

    I wanted to know how many new people find the garden, so the site now counts first visits.

    I wanted to know how many new people find the garden, so the site now counts first visits.

    • Your browser remembers it has been counted, so coming back doesn't count again.
    • All I see are totals: how many people, which site sent them, which page they landed on, and their country.
    • No accounts, no IP addresses, and nothing that can tell one visitor from another.

    Behind the scenes, I also got a small dashboard for answering questions and tending the garden.

  6. Nov 4· v1.6.3

    Easier to Find, Easier to Share

    The sitemap was empty, so search engines had no map of the garden. It now builds itself from everything published.

    • The sitemap was empty, so search engines had no map of the garden. It now builds itself from everything published.
    • Sharing a link now shows a proper card instead of an old screenshot.
    • The "Leave a link" form on the webroll now saves your link properly.
    • The guestbook no longer sends signers' email addresses along with its entries.
    • Book cards on the bookshelf got their paper texture back.
  7. Nov 4· v1.6.2

    Micro-blog and Changelog Refresh

    Micro-blog

    Micro-blog

    • A calmer feed, grouped by month, without the timeline and cards.
    • Every thought now has its own link, and search takes you straight to it.
    • Pull a random thought jumps to one at random.
    • Hearts stay private on your device. The old like count was never actually saved, so it's gone.

    Changelog

    • Grouped by year, with short summaries you can open for the full details.
    • The filter now matches the types of update on this page.

    Phones

  8. Nov 4· v1.6.1

    Easier to Find Your Way Around

    A breadcrumb trail in the top bar now shows where you are and takes you back up.

    • A breadcrumb trail in the top bar now shows where you are and takes you back up.
    • The footer shows up on every regular page, including the whole playground.
    • Essays and notes show the title of the next and previous piece, not just "Prev" and "Next".
    • Playground toys link to each other in a loop, so there's always another one to try.
    • Back arrows now work even if you landed directly on a page.
  9. Nov 4· v1.6.0

    More Things to Play With

    The garden got a lot sillier.

    The garden got a lot sillier.

    • Grow a flower: water one on the homepage until it blooms, then plant it in your own patch.
    • Petal Catch: catch the petals, dodge the bees, beat your best score.
    • Doodle Pad: draw something and stick it on your own fridge.
    • Color Theory and Animation Lab: two toys that replace the old "Coming Soon" cards.
    • Wander: the dice button in the top bar sends you somewhere random.
    • A new 404 page: getting lost should have its upsides.

    There are also a few secrets hidden around the site. I'm not telling you where.

  10. Nov 4· v1.5.1

    Fixing What Was Quietly Broken

    Homepage note links went to a page that didn't exist, and so did a few others around the site.

    • Homepage note links went to a page that didn't exist, and so did a few others around the site.
    • Photos in old WordPress posts in the archives show up again.
    • The suggestion form was posting to nothing. It now saves suggestions.
    • Every page was telling search engines it was the homepage. Each one now speaks for itself.
    • Removed a duplicate admin tab, and Terminal Notes no longer saves every 3 seconds.
  11. Nov 4· v1.5.0

    A Much Lighter Garden

    The site now loads far less before you can read anything.

    The site now loads far less before you can read anything.

    • Most pages load about 115KB of JavaScript, down from about 530KB. The homepage went from 535KB to 132KB.
    • The homepage is pre-rendered, so it no longer fetches about 300KB of data every time it loads.
    • Music only downloads when you press play.
    • Essay images went from 22MB to 3.6MB, and the favicon from 446KB to 9KB.
    • Fonts moved to WOFF2, and essays and static data are now built ahead of time.
    • Removed about 35 unused packages and dozens of unused files.
  12. Nov 4· v1.4.3

    AMA Replies by Email

    When I answer a question on the AMA page, the person who asked can now get the reply by email instead of having to keep checking back.

    When I answer a question on the AMA page, the person who asked can now get the reply by email instead of having to keep checking back.

  13. May 15· v1.4.2

    Bookmarks Sort Toggle

    Added a sort toggle button to the bookmarks page (/garden/bookmarks)

    New Features

    🔄 Bookmarks Sort Functionality

    • Added a sort toggle button to the bookmarks page (/garden/bookmarks)
    • Small filter button (↕️) in the results count section allows switching between sort orders
    • Default order: Newest to oldest (most recent bookmarks first)
    • Toggle switches to: Oldest to newest (chronological order)
    • Visual feedback with hover effects and clear button text
    • Maintains sort order across page interactions and filtering

    📚 TBR Section for Bookshelf

    • Added a dedicated TBR section to the bookshelf experience
    • TBR books now appear in a clean table layout with title, author, pages, and themes/tags
    • The new section is visually distinct from the Reading and Read lists
    • Supports the new bookshelf content structure for future TBR entries

    💡 User Experience Improvements

    • Intuitive sort toggle with descriptive button text ("Newest First" / "Oldest First")
    • Tooltip shows current sort direction and toggle action
    • Smooth transitions and hover states
    • Works seamlessly with existing tag and category filtering
    • Preserves user sort preference during filtering operations

    🎯 Smart Integration

    • Sort toggle appears next to the results count for easy access
    • Button uses consistent design with existing filter elements
    • Maintains performance with efficient sorting logic
    • No impact on existing bookmark filtering functionality

    Technical Notes

    • Implemented using React state management with useState hook
    • Added sort order state with 'newest' | 'oldest' types
    • Sorting logic applied before filtering for optimal performance
    • Uses ArrowUpDown icon from Lucide React for consistent iconography
    • No additional dependencies required
    • Passes all ESLint checks and maintains code quality standards
  14. May 11· v1.4.1

    Homepage Search Bar

    Added a comprehensive search bar under the "Recently Published" header on the homepage

    New Features

    🔍 Homepage Search Functionality

    • Added a comprehensive search bar under the "Recently Published" header on the homepage
    • Enables users to search across all content types including essays, notes, poems, bookmarks, archives, and microblog posts
    • Real-time search results appear instantly as users type
    • Search matches titles, content, excerpts, tags, and page descriptions
    • Displays up to 20 results with content type indicators and brief snippets
    • Includes direct links to content with external link indicators for bookmarks

    🎯 Smart Content Discovery

    • Searches across multiple content sources:
      • Essays (title, excerpt, content, tags)
      • Notes (title, content, tags)
      • Bookmarks (title, tags, external URLs)
      • MicroBlog posts (content)
      • Archives (title, category)
      • Static pages (essays, notes, poems, bookmarks, archives, quotes)
    • Results are deduplicated and prioritized by relevance
    • Clear search results UI with type badges and descriptive snippets

    💡 User Experience Improvements

    • Clean, accessible search interface using existing SearchBar component
    • "Clear" button to reset search and return to normal view
    • Helpful "no results" message with suggestions
    • Responsive design that works on all screen sizes
    • Maintains existing homepage layout and visual consistency

    Technical Notes

    • Implemented as client-side search with useMemo for performance optimization
    • Fetches all content data on page load for instant searching
    • Reuses existing SearchBar component for design consistency
    • No additional dependencies required
    • Passes all ESLint checks and maintains code quality standards
  15. Apr 11· v1.4.0

    Wants — 100 Things I Want To Do

    Added a new personal page listing things to do (and that have been done) in the /me section.

    New Features

    ✅ New Wants To Do page

    • Added a new personal page listing things to do (and that have been done) in the /me section.
    • Route: (with-sidebar)/me/wants-to-do — file: app/(with-sidebar)/(me)/wants-to-do/page.tsx
    • Displays a simple checklist UI with completion state and a compact progress indicator.
    • Initial items added include learning goals, travel plans, and gear wishes (20 items).

    Technical Notes

    • Implemented as a client component to allow interactive completion state.
    • Reuses site ScrollProgress and Footer components for consistent layout and behavior.
    • Added the list as an inline array in the page component; can be migrated to a data file or CMS later.

2025

  1. Aug 1· v1.3.1

    New Poetry Page

    Built and designed a new Poetry page in the Garden section

    New Features

    📝 Poetry Corner

    • Built and designed a new Poetry page in the Garden section
    • Created a unique two-column layout for browsing and reading poems
    • Left column displays a scrollable list of all poems
    • Right column shows the selected poem content
    • Default view displays the most recent poem
    • Implemented the "font-heart" styling for poem titles using the rainyhearts font
    • Added proper Markdown rendering for poem content

    📚 Content Expansion

    • Added multiple new poems to the collection
    • Organized poems with proper tags and metadata
    • Updated site navigation to include the new Poetry section

    🔄 Technical Improvements

    • Created new data handling utilities in lib/garden/poems.ts
    • Implemented custom CSS styling specifically for poetry display
    • Added poems to the sitemap for improved discoverability
  2. Jul 29· v1.3.0

    New Homepage Design

    Created a new home page design with a cleaner, more modern layout

    Interface Improvements

    🏠 New Homepage Layout (v2)

    • Created a new home page design with a cleaner, more modern layout
    • Added dedicated route at /home-v2 for testing before replacing the main homepage
    • Implemented responsive grid layout that adapts to different screen sizes
    • Included sections for recently published content from multiple sources

    📱 Component Updates

    • Enhanced content sections with a consistent design language:
      • Essays
      • Notes
      • Bookmarks (new addition)
      • MicroBlog (new addition)
    • Created new API endpoint /api/bookmarks to efficiently parse bookmark data
    • Improved data fetching to retrieve and display content from multiple sources
    • Added console logging for debugging content loading

    🎵 Media Integration

    • Integrated MusicPlayerWidget component for audio welcome message
    • Added AnimatedLogo component for visual interest
  3. Jul 6· v1.2.1

    Renamed Writings to Essays

    Renamed "writings" to "essays" across the entire site

    Content Structure Changes

    📝 Content Organization

    • Renamed "writings" to "essays" across the entire site
    • Updated folder structure:
      • Content/writings/ → Content/essays/
      • Content/archives/writings/ → Content/archives/essays/
      • public/images/writings/ → public/images/essays/
    • Updated all route paths:
      • /garden/writings → /garden/essays
      • /api/writings → /api/essays

    Code Updates

    🔧 Technical Changes

    • Renamed lib/garden/writings.ts → lib/garden/essays.ts
    • Updated type definitions: Writing → Essay
    • Updated function names: getAllWritings() → getAllEssays()
    • Updated component names: WritingMarkdownWrapper → EssayMarkdownWrapper
    • Updated all internal links and references
    • Updated navigation labels and sidebar links
    • Updated README documentation

    Content Updates

    📚 Documentation

    • Updated all content files that referenced "writings"
    • Updated archive README files
    • Updated script configurations
    • Updated topic lists and cross-references
    • Maintained backward compatibility where possible

    This change provides better semantic clarity between different types of content - distinguishing longer-form essays from shorter notes and other content types.

  4. Jun 24· v1.2.0

    Terminal Notes & Firebase Migration

    Added a new Terminal Notes project to the playground

    New Features

    🖥️ Terminal Notes

    • Added a new Terminal Notes project to the playground
    • Simple, minimal note-taking interface with terminal aesthetics
    • Hybrid storage: loads initial content from server, saves changes to localStorage
    • Auto-saves every 15 seconds to localStorage
    • Manual save with Ctrl/Cmd + S keyboard shortcut
    • Character and line count statistics
    • Monospace font for clean, readable text
    • Added to playground page and sidebar navigation

    Infrastructure Updates

    🔧 Firebase Migration

    • Migrated all user-generated content to Firebase Firestore
    • Fixes production deployment issues where file system writes were failing
    • APIs now use Firestore instead of local file storage:
      • Guestbook entries → guestbook collection
      • Ask Me Anything questions → ama-questions collection
      • Micro-blog posts → micro-blog collection
      • Tool submissions → tool-submissions collection
    • Improved data persistence and scalability
    • No more "Error failed to save entry" messages in production

    Bug Fixes

    🐛 Content Security Policy

    • Updated CSP headers to properly allow Google Fonts
    • Fixed font loading issues with external stylesheets
    • Improved CSP formatting and wildcard domain support

    Technical Details

    • Built with React and TypeScript
    • Hybrid storage: reads initial content from Content/notes/index.md, saves changes to localStorage
    • Responsive design that works on all screen sizes
    • Accessible keyboard shortcuts
    • Clean, terminal-inspired UI design
  5. Jun 24· v1.10.0

    Added Terminal Note-Taking Application to Playground

    Created a new "Terminal" application in the Playground section for streamlined note-taking and drafting.

    • Created a new "Terminal" application in the Playground section for streamlined note-taking and drafting.
    • Features a full-screen, terminal-inspired interface with monospaced font (Geist Mono) for optimal typing experience.
    • Implements persistent storage system saving all notes to each visitors localStorage.
    • Added comprehensive auto-save functionality:
      • Automatic saves every 15 seconds when content is present
  6. Jun 21· v1.9.0

    Added "Word of the Day" Collection Page

    Created a comprehensive "Word of the Day" page under the Garden section.

    • Created a comprehensive "Word of the Day" page under the Garden section.
    • Features a table-based layout displaying vocabulary entries with serial numbers, dates, pronunciations, and detailed meanings.
    • Implemented structured data organization with 13 curated word entries from June 2025.
    • Added to sidebar navigation under Garden for easy access with ScrollText icon.
    • Each entry includes:
      • Date in yyyy-mm-dd format for consistent chronological display
      • Word with IPA pronunciation guide
      • Part of speech categorization (noun, adjective, adverb, etc.)
      • Comprehensive meanings and contextual explanations
      • Real-world usage examples and similar words
    • Responsive table design matching the archives page aesthetic.
    • Built with dedicated API endpoint /api/word-of-the-day for efficient data fetching.
    • Enhanced user experience with loading skeletons, error handling, and hover effects.
  7. Jun 21· v1.8.0

    Added "Quotes" Collection Page

    Introduced a new "Quotes" page under the Collections section.

    • Introduced a new "Quotes" page under the Collections section.
    • Features a curated collection of inspiring quotes from various thinkers, innovators, and leaders throughout history.
    • Clean, minimalist design with author names prominently displayed alongside their quotes.
    • Added to sidebar navigation under Collections for easy access.
    • Includes quotes from Albert Einstein, Steve Jobs, Maya Angelou, Nelson Mandela, Marie Curie, and Winston Churchill.
  8. Jun 16· v1.7.0

    Added "Hello" Page

    Introduced a new "Hello" page, accessible from the sidebar right after Home.

    • Introduced a new "Hello" page, accessible from the sidebar right after Home.
    • The Hello page shares Lily's preferred ways to connect and a bit of personal background.
    • Sidebar navigation updated with a new icon for quick access.
  9. Jun 15· v1.17.0

    Added Webmentions Support

    Added Webmentions support across the entire website

    What's Added

    • Added Webmentions support across the entire website
    • Integrated with webmention.io for receiving and displaying mentions
    • Added webmention display in the site footer

    Updates

    • Added webmentions support using webmention.io
    • Created WebmentionFooter component for displaying mentions
    • Added webmention and pingback endpoint tags
    • Added environment variables for site URL and API token
    • Integrated webmentions display into site footer

    Technical Details

    • Webmentions appear at the bottom of every page in a responsive grid
    • Shows author information, timestamps, and mention content
    • Handles likes, replies, bookmarks, and general mentions
    • Supports dark/light mode and matches site design
    • Added proper webmention endpoint tags in layout
    • Configured webmention.io integration with API token

    Next Steps

    • Add mention type filtering (likes, replies, etc.)
    • Consider adding real-time updates
    • Add webmention sending capability
    • Add mention analytics dashboard
    • Consider showing mention counts by type
  10. Jun 13· v1.7.0

    Content Archiving System and Micro-blog Improvements

    Created a comprehensive archiving system for previous writings and notes

    • Created a comprehensive archiving system for previous writings and notes
    • Moved existing content to dedicated archives structure under Content/archives/
    • Implemented archives listing page at /archives with filtering by content type
    • Built individual archive entry view at /archives/[category]/[slug]
    • Added API routes to fetch both archive listings and individual entries
    • Created clean, well-structured table display for archive items with dates
    • Implemented proper category indicators with color coding
    • Added filtering capability to view all, writings-only, or notes-only content
    • Cleared old content from Content/essays/ and Content/notes/ directories for fresh start
    • Updated site sitemap to include new archives section
    • Added Archives link to main sidebar navigation under Garden section
    • Removed tags from micro-blog as they were no longer needed
    • Improved archives table with creation dates for better organization
    • Ensured consistent styling with the rest of the digital garden section
  11. Jun 13· v1.6.8

    Then Page Implementation (Now Archive)

    Created new "Then" page to archive previous Now page entries

    • Created new "Then" page to archive previous Now page entries
    • Implemented main listing page at /then that displays all past entries by date
    • Built individual entry view at /then/[slug] to display archived Now page content
    • Added API routes to fetch both the list of entries and individual entry content
    • Designed responsive UI with loading states and proper error handling
    • Implemented animated transitions using Framer Motion
    • Ensured consistent styling with the rest of the site
    • Added "Back" navigation for improved user experience
    • Set up proper metadata display including creation dates
    • Organized content structure in the Content/then directory
    • Updated sitemap to include new Then pages
  12. Jun 11· v1.6.7

    Microblog Page Implementation

    Created new Microblog page in the digital garden section for short-form thoughts and musings

    • Created new Microblog page in the digital garden section for short-form thoughts and musings
    • Implemented a timeline-style layout with alternating thread cards
    • Built a likes functionality that persists per unique visitor (using localStorage)
    • Connected the threads to real markdown content stored in Content/micro-blog directory
    • Created an API route to fetch and update thread data
    • Added proper font stylings for the thread cards with monospace font
    • Ensured compatibility with both light and dark modes
    • Implemented infinite scrolling instead of pagination for a seamless experience
    • Added loading indicators consistent with site-wide design patterns
    • Included visual timeline with connecting lines between entries
    • Set up proper date formatting for thread entries
  13. Jun 10· v1.6.6

    Todo Page Redesign and Last-Updated System

    Redesigned Todo page with a cleaner, more consistent layout

    • Redesigned Todo page with a cleaner, more consistent layout
    • Implemented a simple, read-only display of website todo items
    • Added visual indicators for completed tasks with proper light/dark mode compatibility
    • Created an automated system to update last-updated.json file
    • Added Git pre-push hook to automatically update timestamps
    • Improved API route to use last-updated.json instead of Git commands
    • Enhanced footer to display last-updated information in a more consistent format
    • Added proper error handling and fallback mechanisms for timestamp tracking
    • Updated styling to ensure consistency with the rest of the site
  14. Jun 10· v1.6.5

    Improved Sitemap Page

    Simplified the sitemap page design for better user experience

    • Simplified the sitemap page design for better user experience
    • Organized all website pages by their sidebar navigation categories
    • Added descriptive text for each page to improve navigation context
    • Removed technical implementation details for a more visitor-friendly presentation
    • Fixed various issues with the sitemap implementation
    • Updated site metadata to reflect the latest changes
  15. Jun 10· v1.6.4

    Website Improvements - Webrings and Sitemap

    Updated the webrings page header style to match the site-wide header design used in notes, writings, and guestbook pages

    • Updated the webrings page header style to match the site-wide header design used in notes, writings, and guestbook pages
    • Updated the IndieWeb webring HTML with proper links and styling
    • Redesigned webring cards to be more visually appealing and better compatible with light mode
    • Added Webmaster Webring with proper navigation links
    • Added GeekRing with proper navigation links
    • Refactored webring implementation to use a data-driven approach for easier maintenance
    • Improved accessibility features for all webring links
    • Created simple, user-friendly sitemap page with all website pages organized by section
    • Listed all pages with descriptions for better navigation
    • Added the sitemap page to the sidebar navigation under the imprint section
  16. Jun 9· v1.6.3

    Removed Pages with Large Dependencies

    Removed the /music-player and /notes-widget from the website. Music player had large dependencies that were impacting on file size and app…

    • Removed the /music-player and /notes-widget from the website. Music player had large dependencies that were impacting on file size and app speed. I added a floating music player which is okay.
  17. Jun 8· v1.6.2

    Updated the Bookmarks Page

    Successfully reorganised my bookmarks entry to be organised by categories. I had 32 different files for 32 different entries, now I have…

    • Successfully reorganised my bookmarks entry to be organised by categories. I had 32 different files for 32 different entries, now I have just 4. They are now organised by categories, making it easy to find something and update new entries.
  18. Jun 7· v1.6.1

    Removed authentication from AMA Page Added Web Manifesto Page

    Users can now ask me anything without having to login. I changed the signin modal message to say signing in isn't necessary. But I guess…

    • Users can now ask me anything without having to login. I changed the signin modal message to say signing in isn't necessary. But I guess since i already implemented it, I'll have to keep something special behind it much later.

    • Restructured the app folder to have pages with sidebar and pages without sidebar.

    • Created a page to share my web manifesto. Currently have a placeholder there, buit I'll update it soon. I have written my manifesto draft, just need to clean it up.

  19. Jun 6· v1.6.0

    Added Floating Music Player and Guestbook Page

    Added floating music player component and integrated it into the layout in place of buy me a coffee button.

    • Added floating music player component and integrated it into the layout in place of buy me a coffee button.
    • Created a guestbook page for surfers of the web to sign when they come across my page. It's a nice way to meet new people on the web.
  20. May 8· v1.5.0

    Added a music-player-widget to the homepage.

    How It Works Now:

    How It Works Now:

    • The music player widget is a small player that plays a voice recording of me welcoming my site visitors. I believe this adds a very unique touch to the site.
  21. May 7· v1.4.0

    Added a Music Player and an Admin Ctrl Room

    Added a page to handle

    Added a page to handle - my audio files and recordings - connected with cloudinary to save audio files

    Added another page to handle - managing the audio files and recordings and other content on the app

  22. May 5· v1.3.0

    Added Footer and Page Credit Comps

    Feed Content: The RSS feed includes:

    Feed Content: The RSS feed includes:

    • I added a footer component to hold the link to my rss feed. It also had current time of the visitor too. My footer is not yer there but that's okay.
    • Redid the PageCredit comp which initially held a lot of texts but I decided simplicity wins, so it just holds the name and link to the person who inspired the page if there's any.
  23. May 5· v1.2.0

    Setup and Implemented RSS Feed

    Feed Content: The RSS feed includes:

    Feed Content: The RSS feed includes:

    • My writings from the /Content/essays directory
    • My logs from the /content/logs directory
    • My notes from the /content/notes directory

    The implementation uses the feed package to generate the feeds in different formats. Each content item includes:

    • Title
    • Link to the content on my website
    • Publication date
    • Description/excerpt
    • Content (where available)
    • Author information
    • Tags as categories

    My visitors can now subscribe to my RSS feed using any RSS reader by simply adding the feed URL. This will help them stay updated with my latest content without having to visit my website regularly.

  24. May 3· v1.1.0

    Someday Page

    Added a someday page.

    • Added a someday page.
    • Added a Page-Credit component for footer to give credits to people who I get page inspirations from.
    • Updated the design for notes with inspirations from
  25. May 1· v1.0.0

    Launch of website

    After three weeks of late nights, countless iterations, and nonstop tinkering, I’m thrilled to announce the launch of my digital garden and…

    After three weeks of late nights, countless iterations, and nonstop tinkering, I’m thrilled to announce the launch of my digital garden and workshop. This is my little corner of the internet where I share what I’m building, what I’m learning, and where my curiosity leads me. Here, ideas are seeds—planted and nurtured over time—rather than waiting for perfection before sharing. It’s an evergreen space to document progress, revisit insights, and grow continuously.