---
source: 
generated: 2026-05-08T10:05:14.557Z
note: This is a markdown version optimized for LLMs. For the full experience, visit the HTML version.
---

Paul Lahana's Portfolio  

A markdown version of this page optimized for LLMs is available at: [https://dev.paul-lahana.com/index.md](https://dev.paul-lahana.com/index.md)

# [Paul Lahana](/)

[![Paul Lahana](/_astro/smiley.aUVAx_wu.png)](/drawing-board)

-   [About](/about)

[mark-don](/projects/mark-don)

open source projectRubyRailsTypeScriptAstroLLM

[![A screenshot of the markdown version of this portfolio](/_astro/markdon.BGMvqCw8_10xOsz.webp)![A screenshot of the response from the LLM when asking for a description of the portfolio](/_astro/markdon-2.BjMIIQAb_ZWO90v.webp)](/projects/mark-don)

A Rails gem and an Astro integration that serve any page as Markdown by appending .md to the URL or sending Accept: text/markdown.

The Rails gem hooks into any app automatically via a Railtie. The Astro package generates static .md files at build time.

Both are available as open source packages : mark-don on RubyGems, astro-mark-don on npm.

This portfolio is using astro-mark-don : try it at [dev.paul-lahana.com/index.md](https://dev.paul-lahana.com/index.md)

Inspired by Evil Martians' article on making websites visible to LLMs.

[mark-don (Rails)](https://github.com/paultursuru/mark-don) [astro-mark-don (Astro)](https://github.com/paultursuru/astro-mark-don) [RubyGems](https://rubygems.org/gems/mark-don) [npm](https://www.npmjs.com/package/astro-mark-don) [Project Details](/projects/mark-don)

[IFM-lab](/projects/ifm-lab)

RailsRubyPostgreSQLHTMLJavaScript

[![A screenshot of the IFM-lab admin interface displaying the upcoming bookings.](/_astro/ifm-admin.PetrvWe9_Z10r8tz.webp)![A screenshot of the IFM-lab admin interface displaying machine statuses.](/_astro/ifm-admin-2.DT0bkIpC_Z1q1BGP.webp)](/projects/ifm-lab)

IFM-lab is a platform for managing IFM's FabLab machines and rooms. It allows the 1200+ students to book machines depending on their availability. And it also allows the staff to manage the machines, rooms and classes.

This project was built with Rails and follows the main IFM's website design.

[Project Details](/projects/ifm-lab)

[Charlotte El Moussaed's portfolio](/projects/charlotte-el-moussaed-portfolio)

RailsRubyPostgreSQLCloudinaryHTMLJavaScript

[![A screenshot of the Charlotte El Moussaed portfolio displaying an artwork with a background color calculated from the main color of the artwork.](/_astro/charlotte.C2PMUKmH_Z1APwCB.webp)![A screenshot of the Charlotte El Moussaed admin interface.](/_astro/charlotte-2.CQgLaoim_24J9Q6.webp)](/projects/charlotte-el-moussaed-portfolio)

This portfolio displays El Moussaed's artworks and documentation pictures in a random order. Each image is lazyloaded. Some background color's for the artwork are dynamically calculated to be the median color of the artwork.

The admin's interface allows the artist to import images, categorize them and group them in series.

[Charlotte El Moussaed's portfolio](https://www.charlotteelmoussaed.com/) [Project Details](/projects/charlotte-el-moussaed-portfolio)

[GitBar - MacOS plugin](/projects/gitbar)

open source projectRubyxbargithub cli

[![A screenshot of the GitBar plugin opened in xbar showing one of the menus](/_astro/gitbar-2.BX_aaFnr_2wqry0.webp)![A screenshot of the GitBar plugin opened in xbar](/_astro/gitbar.C4d22bXz_19oQTD.webp)](/projects/gitbar)

GitBar is a small plugin to stay up-to-date on multiple Git Repositories. It works within xbar's plugins. The plugin fetches all data from your repositories using the Github CLI.

This project was presented at the Geneva.rb talks (a series of meetups about Ruby and Rails development).

[GitBar - MacOS plugin](https://github.com/paultursuru/gitbar) [Presented at Geneva.rb talks](https://www.rubyevents.org/talks/using-xbar-and-rails-patterns-to-build-macos-add-ons) [Project Details](/projects/gitbar)

[hottter - store](/projects/hottter-store)

BigCartel theme APIHTMLCSSJavaScript

[![A screenshot showing the Hottter main website](/_astro/hottter-main.BgpTJDyk_2m6NPJ.webp)![A screenshot of the Hottter main website displaying a product page](/_astro/hottter-main-2.CZQj-T0I_1yEopx.webp)](/projects/hottter-store)

Hottter is a Swiss brand I created that knits scarves and other accessories. The store is on BigCartel.

A full customization of the theme was made to match the brand's look.

[hottter - store](https://www.hottter.ch/) [Project Details](/projects/hottter-store)

[hottter - custom pattern generator](/projects/hottter-pattern-generator)

RailsRubyP5.jsStripeAdministrateTurbo

[![A screenshot showing an example of the custom pattern generator with a geometric shape](/_astro/hottter.DXx3u1lH_ZRGJ1m.webp)![A screenshot showing an example of a generated pattern viewed from the product page](/_astro/hottter-2.ij6w5Fzf_Z2bGMp6.webp)](/projects/hottter-pattern-generator)

This is a child project for the scarf brand hottter, featuring an interactive pattern generator built with P5.js.

The pattern is created with P5.js and saved as SVG and JSON.

The project is now offline but the code is still available on GitHub.

[hottter - custom pattern generator](https://github.com/paultursuru/take_cover) [hottter's main website](https://www.hottter.ch/) [Project Details](/projects/hottter-pattern-generator)