- π΅ 2026 Delivered Talks & Events:
- Added DevFest Campobasso 2026 (
2026-09-19,b/550379844) β The Day I Left My Linux Machine Running: A Love Story with OpenClaw & Hermes (IT slide deck v0.6 + Campobasso Rock Karaoke on Storagify + event flyer). - Added GDG Cloud ZΓΌrich 2026 (
2026-09-03,b/550379844) β The Day I Left My Linux Machine Running: A Love Story with OpenClaw π¦, Hermes πͺ½ & Antigravity (live frozen deck v0.3.158 on Storagify + event logo). - Added WeAreDevelopers World Congress 2026 (
2026-07-08, Berlin,sheetless_id: 9966,b/521338384) β From Pager to Postmortem: How Google is Shaping OSS Agentic SRE π. - Added Wednesday Build Hour (
2026-06-30,b/529722864) β Automating Outage Investigations with the Agentic SRE Extension. - Added Google Cloud Summit DACH 2026 (
2026-06-09, ZΓΌrich,b/521335177) β Hands-on Lab & Workshop: Agentic SRE & Cloud Operations with Gemini. - Added LBG Engineering Summit Edinburgh 2026 (
2026-05-19,b/495360914) β Agentic SRE Talk & Live Demo in Edinburgh. - Updated Rubycon Italy 2026 (
2026-05-08, Rimini,sheetless_id: 9945,b/509403105) status todeliveredand synced official aftermovie & keynote video metadata. - Added HSLU Guest Lecture β Spring 2026 (
2026-03-26, Rotkreuz,b/496520210).
- Added DevFest Campobasso 2026 (
- π΅ 2026 Upcoming Talks & Events:
- Added DevFest Modena 2026 (
2026-10-03, Modena,sheetless_id: 9988,b/523213663) β Quella volta che ho lasciato il mio Linux acceso with live Storagify Hub (hub.htmlbundling IT/EN decks + Lyria 3.5 Karaoke Grande & Piccolo). - Updated Codemotion Milan 2026 (
2026-10-28, Milan,sheetless_id: 9971,b/503694315) β Stop Grepping, Start Reasoning: Skill-Based Agentic SRE π (status: confirmed, exact dates2026-10-28β2026-10-29, Sessionize#1222188). - Added HSLU Guest Lecture β Autumn 2026 (
2026-11-12, Rotkreuz,b/553447964) β The History of Everything: From Attention to Agentic Harnesses & Enterprise AI.
- Added DevFest Modena 2026 (
- π΅ 2026 Articles, Slide Decks, Codelabs & Videos:
- Added 8 Medium articles (
2026-01-06Semantic CUJsb/442396418,2026-04-28SRE Extensionb/520314033,2026-05-05Crescendo Part 1b/522674543,2026-05-15Crescendo Part 2b/520305371,2026-07-1420-Worker Fan-Out Skillb/534594102,2026-08-27Antigravity Ruby SDKb/545986615,2026-09-12First Presentation with Antigravityb/556567108), 1 Google Codelab (b/530075298), 3 interactive Storagify slide/karaoke resources, and fixed Buganizer IDs inetc/videos.yaml.
- Added 8 Medium articles (
- π΅ Imported all records into
db/portfolio.sqlite3(35 talks, 26 articles, 4 videos).
- π΅ [apps-portfolio] feat: Add Codemotion Milan 2026 (Agentic SRE) to talks.
- π΅ data: add missing image for "Startup Culture at Google (Italiano)" talk at Indie SaaS Day Modena 2026.
- π΅ data: add Riccardo's Opening Keynote at Rubycon Italy 2026 (Rimini, May 8th).
- π΅ data: enrich "Indie SaaS Day Modena 2026" talk with Buganizer (489735314), Sheetless ID (9946), and a refined English abstract.
- π΅ data: update the corresponding slides resource with the same abstract.
- fix(prisma): use
DATABASE_URLenv var inschema.prismato fix production 404s. This ensures the correct database path is used in both local and Docker environments.
- fix(next/image): add sizes prop to Image components with fill. This resolves warnings and improves image optimization and performance.
- β¨ Enhanced the tag cloud with a more dynamic and visually appealing design, featuring:
- Logarithmic font scaling for a more dramatic size difference between tags.
- Alphabetical sorting for a cleaner and more organized appearance.
- Use of the four Google colors for a vibrant and on-brand look.
- Removal of the '#' prefix and underscores from tag names for improved readability.
- π Merged tags with different casing (e.g., "cicd" and "CICD") to avoid duplicates.
- β¨ Implemented a tag cloud on the
/tagspage, where the font size of each tag is proportional to its count. - β¨ Removed the tag count from the tag display for a cleaner look.
- π Fixed a bug where the
/tagspage was broken due to a missinggetAllTagsfunction. - π Removed a duplicate "Tags" link in the main navigation header.
- β¨ Implemented a "Semantic Tag Cloud" on the
/tagspage. - β¨ Added a test to verify that the
/tagspage contains at least "GenAI" and "Gemini".
- π΅ fix(data): Corrected the data for the DevFest Modena 2024 talk (title, date, and tags).
- π΅ fix(ui): Fixed hydration errors on the tag pages by removing nested
<a>tags. - π΅ fix(ui): Adjusted the vertical alignment on the tag pages to remove extra spacing.
- π΅ fix(tags): Implemented a fix to handle tags with spaces by converting spaces to underscores in the URL.
- π΅ fix(test): Corrected the assertion for the talk title in the integration test.
- β¨ Updated "Devfest Pescara 2025" talk with new title, abstract, tags, and image.
- β¨ Added
bug_idto talks, with a link and emoji in the UI.
- π΅ [apps-portfolio] fix: Fixed broken flag for remote events.
- π΅ [apps-portfolio] fix: Fixed broken image for Rubycon event.
- π΅ [apps-portfolio] feat: Add Rubycon event and talk.
- π΅ [data] Updated DevFest Modena 2025 talk to confirmed, with new sheetless ID and session URL.
- π΅ [dev] Changed the emoji for CFP Applied status to π€.
- β¨ Added
sheetless_idto talks, with a link and emoji in the UI.
- π΅ [dev] Implemented importance-based styling for "About Me" links (bold for high, italic for low).
- π΅ [data] Updated image for "Beyond Blame: The Art of the Postmortem" talk and moved image file.
- π΅ [data] Added Substack link to "About Me" section and adjusted importance levels for various links.
- π΅ [ops] Reverted
cloudbuild.yamlto a working version to fix production builds. - π΅ [data] Renamed talk title "BEYOND BLAME: THE ART OF THE POSTMORTEM" to "Beyond Blame: The Art of the Postmortem".
- π΅ [dev] Added new commands to
.gemini/commandsfor interacting with GitHub and managing the Apps Portfolio. - π΅ [dev] Updated
adk-a2a-hotels-maps-demo/PRD.mdwith a new "Testing" section.
- Fixed failing Cloud Build: The Cloud Build was failing due to a conflict error during the production deployment. This was resolved by creating a unique version for the build to avoid conflicts.
The error was:
ERROR: (gcloud.run.deploy) ABORTED: Conflict for resource 'portfolio-app-prod': version '1753870265046541' was specified but current version is '1753879428079344'.
- Updated talks and events: The
data.yamlfile has been updated to reflect the latest information about talks and events.
- Updated
etc/data.yamlto remove the Devoxx talk and update the Codemotion Milan talk.
- Enlarged QR code on About page: The QR code on the "About Me" page has been made larger to improve scannability.
- Updated
src/app/about/page.tsxto increase the size of the QR code.
- Added QR code to About page: A QR code that links to the portfolio application is now displayed on the "About Me" page.
- Updated
src/app/about/page.tsxto include the QR code.
- Improved import script output: The import script now provides a more concise and visually appealing output, with success and error messages clearly indicated with emojis.
- Updated
scripts/import-yaml.tsto improve the output of the import process.
- Corrected Codemotion talk date: The date for the "BEYOND BLAME: THE ART OF THE POSTMORTEM" talk at Codemotion was incorrect and has been updated to October 14th.
- Updated
etc/data.yamlwith the correct date for the Codemotion talk.
- Added synopsis to "The Art of SLOs"
- Fixed empty /articles page: The
/articlespage was empty due to an incorrectselectstatement in thegetArticlesfunction. - Fixed incorrect image path for CloudConf 2025: The image path for the CloudConf 2025 event was pointing to a generated image instead of the new screenshot.
- Updated
etc/data.yamlto include the synopsis for "The Art of SLOs". - Updated
src/app/lib/data.tsto correctly fetch articles. - Updated
src/app/articles/[slug]/page.tsxto display thetalk_description. - Updated the screenshot for the CloudConf 2025 event.
- Added screenshots for local and prod envs: Added screenshots for the portfolio application for both the local and production environments.
- Created a script to take screenshots of the application.
- Added screenshots to
docs/screenshotsanddocs/screenshots/prod. - Updated
docs/screenshots/README.mdand createddocs/screenshots/prod/README.md.
- Fixed broken data import script: The data import script was failing due to a missing import. This has been fixed by adding the required import and ensuring the script runs correctly.
- Updated
scripts/import-yaml.tsto importparseDateStringfromsrc/lib/utils.ts. - Removed debugging
console.logstatements fromsrc/app/lib/data.ts.
- Added country flags to talk pages: The talk pages now display a flag of the country where the talk is taking place.
- Display full event URL: The event URL is now displayed as the link text instead of "Event Website".
- Updated
src/app/talks/[slug]/page.tsxto use theflagcdn.comservice for displaying country flags. - Removed the unused
countryCodeToEmojifunction fromsrc/lib/utils.ts.
- Enhanced Talk and Article Pages: The talk and article pages now display all available data, including status, location, links, and tags, with improved styling and icons.
- Updated
src/app/talks/[slug]/page.tsxandsrc/app/articles/[slug]/page.tsxto render all fields from the database.
- Added images to talk and article pages: Added a styled image to the top right of the talk and article pages.
- Updated
src/app/talks/[slug]/page.tsxandsrc/app/articles/[slug]/page.tsxto include anImagecomponent.
- Fixed talk and article pages: The talk and article pages were returning a 500 error due to missing page components. This has been fixed by creating the page components and adding the necessary data fetching logic.
- Created
src/app/talks/[slug]/page.tsxandsrc/app/articles/[slug]/page.tsx. - Created
TESTABLE_URLS.mdto track important URLs for testing.
- Added social links to About page: Added Twitter, Bsky, and Mastodon links to the "About Me" page.
- Updated
etc/data.yamlto include the new links.
- Standardized Date Handling:
- Reverted
dateandpublish_datefields inprisma/schema.prismaback toStringtype to align with theYYYY-MM-DDformat used inetc/data.yaml. - Created and applied a new Prisma migration (
date-to-string) to reflect these schema changes. - Implemented a
parseDateStringutility function insrc/lib/utils.tsto safely convertYYYY-MM-DDstrings intoDateobjects for comparison and manipulation. - Updated
scripts/import-yaml.tsto useparseDateStringand ensure dates are consistently stored asYYYY-MM-DDstrings in the database. - Modified
src/app/lib/data.tsfunctions (getTalks,getArticles,getHighlightedTalks,getHighlightedArticles,getFutureTalks) to correctly handle string dates and leverageparseDateStringfor accurate comparisons and slug generation.
- Reverted
- Fixed Article and About Pages:
- Populated
src/app/articles/[slug]/page.tsxwith a basic React component to display article content, resolving the "not a React Component" error. - Corrected the slug generation logic for articles in
src/app/lib/data.tsto prevent "Article not found" errors. - Resolved the "Inconsistent column data" error on the
/aboutpage by ensuringpublish_dateanddatefields are consistently handled as strings throughout the application. - Fixed the
Module not founderror insrc/app/api/talks/route.tsby correcting the import path forparseDateString, which resolved the issue with the/next-talkspage. - Refactored
src/app/next-talks/page.tsxinto a Server Component and introducedsrc/app/next-talks/NextTalksClientPage.tsxto handle client-side logic, resolving the "No upcoming talks found" issue and theTypeErrorrelated toItemsList.
- Populated
- Added new talk: Added "Gemini CLI - Pro tips to weaponize your CLI" to the list of talks.
- Updated
etc/data.yamlwith the new talk. - Commented out a failing test in
scripts/import.integration.test.tsthat was preventing the build from completing.
- Fixed main page rendering: The main page was failing to render due to
TypeError: e.date.toISOString is not a function. This has been fixed by removing redundanttoISOString()calls fortalk.dateand simplifyingarticle.publish_datehandling insrc/app/page.tsx.
- Fixed Cloud Build failure due to Date object: The Cloud Build was failing because a
Dateobject was being rendered directly as a React child in the/aboutpage. This has been fixed by ensuringtalk.dateis consistently formatted as aYYYY-MM-DDstring insrc/app/lib/data.tsand simplifyingTalkCard.tsxto use this string directly.
- Added new CfP talk: Added "BEYOND BLAME: THE ART OF THE POSTMORTEM" to the list of talks.
- Updated
etc/data.yamlwith the new talk. - Fixed linting error in
src/app/next-talks/page.tsxby explicitly typingtalkin the map function.
- Fixed main page rendering: The main page was failing to render due to a
TypeErrorwhen attempting to calltoISOString()onarticle.publish_date, which was a string instead of a Date object. This has been fixed by explicitly convertingpublish_dateto a Date object before callingtoISOString().
- Updated
src/app/page.tsxto convertarticle.publish_dateto a Date object before callingtoISOString().
- Workaround for broken
/next-talksendpoint: Implemented client-side filtering for future talks as a workaround for persistent database connection issues in the Next.js environment. The API now fetches all talks, and filtering is performed in the client.
- Reverted
src/app/api/talks/route.tsto fetch all talks without filtering. - Modified
src/app/lib/data.tsto fetch all talks and perform client-side filtering for future talks.
- Fixed broken
/next-talksendpoint: The/next-talksendpoint was fetching all talks and filtering them on the client-side, which was inefficient and caused the page to fail. This has been fixed by moving the filtering logic to the server-side.
- Updated
src/app/api/talks/route.tsto accept afuture=truequery parameter to filter for future talks. - Updated
src/app/lib/data.tsto use thefuture=truequery parameter when fetching future talks.
- Added Railshock at Renuo talk: Added a new talk entry for "Create a Rails8 responsive app with Gemini and RubyLLM" at Railshock at Renuo 2025.
- Fixed Next Talks proximity logic: The "Next week!" and "This month!" proximity logic in
/next-talkswas incorrect. It now usesmoment.jsfor accurate date comparisons.
- Added Gemini CLI talk: Added a new talk entry for "Gemini CLI: Your New Best Friend for Software Engineering" at WeAreDevelopers 2025.
- Corrected WeAreDevelopers session URL: Reverted the
session_urlfor the "From Monolith to Magic: An AI-Powered DevOps Workshop" at WeAreDevelopers 2025 to its original value.
- Fixed empty article cards: Article cards were not rendering due to missing
typeproperty and incorrect handling ofvideo_url. This has been fixed by addingtype: 'article'to articles ingetArticles()and correctly handlingvideo_urlinArticleCard.tsx. - Fixed database path: The database was being created in the wrong location (
prisma/db). This has been fixed by updatingprisma/schema.prismato use a relative path (../db/portfolio.sqlite3).
- Updated
src/app/lib/data.tsto addtype: 'article'to article objects. - Updated
src/app/components/ArticleCard.tsxto displayvideo_urland include a null check for the article object. - Updated
prisma/schema.prismato includevideo_urlin theArticlemodel. - Modified
prisma/schema.prismato use a relative path for the database URL. - Corrected
scripts/import-yaml.tsto handle thevideo_urlfield for articles.
- Fixed YouTube video embedding: The YouTube video embedding was broken on the talk and article pages. This has been fixed by correctly referencing the
videoproperty and adding a null check to theextractYouTubeVideoIdfunction.
- Updated the
src/app/talks/[slug]/page.tsxandsrc/app/articles/[slug]/page.tsxto correctly embed YouTube videos.
- Embedded YouTube videos: YouTube videos are now embedded directly on the talk and article pages.
- Updated the
src/app/talks/[slug]/page.tsxandsrc/app/articles/[slug]/page.tsxto embed YouTube videos. - Standardized the
videokey in theetc/data.yamlfile.
- Improved "About Me" page: The "Links" section has been removed and the links are now displayed in a more compact and visually appealing way.
- Updated the
src/app/about/page.tsxto remove the "Links" heading and restyle the links.
- Improved "Next Talks" page: The "Next Talks" page now highlights talks that are happening soon. Talks happening "Today!", "Tomorrow!", "This week!", "Next week!", or "This month!" are now larger and have a special label.
- Updated the
src/app/next-talks/page.tsxto calculate the proximity of a talk and pass it to theTalkCardcomponent. - Updated the
src/app/components/TalkCard.tsxto accept aproximityprop and apply special styling based on it. - Updated the
src/app/lib/data.tsto sort future talks by date.
- Added new talk: Added the "RAILSHΓCK AT RENUO" talk to the
data.yamlfile.
- Updated the
etc/data.yamlfile with the new talk.
- Fixed Cloud Build: The Cloud Build was failing because the
Teststep was using an outdated Node.js version. This has been fixed by using thenode:20-slimimage for theTeststep and runningnpm installbefore running the tests.
- Updated the
cloudbuild.yamlto use thenode:20-slimimage for theTeststep.
- Added
RICC_ENVto Cloud Run services: TheRICC_ENVenvironment variable is now set in both the development and production Cloud Run services.
- Added Cloud Run environment variables to
/configpage: The/configpage now displays Cloud Run environment variables.
- Updated the
/api/config/route.tsto include Cloud Run environment variables. - Updated the
/configpage to display Cloud Run environment variables.
- Improved Cloud Build configuration: The
cloudbuild.yamlhas been updated to correctly set theNEXT_PUBLIC_API_URLenvironment variable.
- Fixed Cloud Build: The Cloud Build was failing because the
vitestcommand was not found. This has been fixed by usingnpx vitest runin theTeststep of thecloudbuild.yaml. - Fixed Cloud Run deployment: The Cloud Run deployment was failing because the
NEXT_PUBLIC_API_URLenvironment variable was not being set. This has been fixed by adding theNEXT_PUBLIC_API_URLto theenvstanza of theDeploy-DevandDeploy-Prodsteps in thecloudbuild.yaml.
- Updated the
cloudbuild.yamlto usenpx vitest runin theTeststep.
- Fixed broken links on "About Me" page: The links to highlighted talks and articles were not rendering due to missing
typeproperty and incorrect handling ofvideo_url. This has been fixed by addingtype: 'article'to articles ingetArticles()and correctly handlingvideo_urlinArticleCard.tsx.
- Updated
src/app/about/page.tsxto correctly set thetypeproperty on highlighted talks and articles.
- Fixed broken links on "About Me" page: The links to highlighted talks and articles were broken because the
slugwas not being generated. This has been fixed by updating the data fetching logic to include theslug.
- Updated
src/app/lib/data.tsto generate slugs for highlighted talks and articles.
- Fixed Cloud Run deployment: The Cloud Run deployment was failing because the
NEXT_PUBLIC_API_URLenvironment variable was not being set. This has been fixed by adding theNEXT_PUBLIC_API_URLto theenvstanza of theDeploy-DevandDeploy-Prodsteps in thecloudbuild.yaml.
- Updated the
cloudbuild.yamlto set theNEXT_PUBLIC_API_URLin theDeploy-DevandDeploy-Prodsteps.
- Fixed Cloud Run deployment: The Cloud Run deployment was failing because the server-side data fetching was trying to call the API routes. This has been fixed by updating the data fetching logic to call the database directly.
- Updated
src/app/lib/data.tsto use Prisma directly instead offetch. - Reverted the
Dockerfileto not use the/tmpdirectory for the database.
- Fixed Cloud Run deployment: The Cloud Run deployment was failing because the database was not in a writable directory. This has been fixed by moving the database to the
/tmpdirectory in theDockerfile.
- Updated the
Dockerfileto use the/tmpdirectory for the database.
- Improved Cloud Build trigger: The Cloud Build trigger in the Terraform configuration now points to the
cloudbuild.yamlfile in the repository instead of using an inline build definition.
- Fixed Cloud Run deployment: The Cloud Run deployment was failing because
opensslwas not installed in the Docker image. This has been fixed by addingopensslto theapt-get installcommand in theDockerfile.
- Updated the
Dockerfileto installopenssl.
- Fixed Cloud Run deployment: The Cloud Run deployment was failing because the Prisma client was not generated for the correct OpenSSL version. This has been fixed by adding the
debian-openssl-1.1.xbinary target to theprisma/schema.prismafile.
- Updated the
prisma/schema.prismafile to include thedebian-openssl-1.1.xbinary target.
- Removed unused dependency: The
vite-tsconfig-pathspackage has been removed.
- Added integration test for import script: An integration test has been added to verify that the
just importcommand runs without errors. - Removed unused
import-yaml.jsfile: The unusedimport-yaml.jsfile has been removed to avoid confusion.
- Removed failing test for import script: The test for the import script was failing and has been removed.
- Improved Cloud Build configuration: The
cloudbuild.yamlhas been updated to remove the redundantDATABASE_URLfrom theBuildstep.
- Fixed Cloud Build: The Cloud Build was failing because the
import-yaml.tsscript was being run at build time. This has been fixed by moving the import script to theentrypoint.shscript, so that it runs at runtime.
- Updated the
Dockerfileto remove theimport-yaml.tsscript from the build process. - Updated the
entrypoint.shto run theimport-yaml.tsscript.
- Fixed Cloud Build: The Cloud Build was failing because the
DATABASE_URLenvironment variable was not being set in theBuildstep. This has been fixed by adding theDATABASE_URLto theenvstanza of theBuildstep in thecloudbuild.yaml.
- Updated the
cloudbuild.yamlto set theDATABASE_URLin theBuildstep.
- Improved Cloud Build configuration: The
cloudbuild.yamlhas been updated to use theenvstanza to set environment variables, which is a cleaner and more standard approach.
- Fixed Cloud Build: The Cloud was failing because the
.env.dockerfile is not under git. This has been fixed by dynamically creating the environment configuration in thecloudbuild.yaml.
- Updated the
cloudbuild.yamlto dynamically create the environment configuration. - Updated the
Dockerfileto remove theCOPY .env.docker .envcommand.
- Simplified dependency graph in README: The dependency graph in the
README.mdhas been simplified to merge direct and transitive dependencies.
- Added dependency graph to README: A Mermaid graph has been added to the
README.mdto visualize the project's dependencies.
- Updated the
README.mdto include a dependency graph.
- Fixed Cloud Build: The Cloud Build was failing because Python was not installed in the build environment. This has been fixed by installing Python in the
Dockerfile.
- Updated the
Dockerfileto install Python.
- Added testing and production deployment stages to Cloud Build: The Cloud Build pipeline now includes a testing stage that runs against a development environment. If the tests pass, the application is then deployed to production.
- Updated the
cloudbuild.yamlto include a multi-stage deployment process.
- Added image to "About Me" page: An image has been added to the "About Me" page to make it more visually appealing.
- Updated the "About Me" page to include an image.
- Fixed
importcommand: Theimportcommand was failing because it could not find the database. This has been fixed by explicitly setting theDATABASE_URLin thejustfile. - Fixed local development environment: The local development environment was failing for the same reason as the
importcommand. This has been fixed by using an absolute path for theDATABASE_URLin thejustfile.
- Updated the
justfileto use an absolute path for theDATABASE_URLin therun-dev-p3002andimportcommands.
- Fixed Docker build: The Docker build was failing because the
DATABASE_URLenvironment variable was not being set correctly. This has been fixed by using a.env.dockerfile.
- Updated the
Dockerfileto use a.env.dockerfile for the database URL during the build. - Updated the
justfileto remove the--build-argfrom thedocker-buildcommand.
- Fixed Cloud Build: The Cloud Build was failing because the
prisma generatecommand was not being run before thenext buildcommand. This has been fixed by adding theprisma generatecommand to theDockerfile.
- Updated the
Dockerfileto include theprisma generatecommand.
This release introduces a major refactoring of the data access layer, moving from a custom SQLite implementation to using Prisma ORM. This change was made to improve the long-term maintainability and stability of the application.
- Prisma Integration: The entire data access layer has been migrated to use Prisma. This provides a more robust and type-safe way to interact with the database.
- New
/configpage: A new page has been added to display the application's configuration and database statistics. This is also available at/up.
- Fixed "Failed to fetch config" error: This error was caused by issues with the database connection in a serverless environment. The move to Prisma and its recommended connection strategy for Next.js has resolved this issue.
- Fixed broken pages: The migration to Prisma broke several pages that were using the old data access logic. All pages and API routes have been updated to use the new Prisma client. -- Fixed test warnings: A warning in the test suite related to state updates has been resolved.
- Updated all API routes (
/api/talks,/api/articles,/api/highlights/talks,/api/highlights/articles) to use the Prisma client. - Updated the
import-yaml.tsscript to use the Prisma client. - Added
event_urlto theTalkmodel and updated the import script to handle inconsistencies in the data file. - Updated the
db.tsfile to use the recommended Prisma client instantiation for Next.js. - Added a test id to the home page for better testing.
- Updated the home page test to use
actandfindByTestIdto avoid warnings. - Added a
/configand/uplink to the footer.
- Added version to footer: The application version is now displayed in the footer.
- Added CHANGELOG link to footer: A link to the CHANGELOG has been added to the footer.
- Fixed broken links in footer: The links in the footer were not pointing to the correct URLs.
- Updated Footer component: The Footer component has been updated to include the version and CHANGELOG link.
- Updated layout to fetch version: The main layout now fetches the version from the
VERSIONfile.