<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Graasp blog</title>
  <subtitle>Blog posts and update log by the Graasp team</subtitle>
  <link rel="alternate" href="https://dev.graasp.org/blog" />
  <link rel="self" href="https://dev.graasp.org/blog/feed.atom" />
  <id>https://dev.graasp.org/blog</id>
  <updated>2026-05-04T00:00:00+00:00</updated>
  <author>
    <name>Graasp</name>
  </author>
  
    <entry>
      <title>May 4th, Fixes and improvements</title>
      <summary type="html"><![CDATA[ <p>
This is our monthly update that includes bug fixes and quality of life improvements. We are making constant changes to improve the experience of using Graasp. Read below for the complete list of changes included in this release.</p>
 ]]></summary>
      <link href="https://dev.graasp.org/blog/2026-05-04-update"/>
      <id>https://dev.graasp.org/blog/2026-05-04-update</id>
      <updated>2026-05-04T00:00:00+00:00</updated>
      <content type="html"><![CDATA[ <p>
This is our monthly update that includes bug fixes and quality of life improvements. We are making constant changes to improve the experience of using Graasp. Read below for the complete list of changes included in this release.</p>
<!-- truncate -->
<h2>
Improvements to authentication error messages</h2>
<p>
In this release, we worked on improving authentication error messages. This should allow users to better understand why they cannot log in. In previous versions, using an expired login link resulted in a blank page. We now handle this more gracefully and invite the user to log in again.</p>
<h2>
Supporting Japanese</h2>
<p>
We are happy to share that the groundwork has been done so that Graasp can be used in Japanese. We are still missing complete translations in the user interface but will be adding them shortly. If you would like to contribute to the translations in Japanese or any other currently supported language, please reach out to us by email: <a href="mailto:translations@graasp.org">translations@graasp.org</a></p>
<h2>
Self-hosting improvements</h2>
<p>
If you are self-hosting Graasp, this release of the client fixes issues with building and running the project on your own machines.</p>
<h2>
Automatic trash cleanup</h2>
<p>
As announced in our banner in January, we are starting to permanently delete elements that have been in the trash for more than 3 months. This process will run in the background. No action is required on your part. The affected documents are no longer displayed in the trash view. You can still restore recently deleted documents from your Trash.</p>
<h2>
Misc. improvements</h2>
<p>
When reloading the page in Analytics, it now correctly reloads the analytics view.</p>
<p>
Fix an ordering issue when creating a folder with a thumbnail, all new elements should be added after the last element.</p>
<!-- Generic message -->
<p>
We warmly welcome and encourage feedback from our users to continuously improve our platform. You can contact us by email <a href="mailto:admin@graasp.org">admin@graasp.org</a> or by submitting an issue in this <a href="https://github.com/graasp/graasp-feedback">Github repository</a>.</p>
 ]]></content>
    </entry>
  
    <entry>
      <title>March 10th, Fixes and improvements</title>
      <summary type="html"><![CDATA[ <p>
This is a small update that fixes some bugs and consolidates the recently released new landing page and infrastrucutre. Read below for the complete list of changes included in this release.</p>
 ]]></summary>
      <link href="https://dev.graasp.org/blog/2026-03-10-update"/>
      <id>https://dev.graasp.org/blog/2026-03-10-update</id>
      <updated>2026-03-10T00:00:00+00:00</updated>
      <content type="html"><![CDATA[ <p>
This is a small update that fixes some bugs and consolidates the recently released new landing page and infrastrucutre. Read below for the complete list of changes included in this release.</p>
<!-- truncate -->
<h2>
Performance and Accessibility improvements for the landing page</h2>
<p>
We have made small changes to improve the performance and accessibility of the landing page. These include font fetching optimizations and link accessibility enhancements.</p>
<p>
We also improved some technical aspects of our news feed. If you want to keep up to date with these update announcments you can subscribe to our RSS feed using your reader. Do not hesitate to reach out if you notice some issues with your reader.</p>
<p>
These are related to our efforts to make our landing page faster and more accessible (also to search engines).</p>
<p>
We are interested to get your opinion on the recent changes we made, if you want to share your thoughts with us, please contact us by email at: <a href="mailto:feedback@graasp.org">feedback@graasp.org</a>.</p>
<h2>
Bug fixes</h2>
<p>
We fixed a bug that was affecting the home of some users. If you had access to an element with permission lower than admin in your home we would show you administrative features on this element enven though you could not permorm these. For example, deleting the element.
These actions were not autorized but it made it look like you could perform them.
We have fixed this and you should no longer see actions you are not authorized to perform.</p>
<!-- Generic message -->
<p>
We warmly welcome and encourage feedback from our users to continuously improve our platform. You can contact us by email <a href="mailto:admin@graasp.org">admin@graasp.org</a> or by submitting an issue in this <a href="https://github.com/graasp/graasp-feedback">Github repository</a>.</p>
 ]]></content>
    </entry>
  
    <entry>
      <title>February 26th, Updates</title>
      <summary type="html"><![CDATA[ <p>
We are continuing to deliver broad improvements and fixes based on feedback from our users. In this release, we have fully integrated the Support and Blog pages directly into the Graasp environment, making them easier to access and navigate. You can read below for the complete list of changes included in this release.</p>
<!-- Everything below this will not be shown in the post overview -->
 ]]></summary>
      <link href="https://dev.graasp.org/blog/2026-02-26-production-release"/>
      <id>https://dev.graasp.org/blog/2026-02-26-production-release</id>
      <updated>2026-02-26T00:00:00+00:00</updated>
      <content type="html"><![CDATA[ <p>
We are continuing to deliver broad improvements and fixes based on feedback from our users. In this release, we have fully integrated the Support and Blog pages directly into the Graasp environment, making them easier to access and navigate. You can read below for the complete list of changes included in this release.</p>
<!-- Everything below this will not be shown in the post overview -->
<!-- truncate -->
<h2>
Blog and Support pages</h2>
<p>
In addition to a revamp of the homepage, the Blog and Support pages are now fully integrated within Graasp. Previously hosted on separate websites, these resources are now part of the main platform, providing a more consistent and streamlined user experience. Users can stay up to date with the latest news and updates and easily access help and documentation without leaving the application.</p>
<p>
If you are interested in specific support documentation or would like us to cover a particular topic, please let us know.</p>
<p>
  <img src="/images/blog/2026-02-26-blog-support-homepage.png" alt="blog and support pages on homepage">
</p>
<h2>
Interface Improvements</h2>
<ul>
  <li>
Users can now subscribe to and unsubscribe from marketing email notifications directly from their preferences.  </li>
  <li>
Document items can be exported in HTML format (instead of <code class="inline">.graasp</code> files), providing greater flexibility for sharing and integration with other platforms.  </li>
  <li>
Based on a user’s request, the chatbot app now features conversations, allowing users to start over interactions with the bot without loosing data. In addition, the analytics dashboard’s height has been increased to improve readability and overall usability.  </li>
  <li>
Based on a user’s request, internal shortcuts are hidden from the sidebar navigation. You can find more information on <a href="/docs/builder-item-creation#shortcuts">the items’ documentation</a>.  </li>
</ul>
<h2>
Server Improvements</h2>
<ul>
  <li>
The codebase has been improved by synchronizing types across the application, increasing development accuracy and overall reliability.  </li>
  <li>
The thumbnail upload process has been enhanced by teeing the input stream to ensure more robust file handling and memory usage.  </li>
  <li>
The saving process for H5P files has been improved, particularly when uploading files with custom filenames, fixing later problems on copy. Thanks for reporting the bug!  </li>
</ul>
<!-- Generic message -->
<p>
We warmly welcome and encourage feedback from our users to continuously improve our platform. You can contact us by email <a href="mailto:admin@graasp.org">admin@graasp.org</a> or by submitting an issue in this <a href="https://github.com/graasp/graasp-feedback">Github repository</a>.</p>
 ]]></content>
    </entry>
  
    <entry>
      <title>January 19th, Updates</title>
      <summary type="html"><![CDATA[ <p>
Here is the first release of Graasp for 2026! We made several small improvements and finally applied our policy about trashed items. Read on for the full list of changes.</p>
<!-- Everything below this will not be shown in the post overview -->
 ]]></summary>
      <link href="https://dev.graasp.org/blog/2026-01-19-production-release"/>
      <id>https://dev.graasp.org/blog/2026-01-19-production-release</id>
      <updated>2026-01-19T00:00:00+00:00</updated>
      <content type="html"><![CDATA[ <p>
Here is the first release of Graasp for 2026! We made several small improvements and finally applied our policy about trashed items. Read on for the full list of changes.</p>
<!-- Everything below this will not be shown in the post overview -->
<!-- truncate -->
<h2>
Automatic Clean Up of your Trash</h2>
<p>
From now on, items trashed more than 3 months ago are now automatically deleted. This will save you storage and nicely clear your trash.</p>
<h2>
Various Fixes &amp; Improvements</h2>
<ul>
  <li>
Prevent an error when creating a tag with trailing spaces  </li>
  <li>
Display a clear error message when a password is incorrect  </li>
  <li>
Optimized the left-hand side item navigation  </li>
  <li>
Fixed a validation issue affecting thumbnails during publication  </li>
  <li>
Updated the Library translations, allowing the interface to correctly display more than 1,000 collections  </li>
  <li>
Resolved a crash that could occur when an item had a short link. Thanks to one of our active users for reporting this! 🙌    <br>
As always, if you run into anything unexpected, don’t hesitate to report it. Your feedback helps us make Graasp better for everyone.  </li>
</ul>
<!-- Generic message -->
<p>
We warmly welcome and encourage feedback from our users to continuously improve our platform. You can contact us by email <a href="mailto:admin@graasp.org">admin@graasp.org</a> or by submitting an issue in this <a href="https://github.com/graasp/graasp-feedback">Github repository</a>.</p>
 ]]></content>
    </entry>
  
    <entry>
      <title>December 18th, Updates</title>
      <summary type="html"><![CDATA[ <p>
We’re wrapping up the year with some small but useful updates to make your experience smoother. Also, please note the following notice:</p>
<blockquote>
  <h4 class="warning">
Deleting old items in your Trash  </h4>
  <p>
Starting mid-January, items in the Trash that are older than 3 months will be permanently deleted. Please review or restore any important items before then.  </p>
</blockquote>
<p>
Read on for the full list of changes.</p>
<!-- Everything below this will not be shown in the post overview -->
 ]]></summary>
      <link href="https://dev.graasp.org/blog/2025-12-18-production-release"/>
      <id>https://dev.graasp.org/blog/2025-12-18-production-release</id>
      <updated>2025-12-18T00:00:00+00:00</updated>
      <content type="html"><![CDATA[ <p>
We’re wrapping up the year with some small but useful updates to make your experience smoother. Also, please note the following notice:</p>
<blockquote>
  <h4 class="warning">
Deleting old items in your Trash  </h4>
  <p>
Starting mid-January, items in the Trash that are older than 3 months will be permanently deleted. Please review or restore any important items before then.  </p>
</blockquote>
<p>
Read on for the full list of changes.</p>
<!-- Everything below this will not be shown in the post overview -->
<!-- truncate -->
<h2>
Changes</h2>
<ul>
  <li>
Improved mobile experience by showing authentication buttons in the landing page menu  </li>
  <li>
Added notices for previously deleted items on home and trash pages  </li>
  <li>
Optimized item deletion performance with new database indexes  </li>
</ul>
<h2>
Library</h2>
<ul>
  <li>
Fixed OER reference links on the OER page  </li>
  <li>
Resolved a rare glitch when changing languages that could leave an incorrect language cookie  </li>
</ul>
<!-- Generic message -->
<p>
We warmly welcome and encourage feedback from our users to continuously improve our platform. You can contact us by email <a href="mailto:admin@graasp.org">admin@graasp.org</a> or by submitting an issue in this <a href="https://github.com/graasp/graasp-feedback">Github repository</a>.</p>
 ]]></content>
    </entry>
  
    <entry>
      <title>December 8th, Updates</title>
      <summary type="html"><![CDATA[ <p>
We’re reaching the end of the year, and we’ve been hard at work improving Graasp’s chatbot app and overall performance. Read further for more details.</p>
<!-- Everything below this will not be shown in the post overview -->
 ]]></summary>
      <link href="https://dev.graasp.org/blog/2025-12-08-production-release"/>
      <id>https://dev.graasp.org/blog/2025-12-08-production-release</id>
      <updated>2025-12-08T00:00:00+00:00</updated>
      <content type="html"><![CDATA[ <p>
We’re reaching the end of the year, and we’ve been hard at work improving Graasp’s chatbot app and overall performance. Read further for more details.</p>
<!-- Everything below this will not be shown in the post overview -->
<!-- truncate -->
<hr class="thin">
<h2>
🤖 Chatbot 2.0 — A Major Upgrade</h2>
<p>
Our chatbot has received a full layout redesign along with powerful new features:</p>
<ul>
  <li>
Add a custom <strong>avatar</strong>  </li>
  <li>
Provide <strong>conversation suggestions</strong> to guide users  </li>
  <li>
Overall cleaner and more intuitive interface  </li>
</ul>
<p>
Want to learn more? Check out the full documentation <a href="/user/apps/chatbot">here</a>.</p>
<p>
  <img src="/images/blog/chatbot-conversation.png" alt="chatbot conversation">
</p>
<hr class="thin">
<h2>
🏠 A Fresh New Homepage</h2>
<p>
We’ve rolled out a major update to the Graasp homepage.  <br>
While more refinements are coming soon, we believe this new version better reflects our mission and offers a clearer experience for our audience.</p>
<p>
  <img src="/images/blog/2025-12-08-landing-page.gif" alt="new landing page">
</p>
<hr class="thin">
<h2>
🌐 Single Origin Improvements</h2>
<p>
The backend API now operates under a single origin: <strong>graasp.org/api</strong>. This simplifies development and improves overall platform consistency. It shouldn’t have break anything. If you notice any problem, please contact us.</p>
<p>
We plan to move the Library to <strong>graasp.org/library</strong> as well.</p>
<hr class="thin">
<h2>
⚙️ Backend Optimizations</h2>
<p>
We’ve implemented several performance and stability improvements:</p>
<ul>
  <li>
Better environment variable handling for <strong>H5P</strong> and <strong>shortlinks</strong>  </li>
  <li>
Faster <strong>app data</strong> and <strong>parents</strong> endpoints  </li>
  <li>
More reliable <strong>membership updates</strong>  </li>
</ul>
<p>
These updates ensure smoother and faster interactions across the platform.</p>
<hr class="thin">
<h2>
🛠️ Admin Enhancements</h2>
<p>
For administrators, we’ve added:</p>
<ul>
  <li>
Support for <strong>HTML emails</strong>  </li>
  <li>
Minor fixes for <strong>publications</strong>  </li>
  <li>
Maintenance setup improvements  </li>
  <li>
Various other refinements  </li>
</ul>
<hr class="thin">
<p>
Thanks for being part of the Graasp community! More updates are on the way—stay tuned.</p>
<!-- Generic message -->
<p>
We warmly welcome and encourage feedback from our users to continuously improve our platform. You can contact us by email <a href="mailto:admin@graasp.org">admin@graasp.org</a> or by submitting an issue in this <a href="https://github.com/graasp/graasp-feedback">Github repository</a>.</p>
 ]]></content>
    </entry>
  
    <entry>
      <title>October 18th, Updates</title>
      <summary type="html"><![CDATA[ <p>
Leafs are turning red, fall is well underway. With this new update we are delivering a new library home page, improvements to performance under others. Read below for more details.</p>
<!-- Everything below this will not be shown in the post overview -->
 ]]></summary>
      <link href="https://dev.graasp.org/blog/2025-10-18-production-release"/>
      <id>https://dev.graasp.org/blog/2025-10-18-production-release</id>
      <updated>2025-10-18T00:00:00+00:00</updated>
      <content type="html"><![CDATA[ <p>
Leafs are turning red, fall is well underway. With this new update we are delivering a new library home page, improvements to performance under others. Read below for more details.</p>
<!-- Everything below this will not be shown in the post overview -->
<!-- truncate -->
<h2>
Library home page</h2>
<p>
The home page of the library has been revamped to offer more diverse sections to help users find what they are looking for.</p>
<p>
Let us know what you think about it!</p>
<h2>
User survey</h2>
<p>
We are currently running a user survey to gather feedback on our platform. Your input is valuable to us and will help us improve our services. Please take a few minutes to complete the survey at <a href="https://docs.google.com/forms/d/e/1FAIpQLScSSD8oPlpvLvX1YPDfvfDGQzV7zqqPoSEhkItIZ8pIAPCpTw/viewform">https://docs.google.com/forms/d/e/1FAIpQLScSSD8oPlpvLvX1YPDfvfDGQzV7zqqPoSEhkItIZ8pIAPCpTw/viewform</a>.</p>
<h2>
Bug fixes and improvements</h2>
<p>
In this release we have fixed a few bugs and made some improvements.</p>
<h3>
Returning thumbnails with search results</h3>
<p>
Previously when searching for items, the thumbnails were fetched after the results were available, creating a slight delay and unnecessary waterfall queries. Now we provide thumbnails alongside the search results. This should improve the speed feeling when searching the library as well as improve performance.</p>
<h3>
Responsiveness/design improvements</h3>
<p>
We have made some small changes to improve responsiveness of the menus on the landing page.</p>
<p>
The language switch design has been upgraded to improve its appearance.</p>
<h3>
Performance improvements</h3>
<p>
We have made some performance improvements to resource heavy requests in the backend.</p>
<p>
Please let us know if you encounter any lags or recurring performance issues. We are always looking to provide the best experience to our users.</p>
<!-- Generic message -->
<p>
We warmly welcome and encourage feedback from our users to continuously improve our platform. You can contact us by email <a href="mailto:admin@graasp.org">admin@graasp.org</a> or by submitting an issue in this <a href="https://github.com/graasp/graasp-feedback">Github repository</a>.</p>
 ]]></content>
    </entry>
  
    <entry>
      <title>September 12th, Updates</title>
      <summary type="html"><![CDATA[ <p>
With the start of the semester, we are working on some improvements to support your learning and teaching journey. This week we have made some improvements and fixed issues that were signaled by our users. You can find a detailed list of the changes below.</p>
<!-- Everything below this will not be shown in the post overview -->
 ]]></summary>
      <link href="https://dev.graasp.org/blog/2025-09-12-production-release"/>
      <id>https://dev.graasp.org/blog/2025-09-12-production-release</id>
      <updated>2025-09-12T00:00:00+00:00</updated>
      <content type="html"><![CDATA[ <p>
With the start of the semester, we are working on some improvements to support your learning and teaching journey. This week we have made some improvements and fixed issues that were signaled by our users. You can find a detailed list of the changes below.</p>
<!-- Everything below this will not be shown in the post overview -->
<!-- truncate -->
<h2>
Bug fixes</h2>
<p>
In this release we have fixed a few bugs.</p>
<h3>
Adding specific tags when there are some other matches</h3>
<p>
Previously when adding tags to an item, for example when publishing it or in the settings view, it was not possible to add a new tag if there were some partial matches on already existing tags. We have fixed this issue and you should now be able to add any tag you desire. Start typing in the filed and pick it from the list!</p>
<p>
In case you notice any issues, let us know by email: <a href="mailto:admin@graasp.org">admin@graasp.org</a></p>
<h3>
Guests users should not see the language setting</h3>
<p>
Guest users (logged in via pseudo) should use the language of the item, thus showing them the language switch did not make sens.
We improved the application header for guests, so that it is tailored to their use-case.</p>
<h3>
Content moderation update</h3>
<p>
We made some improvements to the content moderation engine we use to check published material. It should now provide us with more insights to help users when their content raises alarms. Let us know if you face any issues when publishing content. We would be glad to assist you.</p>
<h3>
Architecture change</h3>
<p>
This one is a bit more technical, so no worries if it does not make a lot of sens.
We have moved our workloads to the ARM processor architecture. This should make our energy consumption lower and enable future proofing our service. Contact us if you would like to know more.</p>
<!-- Generic message -->
<p>
We warmly welcome and encourage feedback from our users to continuously improve our platform. You can contact us by email <a href="mailto:admin@graasp.org">admin@graasp.org</a> or by submitting an issue in this <a href="https://github.com/graasp/graasp-feedback">Github repository</a>.</p>
 ]]></content>
    </entry>
  
    <entry>
      <title>August 28th, Updates</title>
      <summary type="html"><![CDATA[ <p>
The Graasp team continues to improve the platform in different directions, focusing on consolidating the foundations, from the interfaces to server optimizations. You can find a more detailed list of the changes below.</p>
<!-- Everything below this will not be shown in the post overview -->
 ]]></summary>
      <link href="https://dev.graasp.org/blog/2025-08-28-production-release"/>
      <id>https://dev.graasp.org/blog/2025-08-28-production-release</id>
      <updated>2025-08-28T00:00:00+00:00</updated>
      <content type="html"><![CDATA[ <p>
The Graasp team continues to improve the platform in different directions, focusing on consolidating the foundations, from the interfaces to server optimizations. You can find a more detailed list of the changes below.</p>
<!-- Everything below this will not be shown in the post overview -->
<!-- truncate -->
<h2>
Workflow improvement to copy from the library</h2>
<p>
The copy mechanism has been relocated to Builder, enabling dynamic feedback if the user is not currently logged in. This change helps provide immediate guidance and improves the overall user experience. A tutorial explaining how to use this feature is available <a href="https://graasp.github.io/docs/user/library/copy">here</a>.</p>
<h2>
Builder folder layout</h2>
<p>
The layout of a folder in Builder has been slightly changed for a more responsive layout, showcasing the thumbnail for a more appealing view. The layout is based on the Player’s layout.</p>
<p>
  <img src="/images/blog/2025-08-28-builder-folder-layout.png" alt="builder folder layout">
</p>
<h2>
Pages (Beta)</h2>
<p>
We are developing a new interactive interface to enhance the user experience. Instead of designing each element individually, the goal is to create entire pages as a whole, and as previewed by the readers. The interface will continuously expand with new element types to fully support all Graasp features. The implementation embedded collaboration by default, allowing multiple writers to edit the content.
If you’d like to test this feature, please email us at beta@graasp.org. Your feedback is greatly appreciated!</p>
<blockquote>
  <h4 class="warning">
New page feature  </h4>
  <p>
The new “Page” interface is currently in beta. Please note that any data saved may be lost in the future. We recommend using this feature only for testing purposes or keeping a backup of your work, either by saving your text locally or in a separate document within Graasp.  </p>
</blockquote>
<p>
  <img src="/images/blog/2025-08-28-page.png" alt="builder page">
</p>
<h2>
Other changes</h2>
<p>
As always we are committed to making the platform faster and more reliable for all our users.
With this update we improved on the following:</p>
<ul>
  <li>
Improve error messages for apps  </li>
  <li>
Simplify implementation for shortlinks (frontend)  </li>
  <li>
Various code refactor for client (frontend)  </li>
</ul>
<!-- Generic message -->
<p>
We warmly welcome and encourage feedback from our users to continuously improve our platform. You can contact us by email <a href="mailto:admin@graasp.org">admin@graasp.org</a> or by submitting an issue in this <a href="https://github.com/graasp/graasp-feedback">Github repository</a>.</p>
 ]]></content>
    </entry>
  
    <entry>
      <title>July 29th, Updates</title>
      <summary type="html"><![CDATA[ <p>
The Graasp team continues to improve the platform in different directions, focusing on consolidating the foundations, from the interfaces to server optimizations. You can find a more detailed list of the changes below.</p>
<!-- Everything below this will not be shown in the post overview -->
 ]]></summary>
      <link href="https://dev.graasp.org/blog/2025-07-29-production-release"/>
      <id>https://dev.graasp.org/blog/2025-07-29-production-release</id>
      <updated>2025-07-29T00:00:00+00:00</updated>
      <content type="html"><![CDATA[ <p>
The Graasp team continues to improve the platform in different directions, focusing on consolidating the foundations, from the interfaces to server optimizations. You can find a more detailed list of the changes below.</p>
<!-- Everything below this will not be shown in the post overview -->
<!-- truncate -->
<h2>
Update to the available AI models</h2>
<p>
The Graasp platform has a few integration with conversational agents (through OpenAI). In this update we have upgraded the models we support to make them faster and more efficient.
We now default to <a href="https://platform.openai.com/docs/models/gpt-4o-mini"><code class="inline">GPT 4o-mini</code></a> (previously this was <a href="https://platform.openai.com/docs/models/gpt-3.5-turbo"><code class="inline">GPT 3.5 turbo</code></a>).
Other available options are:</p>
<ul>
  <li>
<a href="https://platform.openai.com/docs/models/gpt-4.1-nano"><code class="inline">GPT 4.1 nano</code></a>: allows for a larger context window (up to 1M) and benefits of a later knowledge cut-off (model was trained with data up to June 01 2024)  </li>
</ul>
<h2>
Update to the chatbot app</h2>
<p>
The chatbot app available inside Graasp has been updated to support a simple and user-friendly interface for defining example interactions.</p>
<h2>
Library</h2>
<ul>
  <li>
When searching across different criteria (<code class="inline">discipline</code>, <code class="inline">level</code>, <code class="inline">resource-type</code>), the selected language will be taken into account. This will narrow down the choices and present more relevant suggestions to the user.  </li>
  <li>
Fix an issue where the <code class="inline">/all-collections</code> page of the library would not forward the search parameters to the new <code class="inline">/search</code> page. This affected mostly search engine results that would not display the expected result due to missing URL Search parameters.  </li>
  <li>
Improve spacial awareness in the library by displaying the currently active page in the header. The styling of the links in the header was also updated.  </li>
  <li>
Fix an issue in the collection page. The “copy link” feature copied an invalid link to the clipboard. It will now copy the correct link to view the collection in the player interface.  </li>
  <li>
Improve the display of collection title. Titles will now be displayed in full without truncation or ellipsis.  </li>
  <li>
Update the library favicon to make it consistent with the brand image. The favicon is back to its blue-purple glory !  </li>
  <li>
Fix a compatibility issue on older devices. We reverted to use a wider available function, so all our users can experience the library.  </li>
  <li>
Fix a small layout issue in the library collection cards where a collection with a particularly long title could grow to an unwanted width.  </li>
</ul>
<h2>
Other changes</h2>
<p>
As always we are committed to making the platform faster and more reliable for all our users.
With this update we improved on the following:</p>
<ul>
  <li>
Update French and German language translations  </li>
  <li>
Allow embedded applications to choose from more sizing options, so they can display their content as best as possible  </li>
  <li>
Update login button background color to ensure consistent visibility in the app header  </li>
  <li>
Improve item indexing mechanism: using a dedicated worker and more efficient data-fetching  </li>
  <li>
Fix a bug where email addresses could be saved with a mixed case. This affected the email update mechanism, where users could be locked out of the platform if they provided an email with mixed case. We now ensure saved emails are in lowercase when requesting an email change to prevent case sensitivity issues.  </li>
  <li>
Improve the password login workflow. The backend codebase is simpler and the client handles the redirection mechanism.  </li>
  <li>
Remove deprecated mobile sign in processes from the client.  </li>
  <li>
Manually set <code class="inline">secure: true</code> for smtp to comply with NodeJS warning (<code class="inline">smtps</code> is deprecated).  </li>
  <li>
Fix deleting items (permission check is fixed). Deleting items from the recycle bin is possible again.  </li>
  <li>
Optimize getting recycled items. Displaying the trash should be faster.  </li>
</ul>
<!-- Generic message -->
<p>
We warmly welcome and encourage feedback from our users to continuously improve our platform. You can contact us by email <a href="mailto:admin@graasp.org">admin@graasp.org</a> or by submitting an issue in this <a href="https://github.com/graasp/graasp-feedback">Github repository</a>.</p>
 ]]></content>
    </entry>
  
    <entry>
      <title>July 2nd, Updates</title>
      <summary type="html"><![CDATA[ <p>
We introduce in this new release a range of improvements and fixes that make exporting smoother, as well as a full update of Graasp Library.</p>
<!-- Everything below this will not be shown in the post overview -->
 ]]></summary>
      <link href="https://dev.graasp.org/blog/2025-07-02-production-release"/>
      <id>https://dev.graasp.org/blog/2025-07-02-production-release</id>
      <updated>2025-07-02T00:00:00+00:00</updated>
      <content type="html"><![CDATA[ <p>
We introduce in this new release a range of improvements and fixes that make exporting smoother, as well as a full update of Graasp Library.</p>
<!-- Everything below this will not be shown in the post overview -->
<!-- truncate -->
<h2>
Improvements to Export ZIP</h2>
<p>
Exporting items and member data to zip files is now handled by a new zip library and dedicated background workers. This means exports are less likely to fail, and can handle larger data sets without slowing Graasp down. If you want to know more about technical details, <a href="https://graasp.github.io/docs/developer/references/workers">check this page</a>.</p>
<h2>
Library is now built with <a href="https://tanstack.com/start/latest">Tanstack-start</a></h2>
<p>
The Graasp team changed Graasp Library’s primary dependency to tanstack-start for a more modern development stack and better suit the other dependencies.</p>
<blockquote>
  <p>
We’ve upgraded the internals without altering the user experience.  </p>
</blockquote>
<p>
The testing framework was also changed.</p>
<h2>
Fixes</h2>
<ul>
  <li>
<strong>Cleaner Item Copies:</strong> When you copy items, the original order is now checked and cleaned up automatically to prevent issues caused by bad data.  </li>
  <li>
Whenever changes are made to the search index, all settings are automatically rebuilt so that filters and attributes stay up to date.  </li>
  <li>
The system now checks that app origin URLs are formatted correctly, reducing the chance of configuration errors.  </li>
  <li>
Some internal streaming processes now use more modern and reliable methods, which improves error handling and overall stability.  </li>
  <li>
Several core libraries have been updated to their latest versions.  </li>
</ul>
<!-- Generic message -->
<p>
We warmly welcome and encourage feedback from our users to continuously improve our platform. You can contact us by email <a href="mailto:admin@graasp.org">admin@graasp.org</a> or by submitting an issue in this <a href="https://github.com/graasp/graasp-feedback">Github repository</a>.</p>
 ]]></content>
    </entry>
  
    <entry>
      <title>June 16th, Updates</title>
      <summary type="html"><![CDATA[ <p>
This update introduces a completed contact page, refined the import/export functionalities, and various backend optimizations and bug fixes for better performance and reliability. Read further for details.</p>
<!-- Everything below this will not be shown in the post overview -->
 ]]></summary>
      <link href="https://dev.graasp.org/blog/2025-06-16-production-release"/>
      <id>https://dev.graasp.org/blog/2025-06-16-production-release</id>
      <updated>2025-06-16T00:00:00+00:00</updated>
      <content type="html"><![CDATA[ <p>
This update introduces a completed contact page, refined the import/export functionalities, and various backend optimizations and bug fixes for better performance and reliability. Read further for details.</p>
<!-- Everything below this will not be shown in the post overview -->
<!-- truncate -->
<h3>
Frontend</h3>
<ul>
  <li>
<strong>Complete Contact Page</strong>: Implemented the full contact page UI and logic.  </li>
  <li>
<strong>Show Download Options</strong>: Enabled “Download as ZIP” for folders and “Download” for single files. Downloading a ZIP will send an email to download the archive instead of direct download.  </li>
  <li>
<strong>Contact Info in Maintenance Banner</strong>: Added contact information display in the site-wide maintenance banner.  </li>
  <li>
<strong>File Upload Error Notifications</strong>: Added error messages when file uploads fail, improving user feedback.  </li>
</ul>
<h3>
Apps</h3>
<ul>
  <li>
<strong>Quiz</strong>: The navigation is located below instead of above the question.  </li>
</ul>
<h3>
Backend</h3>
<ul>
  <li>
<strong>App Handling in export and import</strong>: Backend logic added to handle both import and export of APP-specific items.  </li>
  <li>
<strong>Thumbnails Handling in export and import</strong>: Enabled export and import of thumbnails for items, improving media consistency.  </li>
  <li>
<strong>Move Membership Endpoints</strong>: Refactored routes related to memberships for better structure and maintainability.  </li>
  <li>
<strong>Send Export Notification Emails</strong>: Added functionality to send email notifications when a raw export is completed.  </li>
  <li>
<strong>Featured Collections Endpoint</strong>: Created an endpoint to manage and retrieve featured collections more efficiently.  </li>
  <li>
<strong>Allow transparent double like on items</strong>: Resolved issue allowing users to like an item more than once.  </li>
</ul>
<!-- Generic message -->
<p>
We warmly welcome and encourage feedback from our users to continuously improve our platform. You can contact us by email <a href="mailto:admin@graasp.org">admin@graasp.org</a> or by submitting an issue in this <a href="https://github.com/graasp/graasp-feedback">Github repository</a>.</p>
 ]]></content>
    </entry>
  
    <entry>
      <title>May 15th, Updates</title>
      <summary type="html"><![CDATA[ <p>
A backend refactor has been implemented. Read further for details.</p>
<!-- Everything below this will not be shown in the post overview -->
 ]]></summary>
      <link href="https://dev.graasp.org/blog/2025-05-15-production-release"/>
      <id>https://dev.graasp.org/blog/2025-05-15-production-release</id>
      <updated>2025-05-15T00:00:00+00:00</updated>
      <content type="html"><![CDATA[ <p>
A backend refactor has been implemented. Read further for details.</p>
<!-- Everything below this will not be shown in the post overview -->
<!-- truncate -->
<p>
A backend refactor has been implemented, focused on file handling, app data files and app setting files, improving the overall architecture. These updates are reflected in the File Drop app, Excalidraw app, and the client frontend, enhancing the efficiency and stability across all components. The changes should be transparent, but let us know if you notice anything!</p>
<h2>
Backend (details)</h2>
<ul>
  <li>
Unified file handling for consistency: replace the value “s3File” from the item’s type options with generic “file”.  </li>
  <li>
Updated dependencies for improved security and performance  </li>
</ul>
<!-- Generic message -->
<p>
We warmly welcome and encourage feedback from our users to continuously improve our platform. You can contact us by email <a href="mailto:admin@graasp.org">admin@graasp.org</a> or by submitting an issue in this <a href="https://github.com/graasp/graasp-feedback">Github repository</a>.</p>
 ]]></content>
    </entry>
  
    <entry>
      <title>May 1st, Updates</title>
      <summary type="html"><![CDATA[ <p>
This update introduces helpful interface improvements—like maintenance messages and clearer translations, alongside backend enhancements for better performance, stability, and up-to-date infrastructure. Read further for details.</p>
<!-- Everything below this will not be shown in the post overview -->
 ]]></summary>
      <link href="https://dev.graasp.org/blog/2025-05-01-production-release"/>
      <id>https://dev.graasp.org/blog/2025-05-01-production-release</id>
      <updated>2025-05-01T00:00:00+00:00</updated>
      <content type="html"><![CDATA[ <p>
This update introduces helpful interface improvements—like maintenance messages and clearer translations, alongside backend enhancements for better performance, stability, and up-to-date infrastructure. Read further for details.</p>
<!-- Everything below this will not be shown in the post overview -->
<!-- truncate -->
<p>
  <img src="/images/blog/2025-05-01-maintenance-bookmarks.png" alt="maintenance and bookmark management">
</p>
<h2>
Maintenance notice</h2>
<p>
To keep you informed and avoid surprises, the app now displays a clear message delivering maintenance dates when the system will undergo updates or temporarily be unavailable. This ensures that you’re aware of any planned downtime or disruptions before they affect your workflow, helping you plan accordingly and stay in control. It’s a small but important step toward improving transparency and communication with our users.</p>
<h2>
Interface (details)</h2>
<ul>
  <li>
A message will now appear when the system is under maintenance.  </li>
  <li>
Bookmarks on the home page can be removed by clicking on the “Manage” button.  </li>
  <li>
You can now download items directly from the item menu.  </li>
  <li>
Some missing translations were added to make actions clearer.  </li>
  <li>
developer: The documentation (instructions for using the app) has been updated.  </li>
</ul>
<h2>
Backend (details)</h2>
<ul>
  <li>
A new feature was added so the system can report when it’s in maintenance mode.  </li>
  <li>
Improved recovery during item reordering.  </li>
  <li>
Updates dependencies.  </li>
</ul>
<!-- Generic message -->
<p>
We warmly welcome and encourage feedback from our users to continuously improve our platform. You can contact us by email <a href="mailto:admin@graasp.org">admin@graasp.org</a> or by submitting an issue in this <a href="https://github.com/graasp/graasp-feedback">Github repository</a>.</p>
 ]]></content>
    </entry>
  
    <entry>
      <title>April 24th, Updates</title>
      <summary type="html"><![CDATA[ <p>
Over the past few weeks, the Graasp team has been working to make Graasp faster, more stable, and easier to maintain. We’ve completed a major upgrade to the <em>backend</em>. Read further for details.</p>
<!-- Everything below this will not be shown in the post overview -->
 ]]></summary>
      <link href="https://dev.graasp.org/blog/2025-04-24-production-release"/>
      <id>https://dev.graasp.org/blog/2025-04-24-production-release</id>
      <updated>2025-04-24T00:00:00+00:00</updated>
      <content type="html"><![CDATA[ <p>
Over the past few weeks, the Graasp team has been working to make Graasp faster, more stable, and easier to maintain. We’ve completed a major upgrade to the <em>backend</em>. Read further for details.</p>
<!-- Everything below this will not be shown in the post overview -->
<!-- truncate -->
<h2>
Backend: consequent upgrade with Drizzle</h2>
<p>
Over the past few weeks, the Graasp team has been working to make Graasp faster, more stable, and easier to maintain. We’ve completed a major upgrade to the <em>backend</em> — the part of the platform that works behind the curtain to make everything run by moving our system to a new technology called <strong>Drizzle.js</strong> alongside an automated delivery process. While you don’t need to know the technical details, think of it like upgrading the engine of a car — the outside might look the same, but it runs smoother and is easier to work on in the future. The change should be transparent to you!</p>
<h4>
Feedback is welcome!</h4>
<p>
Even though we’ve tested this upgrade thoroughly, real-world usage is the best test of all. If you notice <strong>anything not working quite right</strong> — like something behaving differently than expected, slowing down, or breaking — please let us know.</p>
<p>
Your feedback helps us keep Graasp running smoothly for everyone.</p>
<!-- Generic message -->
<p>
We warmly welcome and encourage feedback from our users to continuously improve our platform. You can contact us by email <a href="mailto:admin@graasp.org">admin@graasp.org</a> or by submitting an issue in this <a href="https://github.com/graasp/graasp-feedback">Github repository</a>.</p>
 ]]></content>
    </entry>
  
    <entry>
      <title>March 17th, Updates</title>
      <summary type="html"><![CDATA[ <p>
The team is currently working on a consequent refactor of the backend, in the meantime, enjoy some bug fixes that were reported. Read further for more details.</p>
<!-- Everything below this will not be shown in the post overview -->
 ]]></summary>
      <link href="https://dev.graasp.org/blog/2025-03-17-production-release"/>
      <id>https://dev.graasp.org/blog/2025-03-17-production-release</id>
      <updated>2025-03-17T00:00:00+00:00</updated>
      <content type="html"><![CDATA[ <p>
The team is currently working on a consequent refactor of the backend, in the meantime, enjoy some bug fixes that were reported. Read further for more details.</p>
<!-- Everything below this will not be shown in the post overview -->
<!-- truncate -->
<h2>
Fixed an issue with PDF files auto-downloading as soon as element is opened</h2>
<p>
Thanks to the feedback of a user, an annoying bug was detected. The bug affected PDF items created by copy. The copied PDF files would automatically download when opened (in the builder and player view) instead of displaying as usual causing inconveniences and readability issues.</p>
<p>
We deployed a fix that will ensure future copies are not affected. So, if you copy a PDF file starting today, you should not be affected by the bug. Please let us know if it still happens to you.</p>
<blockquote>
  <h4 class="info">
How do I stop my PDF files from automatically downloading when I open them?  </h4>
  <p>
If you have PDF files that exhibit the faulty behavior, you should download them, then delete the faulty copy. You should create them again by uploading the downloaded PDF or creating it from a fresh copy of the known good file. Once done, the PDF file should not download automatically anymore.  </p>
</blockquote>
<h2>
Fixed an issue affecting sub-elements not displaying in the Trash</h2>
<p>
When deleting an element with a parent (sub-element), under particular conditions, it would not appear in the Trash. As this issue affected users that were afraid of having lost content, it was quickly fixed by the team.
Users should now be able to see and restore sub-elements from the Trash to retrieve wrongfully removed content.
Important to note that the displayed total count of deleted items could be incorrect (the displayed number can be higher than expected). A fix to correct this error will follow soon.</p>
<h2>
Others</h2>
<h3>
Library (details)</h3>
<ul>
  <li>
Fix card thumbnail sizing in Safari  </li>
  <li>
Fix card padding on mobile screens  </li>
</ul>
<h3>
Backend (details)</h3>
<ul>
  <li>
Add backend implementation for deleting and uploading many files at once  </li>
  <li>
Fix erroneous copy of files (path, remove automatic content disposition to attachment and cache-control)  </li>
  <li>
Recycle bin shows deleted children (whose membership are inherited). Total count can be over-shooting.  </li>
  <li>
Fix link URL in membership request notification email  </li>
</ul>
<!-- Generic message -->
<p>
We warmly welcome and encourage feedback from our users to continuously improve our platform. You can contact us by email <a href="mailto:admin@graasp.org">admin@graasp.org</a> or by submitting an issue in this <a href="https://github.com/graasp/graasp-feedback">Github repository</a>.</p>
 ]]></content>
    </entry>
  
    <entry>
      <title>March 7th, Updates</title>
      <summary type="html"><![CDATA[ <p>
During the last weeks, the Graasp team has work diligently to bring you a new home experience. Read further for more details.</p>
<!-- Everything below this will not be shown in the post overview -->
 ]]></summary>
      <link href="https://dev.graasp.org/blog/2025-03-07-production-release"/>
      <id>https://dev.graasp.org/blog/2025-03-07-production-release</id>
      <updated>2025-03-07T00:00:00+00:00</updated>
      <content type="html"><![CDATA[ <p>
During the last weeks, the Graasp team has work diligently to bring you a new home experience. Read further for more details.</p>
<!-- Everything below this will not be shown in the post overview -->
<!-- truncate -->
<h2>
Home Page &amp; Navigation</h2>
<p>
With this update, we’ve redesigned the interface of your personal homepage for a more streamlined experience. It now displays, just like before, the items shared with you and your bookmarked content, but with enhanced accessibility. We hope this update makes it even easier to access the items you use most frequently!</p>
<p>
  <img src="/images/blog/2025-03-07-new-home-page.png" alt="home page">
</p>
<p>
Additionally, we’ve revamped the side menu of the Builder view. It now features the same navigation tree as in the Player, providing a clear view of your item’s structure and a better understanding of the hierarchy of your content.</p>
<p>
  <img src="/images/blog/2025-03-07-builder-interface.png" alt="builder interface">
</p>
<p>
<strong>Bullet list of the improvements:</strong></p>
<ul>
  <li>
Display accessible items and bookmarks directly on the home page for easy access.  </li>
  <li>
Transform the drawer content into tabs in the right-hand side corner of the home page for a clearer navigation.  </li>
  <li>
Include settings and tutorials within the member drop-down menu for easier access. Replace the “Profile” option with “Home” in the user menu popup for clearer options.  </li>
  <li>
Show item tree navigation in the builder to enhance the user experience when working with complex items.  </li>
</ul>
<p>
Don’t hesitate to share your feedback with us, so we can improve even more your experience with Graasp!</p>
<p>
In addition, note those major new features:</p>
<ul>
  <li>
A new option allows reader to write within an etherpad document (you can find the option when creating or editing an etherpad).  </li>
  <li>
Links can have their URL changed.  </li>
</ul>
<h2>
Bug Fixes &amp; Updates</h2>
<ul>
  <li>
Resolve app resizing issues.  </li>
  <li>
Prevent membership requests from being made for hidden items.  </li>
  <li>
Update some French translations to improve clarity and inclusivity.  </li>
  <li>
Address issues with notifications and login errors to ensure users are notified correctly and can log in without problems.  </li>
  <li>
Fix websockets-related issues to maintain stable real-time communication and connectivity.  </li>
  <li>
Ensure the player interface is scrolled to the top of the page on navigation to improve the user’s ability to find new content after navigating.  </li>
  <li>
Fix the app and link description update process, ensuring changes to descriptions are applied and displayed correctly.  </li>
</ul>
<!-- Generic message -->
<p>
We warmly welcome and encourage feedback from our users to continuously improve our platform. You can contact us by email <a href="mailto:admin@graasp.org">admin@graasp.org</a> or by submitting an issue in this <a href="https://github.com/graasp/graasp-feedback">Github repository</a>.</p>
 ]]></content>
    </entry>
  
    <entry>
      <title>February 11th, Updates</title>
      <summary type="html"><![CDATA[ <p>
For this week’s update, the Graasp team worked at enhancing user experience, including fixes for translations, prevent loading flickers, faster content retrieval for the Library homepage, and backend improvements. Read further for details.</p>
<!-- Everything below this will not be shown in the post overview -->
 ]]></summary>
      <link href="https://dev.graasp.org/blog/2025-02-11-production-release"/>
      <id>https://dev.graasp.org/blog/2025-02-11-production-release</id>
      <updated>2025-02-11T00:00:00+00:00</updated>
      <content type="html"><![CDATA[ <p>
For this week’s update, the Graasp team worked at enhancing user experience, including fixes for translations, prevent loading flickers, faster content retrieval for the Library homepage, and backend improvements. Read further for details.</p>
<!-- Everything below this will not be shown in the post overview -->
<!-- truncate -->
<h2>
Interfaces</h2>
<ul>
  <li>
<strong>Flicker caused by suspense when loading translations</strong>: Fix a flicker issue when translations load asynchronously to improve user experience.  </li>
  <li>
<strong>Logo display on Safari</strong>: Resolve logo display issues in Safari browsers for consistent rendering across platforms.  </li>
  <li>
<strong>Fill FAQ content</strong>: Replace mock data in the FAQ section with real content for a polished experience.  </li>
  <li>
<strong>Update the user profile link in user drop down</strong>: Modify the user profile link in the user switcher to ensure correct redirection.  </li>
  <li>
<strong>Optimise Library home page content</strong>: Retrieve content faster for the Library homepage  </li>
  <li>
Use endpoints with generated API  </li>
  <li>
Fix country selection in the map view  </li>
</ul>
<h2>
Backend</h2>
<ul>
  <li>
<strong>Add app and shortcuts endpoints</strong>: Create new API endpoints for app and shortcut-specific functionalities.  </li>
  <li>
<strong>Add likes and creator functionality in Meilisearch</strong>: Integrate “likes” into Meilisearch indexing to allow users search for liked items and filter by creator. Specific endpoints have been created of recent and liked collections.  </li>
  <li>
<strong>Allow readers to edit Etherpad</strong>: Enable readers to edit Etherpad documents, expanding collaboration capabilities.  </li>
  <li>
<strong>Optimise retrieval of thumbnails</strong>: Update the system to return <code class="inline">null</code> for items lacking a thumbnail, rather than an error.  </li>
  <li>
<strong>Replace non-breaking spaces in link metadata titles</strong>: Replace non-breaking spaces with regular spaces for better title compatibility.  </li>
  <li>
Improve and fix schemas for item validation  </li>
  <li>
Clean up and remove obsolete host variables to reduce complexity and improve maintainability.  </li>
</ul>
<!-- Generic message -->
<p>
We warmly welcome and encourage feedback from our users to continuously improve our platform. You can contact us by email <a href="mailto:admin@graasp.org">admin@graasp.org</a> or by submitting an issue in this <a href="https://github.com/graasp/graasp-feedback">Github repository</a>.</p>
 ]]></content>
    </entry>
  
    <entry>
      <title>January 30th, Updates</title>
      <summary type="html"><![CDATA[ <p>
Since last year, the Graasp team has been working on simplifying the code base to unify most of its ecosystem. Additionally, a new layout for Library has been unveiled. Read further for details.</p>
<!-- Everything below this will not be shown in the post overview -->
 ]]></summary>
      <link href="https://dev.graasp.org/blog/2025-01-30-production-release"/>
      <id>https://dev.graasp.org/blog/2025-01-30-production-release</id>
      <updated>2025-01-30T00:00:00+00:00</updated>
      <content type="html"><![CDATA[ <p>
Since last year, the Graasp team has been working on simplifying the code base to unify most of its ecosystem. Additionally, a new layout for Library has been unveiled. Read further for details.</p>
<!-- Everything below this will not be shown in the post overview -->
<!-- truncate -->
<h2>
Library Cards</h2>
<p>
We improved our collection cards in Library to include tags and bigger space for the description. For those that didn’t chose a thumbnail for their collections, we added some hint of colors! Let us know what you think of this new design.</p>
<p>
  <img src="/images/blog/2025-01-30-library-cards.png" alt="library cards">
</p>
<h2>
Unique domain: graasp.org</h2>
<p>
For a better management of our platform, we moved our links to a unique domain: <a href="https://graasp.org">graasp.org</a>.
You can discover our new <a href="https://graasp.org">landing page</a> with more details about us and the complete Graasp ecosystem! You can also learn more about <a href="https://graasp.org/features">specific features</a> with our <a href="https://graasp.org/support">tutorials page</a>. Let us know if you wish other tutorials to help you get started!</p>
<blockquote>
  <h4 class="warning">
Compatibility with previous links  </h4>
  <p>
All previous links are still valid, but should be updated for better compatibility.  </p>
</blockquote>
<p>
  <img src="/images/blog/2025-01-30-landing-page.png" alt="landing page">
</p>
<p>
  <img src="/images/blog/2025-01-30-landing-tutorials.png" alt="tutorials page">
</p>
<h2>
Apps</h2>
<ul>
  <li>
<strong>Quiz</strong>:    <ul>
      <li>
update german translations      </li>
      <li>
fix weird spacing in Fill In the Blanks questions      </li>
      <li>
allow break lines in Fill In the Blanks questions      </li>
      <li>
remove automatic uppercase in multiple choices questions      </li>
    </ul>
  </li>
</ul>
<h2>
Backend</h2>
<ul>
  <li>
Add endpoints for creating and modifying links, allowing to update a link in-place.  </li>
  <li>
Add endpoints for creating and modifying documents  </li>
  <li>
Add an endpoint to get collections by most likes  </li>
  <li>
Fix analytics endpoint  </li>
</ul>
<!-- Generic message -->
<p>
We warmly welcome and encourage feedback from our users to continuously improve our platform. You can contact us by email <a href="mailto:admin@graasp.org">admin@graasp.org</a> or by submitting an issue in this <a href="https://github.com/graasp/graasp-feedback">Github repository</a>.</p>
 ]]></content>
    </entry>
  
    <entry>
      <title>January 7th, Updates</title>
      <summary type="html"><![CDATA[ <p>
For the first update of 2025, new features include a “new folder” button, tag-based content organization, and updated translations, alongside fixes for the Quiz app and backend improvements.</p>
<!-- Everything below this will not be shown in the post overview -->
 ]]></summary>
      <link href="https://dev.graasp.org/blog/2025-01-07-production-release"/>
      <id>https://dev.graasp.org/blog/2025-01-07-production-release</id>
      <updated>2025-01-07T00:00:00+00:00</updated>
      <content type="html"><![CDATA[ <p>
For the first update of 2025, new features include a “new folder” button, tag-based content organization, and updated translations, alongside fixes for the Quiz app and backend improvements.</p>
<!-- Everything below this will not be shown in the post overview -->
<!-- truncate -->
<h2>
Personalized Tags and Filters</h2>
<p>
We improved our categories system by using personalized categories, that we call tags. Those are split into 3 categories: discipline, level and resource type. You can find the tags in Builder (library page) and Library.</p>
<p>
  <img src="/images/docs/library-search.png" alt="library search">

  <img src="/images/docs/builder-tags.png" alt="builder tags">
</p>
<p>
If your items already had tags, most of them have been migrated to this new system safely in the discipline category. Don’t hesitate to tweak your tags to better fit the available categories!</p>
<p>
<a href="https://graasp.github.io/docs/user/library/tags/">You can find detailed information about tags here</a>.</p>
<p>
Below you can find our usual update breakdown for each platform:</p>
<h2>
Builder</h2>
<ul>
  <li>
<strong>Update translations</strong>: Update translations for Arabic, Italian, Spanish and French language.  </li>
  <li>
<strong>Introduce a new folder button</strong>: Add a button that allows users to create new folders for organizing their items or content.  </li>
  <li>
<strong>Replace categories with tags</strong>: Transition from using categories to tags for more flexible and granular content classification.  </li>
</ul>
<h2>
Library</h2>
<ul>
  <li>
<strong>Implement the new tag system</strong>: Enable the use of tags for organizing and filtering content, with resource types integrated into search to improve discoverability.  </li>
</ul>
<h2>
Apps</h2>
<ul>
  <li>
<strong>Quiz</strong>: Prevent infinite loop for readers and network errors on legacy data  </li>
</ul>
<h2>
Backend</h2>
<ul>
  <li>
<strong>Enable POST and PATCH methods for item folders</strong>: Allow the creation and updating of item folders via specific backend API endpoints.  </li>
  <li>
<strong>Integrate tags with Meilisearch</strong>: Replace category-based indexing with tag-based indexing in Meilisearch and perform necessary data migration.  </li>
  <li>
<strong>Add item in app action</strong>: Include item data in an app action on export.  </li>
  <li>
<strong>Remove deprecated Creative Commons license values</strong>: Remove outdated Creative Commons license options from the backend to maintain compliance and accuracy.  </li>
  <li>
<strong>Return no content when no avatar is available</strong>: Modify the backend to return an empty valid response when there is no avatar associated with a user.  </li>
</ul>
<h2>
Client (work in progress)</h2>
<ul>
  <li>
<strong>Add landing page</strong>: Create a new landing page for the application with small adjustments, with dedicated pages for the Terms of Service, Disclaimer, Privacy Policy and Features.  </li>
  <li>
<strong>Add language detector</strong>: Implement a feature to automatically detect and set the user’s language preference.  </li>
  <li>
<strong>Add preview mode</strong>: Introduce a preview mode for users to see changes before applying them.  </li>
  <li>
<strong>UI: Add Storybook</strong>: Integrate Storybook for building and testing UI components in isolation.  </li>
  <li>
<strong>Enhance login and registration forms</strong>: Add new form headers and integrate <code class="inline">react-hook-form</code> for handling validation.  </li>
  <li>
<strong>Resolve integration and authentication issues</strong>: Fix client-side authentication, proxy configuration, and integration-related problems.  </li>
  <li>
<strong>Fix reCAPTCHA issues</strong>: Add reCAPTCHA environment variables, move reCAPTCHA to the auth layout, and fix script loading in HTML.  </li>
  <li>
<strong>Optimize CI and deployment setup</strong>: Implement permissions in CI, update build scripts, and adjust deployments to follow proper installation steps.  </li>
</ul>
<p>
As we step into 2025, the team wishes you a year filled with new opportunities, growth, and happiness!</p>
<!-- Generic message -->
<p>
We warmly welcome and encourage feedback from our users to continuously improve our platform. You can contact us by email <a href="mailto:admin@graasp.org">admin@graasp.org</a> or by submitting an issue in this <a href="https://github.com/graasp/graasp-feedback">Github repository</a>.</p>
 ]]></content>
    </entry>
  
</feed>
