Hi, I'm Albert Adler 👋

Developer, AI enthusiast, and lifelong learner

I am Albert Adler, a developer from Spain. I have been developing for years as a freelancer and contractor, helping to develop many startups, SaaS and different projects.

I built this website in the most basic of the styles as a way to have something simple ready to deploy. I just want to publish what I do , what I study, those little projects and MVPs I develop.

Below this lengthy text you will find a timeline with projects I have done, with articles I have written and libraries I have built . Not every project is here, specially the ones prior to the launch of this site, but I am working hard on updating this.

  1. Enhanced Blog with Notion CMS

    Enhanced Blog with Notion CMS

    I was getting tired of writing blog posts in markdown files. Sure, it works, but managing images was a pain and I wanted a better writing experience.

    So I decided to move the blog to use Notion as the CMS. Now I can write posts with a proper rich editor, upload images directly, and focus on writing instead of file management.

    So, basically, it fetches posts from Notion's API and transforms them for static generation. I also added proper categorization with category-based URLs like /blog/[category]/[slug]/ which makes much more sense (and hopefully more SEO friendly).

    I also switched to Shiki (well, I was not using any before, so not really a switch) and now code blocks look much better - with a header with the used language, a copy button, and support for tons of languages including Python, TypeScript, you name it.

    Finally, I fixed those annoying layout shifts when images load by fetching their dimensions server-side. The little details matter (plus Google Search Console was complaining about it all the time...)

  2. Moved to Astro

    Moved to Astro

    I decided to move this blog to Astro, now it is a static site, it does not ship any JavaScript and it is much faster.

    I am using Cloudflare Pages as a hosting service, making it free and even faster.

    Also, I am taking advantage of Astro plugins to generate things like sitemap, RSS feed and even the OG images for social media and even for accessibility (everything should be accessible now in this website).

    Finally, this allows me to just write the content in Markdown and not worry about the rest (I am also able to use MDX in case I want to use some components here and there). I am also playing with the idea of using some headless CMS in the future.

  3. Upgraded this blog to Next.js 15 & SSG

    Upgraded this blog to Next.js 15 & SSG

    This blog was running on Next.js 14 and SSR in Cloudflare Pages but I felt it was a waste of resources since all the content was static.

    Since it was time to upgrade to Next.js 15 and React 19, I decided to also migrate it to be fully static .

    When using Cloudflare Pages for non-static sites, every request made to the server (even requests to static resources like images) go first through a worker so each page load could be much more requests than 1 for your free requests count in Cloudflare.

    I didn't like it so I decided to migrate to SSG and now the site is much faster and it is basically free to run since static resources are free to host in Cloudflare Pages.

  4. Built a boilerplate for SST v3, Next.js and SST Auth

    Built a boilerplate for SST v3, Next.js and SST Auth

    The project had the goal of showcasing how to use the new version of SST with Next.js and the new SST Auth library.

    I did this since right now, the new version of SST was launched, but the docs for the SST Auth in that version didn't exist yet ; so I wanted to create a basic example for everyone until the official docs and examples were out.

    It was a fun adventure, diving into undocumented source code , testing, trying, breaking and trying again until it worked. But the efforts paid off and the result is here, a working example!

    Check it out in GitHub
  5. Created a new public Docker for a BullMQ dashboard

    ⚡ Created a new public Docker image for a BullMQ dashboard

    I was tired of having to build all the time some small webserver to have a BullMQ dashboard running. So I had the idea of looking for a Docker image already created for it in the Docker Hub.

    Sadly, the only image I found there was not really "production-ready". It had almost no security, it was really outdated , no logs...

    I thought about pushing an update to the repo but I saw that it was really inactive, with noone answering multiple issues and pull requests. So... I had to build my own one!

    At first, I thought about forking it and just update the stuff I needed. But it was more work than building it in the right way from zero.

    So now we have a new Docker image containing a production-ready , heavily optimized and secure web server containing a dashboard for monitoring Bull and BullMQ queues.

    It has lots of features like some basic authentication, CSP policies, privacy complaint, informative logs and it is running with Bun and Elysia, for the best performance!

    For all the details and also to check the documentation, feel free to check the GitHub repo (also I am open for contributions!): Bull Board Dockerized

    P.S: It has some really nice GitHub actions so when I push to the main branch a new release, a new release is generated with semver version codes and then a new multi platform Docker build is published to Docker Hub with the semver and latest tags!

    Check it out in Docker Hub
  6. Created this site

    Created this site

    With this entry, I started my new website. Although the design is not final (when is it?), I am trying to focus on making it minimalist and accessible.

    I like to build beautiful front-ends but everything has its time, and for this website, at least for now, I don't need a website with lots of animations, or cool effects... I just want a place where I can post little articles about things I find interesting and also a place where I can have a timeline showcasing my projects.

    And this version accomplishes both things. So we are ready to start. 🫡