<?xml version="1.0" encoding="utf-8"?>
    <feed xmlns="http://www.w3.org/2005/Atom">
     <title>NeetoSite Blog</title>
     <link href="https://www.neeto.com/neetosite/blog/feed.xml" rel="self"/>
     <link href="https://www.neeto.com/neetosite/blog"/>
     <updated>2026-06-04T01:10:17Z</updated>
     <id>https://www.neeto.com/neetosite/blog</id>
     <entry>
       <title><![CDATA[Milestone M33 - DB analysis, node version upgrade, team members export and more]]></title>
       <author><name>Abhay V Ashokan</name></author>
      <link href="https://www.neeto.com/neetosite/blog/milestone-m33-updates"/>
      <updated>2025-04-06T18:30:00Z</updated>
      <id>https://www.neeto.com/neetosite/blog/milestone-m33-updates</id>
      <content type="html"><![CDATA[<ul><li><p>Analyzed the DB using the <code>ruby-pg-extras</code> gem and dropped the index on name for <code>default_blocks</code> . The table always fallbacks to sequential search due to less number of records.</p></li><li><p>Upgraded the Node version for <code>neeto-site-blocks</code> to v22.13.</p></li><li><p>Added the ability to export team members as CSV, Excel, or PDFs.</p></li></ul>]]></content>
    </entry><entry>
       <title><![CDATA[Milestone M32 - scaling issue, utm source, bug fixes and more]]></title>
       <author><name>Abhay V Ashokan</name></author>
      <link href="https://www.neeto.com/neetosite/blog/milestone-m32-updates"/>
      <updated>2025-03-23T18:30:00Z</updated>
      <id>https://www.neeto.com/neetosite/blog/milestone-m32-updates</id>
      <content type="html"><![CDATA[<p>Let's go through what we got done in Milestone M32 (Mar 10 - Mar 23).</p><p></p><ul><li><p>A fresh build of neeto-site-eui will make 1000+ API calls to neeto-site-web. Each API call corresponds to an individual page of a site. This solution was not scalable anymore since one or two APIs started timing out. I refactored the already-optimized query to use Rails.cache. This prevents any DB queries during subsequent builds. The cache is invalidated only when the user publishes any changes to the site. Additionally, the initial build is made to fetch only the sites having a custom domain, and the last published 150 sites. The rest of the sites are built on-demand.</p></li><li><p>Added utm_source and utm_campaign to the "Made with NeetoSite" link.</p></li></ul><h4>Bug fixes</h4><ul><li><p>Fixed a bug was reported in the IconPicker component which crashed the site during switch from outline to filled icons.</p></li><li><p>A persistent bug was resolved in neeto-site-eui. The Honeybadger issue was reported due to the safe links being scanned by Outlook. If you have an Office 365 subscription and your emails contain links to your site and these links use <code>Safe Links</code> feature then it is bound to happen. This error was added to the ignore list as suggested by the team.</p></li><li><p>Refactored the APIs in neeto-site-eui for better error handling during API failures.</p></li><li><p>Added error boundaries to Embed component to not throw errors while the user is typing the embed code.</p></li></ul>]]></content>
    </entry><entry>
       <title><![CDATA[Milestone M31 - DB refactoring, audit fix, default value and more]]></title>
       <author><name>Abhay V Ashokan</name></author>
      <link href="https://www.neeto.com/neetosite/blog/milestone-m31-updates"/>
      <updated>2025-03-10T12:22:25Z</updated>
      <id>https://www.neeto.com/neetosite/blog/milestone-m31-updates</id>
      <content type="html"><![CDATA[<p>Let's go through what we got done in Milestone M31 (Feb 24 - Mar 9)</p><ul><li><p>Fixed all the issues reported by <code>active_record_doctor</code>: Added a few useful indices, removed unused indices, added validations at the DB level, and at the model level. Added a data migration to migrate all blocks with a duplicate identifier in the DB.</p></li><li><p>Fixed all the vulnerabilities during <code>yarn audit</code>.</p></li><li><p>Fixed all the <code>brakeman</code> warnings.</p></li><li><p>Added a default value for button nodes to handle empty edge-case.</p></li></ul>]]></content>
    </entry><entry>
       <title><![CDATA[Milestone M30 - node upgrade, hydration errors fix and more]]></title>
       <author><name>Abhay V Ashokan</name></author>
      <link href="https://www.neeto.com/neetosite/blog/milestone-m30-updates"/>
      <updated>2025-02-24T07:15:16Z</updated>
      <id>https://www.neeto.com/neetosite/blog/milestone-m30-updates</id>
      <content type="html"><![CDATA[<p><span style="background-color: rgb(255, 255, 255)">Let's go through what we got done in Milestone M30 (Feb 10 - Feb 23).</span></p><p></p><ul><li><p>Previously, NeetoChat integration did not show up in the draft preview. This is fixed, by making sure that the <code>neeto-engineering</code> widget embed does not interfere with the site specific widget. Additional bugs related to routing was also fixed.</p></li><li><p>Added <code>CardLayout</code> to the site settings page.</p></li><li><p>Upgraded Node.js version to 22.13.</p></li><li><p>Added more Honeybadger context to the flaky API failures from neeto-site-eui to neeto-site-web. This would help isolate the exact reason why the API fails occasionally.</p></li><li><p>Fixed Hydration errors.</p></li><li><p>Added a fallback value for IconComponent if it becomes undefined.</p></li></ul>]]></content>
    </entry><entry>
       <title><![CDATA[Milestone M29 - improved FAQ, embed block and more]]></title>
       <author><name>Abhay V Ashokan</name></author>
      <link href="https://www.neeto.com/neetosite/blog/milestone-m29-updates"/>
      <updated>2025-02-10T13:42:48Z</updated>
      <id>https://www.neeto.com/neetosite/blog/milestone-m29-updates</id>
      <content type="html"><![CDATA[<p>Let's go through what we got done in Milestone M29 (Jan 27 - Feb 09).</p><p></p><p>This milestone was focused on bug fixes:</p><ul><li><p>The embed block in the Yoga Studio template was marked with the wrong category (embed instead of embed_video). Fixed the template and migrated all existing data in DB.</p></li></ul><ul><li><p>Added a <code>toString()</code> to rich text content rendering a single integer to prevent page crashes.</p></li><li><p>Refactored Public::PublishedSitesController to return predictable errors.</p></li></ul><p>Enhancement:</p><ul><li><p>Improved the FAQ block. </p><ul><li><p>The entire question is now clickable. The block can only be opened and closed by clicking on the title, ensuring behavior is consistent with a generic FAQ block.</p></li><li><p>The expand icon will match the text color instead of using a hardcoded gray variant.</p></li></ul></li></ul>]]></content>
    </entry><entry>
       <title><![CDATA[Milestone M28 - fallback alt text, inject style and more]]></title>
       <author><name>Abhay V Ashokan</name></author>
      <link href="https://www.neeto.com/neetosite/blog/milestone-m28-updates"/>
      <updated>2025-01-26T18:30:00Z</updated>
      <id>https://www.neeto.com/neetosite/blog/milestone-m28-updates</id>
      <content type="html"><![CDATA[<p>Let's go through what we got done in Milestone M28 (Jan 13 - Jan 26).</p><p></p><ul><li><p>Do not show the cursor as a pointer if the href attribute of the link element is missing.</p></li><li><p>Implemented a method to inject styles into the builder iframe after the Vite migration.</p></li><li><p>Added a fallback alt text for images to prevent React-minified errors on the Next.js side.</p></li><li><p>When Next.js receives a request to revalidate a site, even if the site is in a draft or deleted state, it throws an error and fails to revalidate it. We fixed the issue.</p></li><li><p>Prevented the generation of published sites for deactivated organizations.</p><p></p><p><strong>Bug fixes</strong></p></li><li><p>Permitted draft_attributes attribute to prevent an unpermitted attributes error in image uploads.</p></li><li><p>Added a fallback for the onClick operation in buttons.</p></li></ul>]]></content>
    </entry><entry>
       <title><![CDATA[Milestone M27 - missing href, dyno memory and more]]></title>
       <author><name>Abhay V Ashokan</name></author>
      <link href="https://www.neeto.com/neetosite/blog/milestone-m27-updates"/>
      <updated>2025-01-14T11:32:41Z</updated>
      <id>https://www.neeto.com/neetosite/blog/milestone-m27-updates</id>
      <content type="html"><![CDATA[<p><span style="background-color: rgb(255, 255, 255)">Let's go through what we got done in Milestone M27 (Dec 30-Jan 12).</span><br></p><ul><li><p>We found a case in which missing href attributes in anchor tags caused pages to throw an error. This has been resolved.</p></li><li><p>We increased the dyno's memory to 1GB after noticing rare cases of server crashes.</p></li><li><p><span style="background-color: rgb(255, 255, 255)">A client reported a bug where the border color was only applied to the first accordion item in the FAQ section. This issue has now been resolved.</span></p></li></ul>]]></content>
    </entry><entry>
       <title><![CDATA[Milestone M26 - common section, page level seo and more]]></title>
       <author><name>Abhay V Ashokan</name></author>
      <link href="https://www.neeto.com/neetosite/blog/milestone-m26-updates"/>
      <updated>2024-12-29T18:30:00Z</updated>
      <id>https://www.neeto.com/neetosite/blog/milestone-m26-updates</id>
      <content type="html"><![CDATA[<ul><li><p><span style="background-color: transparent">Added the ability to have a common section. Modifying this common section will automatically apply similar changes to all pages, which is especially useful for building multi-page sites. For example, by marking the header and footer sections as common, users can update a single section, and these changes will be reflected across all screens.</span></p></li><li><p><span style="background-color: transparent">Improved </span>performance<span style="background-color: transparent"> while cloning sites by eliminating N+1 queries and skipping unnecessary callbacks. The time taken to clone the BigBinary Academy website (with 27 pages and 293 blocks) has decreased to 18 seconds, down from 2 minutes and 35 seconds.</span></p></li><li><p><span style="background-color: transparent">Added page-level seo settings to home page. Previously, these settings were configurable for all the pages except the home page.</span></p></li><li><p><span style="background-color: transparent">Set up New Relic for the EUI.</span></p></li><li><p><span style="background-color: transparent">Fixed CSS priorities and related UI inconsistencies on the EUI side by syncing the TailwindCSS configuration with that neeto-site-web.</span></p></li><li><p><span style="background-color: transparent">Fixed UI issues in the builder page header for smaller screens.</span></p></li><li><p>Audited<span style="background-color: transparent"> and removed all the unused columns from tables.</span></p></li><li><p><span style="background-color: transparent">Bug fixes.</span></p></li></ul>]]></content>
    </entry><entry>
       <title><![CDATA[Milestone M25 - memory leak fix, page load performance and more]]></title>
       <author><name>Sooraj Bhaskaran</name></author>
      <link href="https://www.neeto.com/neetosite/blog/milestone-m25-updates"/>
      <updated>2024-12-17T12:52:41Z</updated>
      <id>https://www.neeto.com/neetosite/blog/milestone-m25-updates</id>
      <content type="html"><![CDATA[<ul><li><p>Fixed a memory leak issue in NeetoSite that was causing high RAM consumption during prolonged usage.</p></li><li><p>Improved initial page load performance by implementing CloudFront CDN configuration for static assets.</p></li><li><p>Implemented a new feature allowing users to transfer sites between workspaces directly through the user interface.</p></li><li><p>Resolved template organization issues related to neeto-templates-nano implementation.</p></li><li><p>Enhanced dashboard API performance and addressed multiple bug issues reported through Honeybadger.</p></li></ul>]]></content>
    </entry>
    </feed>