Room 00 — Gallery of Origins

The museum of software craftsmanship · Azrou, Morocco

Akram Rihani

Full-Stack Software Developer

I engineer robust, scalable software solutions across the full technology stack, from intuitive user interfaces to reliable backend systems and data infrastructure.

The museum begins

This museum has no walls — only craft.

Fired
Akram Rihani2026
Room 01

Hall of Living Code.

No photographs — the real thing. The live builds hang on the wall, each running exactly as it runs on the internet; the nearest one first.

Warming up

Pick any door — the wall answers live

Palais Amghass — the front door, waiting for the live page

A live build — real HTML, real server, real hand. The frame forgets nothing you do.

palais-amghass.vercel.app

Every door above stays open: the builds keep running after the exhibition ends, which is the only honest way to end.

Room 02

Fountain Court.

Every museum has a founding story. This one is four steps, and they all lead to the same place: an idea, made real.

01

Curiosity

It started with a question: what can software actually do?

02

Engineering

The question became craft — Java, web systems, and the patience to make them correct.

03

Projects

Craft became commissions: live products, client sites, a university platform.

04

Products

And now the work is one thing — turning an idea into something real, end to end.

Open to work

Concept → architecture → development → experience → deployment. One person carrying the whole build — so nothing gets lost in translation.

Founded in Azrou
Kiln · 2020 — present

“The water is quiet, but it is the reason the courtyard is alive.”

The grammar of the workshop

Seven rules, taken from the Moroccan craft and applied to code.

01

Geometry

Architecture

Every tile is cut to a plan before it is glazed. Every feature is designed as a system before a line is written.

02

Modularity

Components

One star, eight points, a thousand compositions. One primitive, reused with discipline, becomes a whole building.

03

Repetition

Systems

The master repeats a pattern until it stops being decoration and becomes structure. Rendered once, reused everywhere.

04

Symmetry

Consistency

A pattern that breaks on one side ruins the wall. State, roles and interfaces must answer the same way every time.

05

Hierarchy

Information

The star governs the tile, the tile governs the wall. Typography and data follow the same rule: one voice leads.

06

Precision

Correctness

A tile off by a millimetre breaks the whole motif. A nullable field, a wrong status, a race — the motif breaks too.

07

Patience

Craft

Zellige cannot be rushed; neither can good software. The kiln fires at its own temperature. The types compile when they are right.

Room 03

Workshop of Systems.

Four disciplines, practised like crafts — because systems are only as strong as the hands that cut them.

Java Backend

The load-bearing walls. Spring Boot systems with real teeth — authentication, authorization, business rules and state machines that never guess.

JavaSpring BootSpring SecurityRBACJPAMySQLREST

The structure that holds the whole building up.

TS · React · Next

The rooms visitors walk through. TypeScript-strict, server-first frontends — fast by default, accessible always, and only beautiful at the end.

TypeScriptReactNext.jsRSCTailwindAccessibilityPerformance

The rooms the visitors walk through.

DevOps & Security

The locks on every door. Linux, deployment, rate limits, headers, hardening — the invisible discipline that keeps what is built from falling.

LinuxGitCI/CDDeploymentAuthSecurityMonitoring

The locks, the keys, the night guard.

WebGL & Motion

The glazed walls. Three.js scenes, GSAP choreography, scroll that reads like a tour — every frame earns its place or leaves the room.

Three.jsReact Three FiberGSAPScrollTriggerLenisWebGL

The glaze that catches the light.

The Loom — 01 · Material

Close to the wool. Fibre by fibre, thread by thread — this is where a build begins: the careful, dull, necessary work before the pattern can hold.

Room 04

Collection of Works.

Six accessions, curated — real builds only. The flagship hangs first, the web builds fill the arcade.

WISLA Platform — Enterprise Application
INV. IEnterprise Application2024Flagship accession

WISLA Platform

A complete enterprise web application for university–company partnership: a Spring Boot backend with role-based access control, state machines for every workflow, and three different organisations under one roof.

JavaSpring BootSpring SecurityRBACJPAMySQL
Palais Amghass — Hotel Experience
INV. IIHotel Experience2025

Palais Amghass

A palace hotel in the Atlas, digitised: an ambient WebGL room the visitor can orbit, a gallery that walks like a corridor, and an image budget held tight enough for valley bandwidth.

Next.jsThree.jsGSAPTailwind CSSVercel
NextHobby — Web Platform
INV. IIIWeb Platform2025

NextHobby

An equipment rental platform that started as a hobby and became a live product — renting, payments and accounts, shipped for real and open to the public.

Next.jsReactTypeScriptPaymentsVercel
Room 05

Archive of Memory.

The deep exhibit: WISLA — enterprise web application, backend engineering. The lights go down; the details come out.

The deep exhibit

WISLA Platform.

WISLA is a full software system, architected and shipped end to end. The backend is Spring Boot with Spring Security at the gate: companies, faculties and students each hold a role, and every screen asks who is looking before it renders. Academic email verification opens the door; explicit state machines drive internships, applications and partnership agreements from draft to done; JPA over MySQL keeps the whole archive consistent. A CV snapshot freezes each application in time, so what the faculty reviewed is exactly what the company receives. Verified with a grade of 19/20.

Enter the exhibit →INV. I · Enterprise Application

Field notes — three problems, three decisions

01

One system, three identities

Companies, faculties and students share one platform, but nothing about their day looks the same.

Role-based access control with per-role views — authorization is resolved against the authenticated principal on every request.

02

Workflows with real states

Internships, applications and partnership agreements pass through approval chains; a record must never be in two places.

Explicit state machines for every flow — status is a resolved fact, not a guess, and transitions are the only way to move.

03

The door has to check IDs

Only real academic addresses should pass through the gate of the university system.

Academic email verification before the first login, enforced server-side at registration.

One platform, three keys to the door

Company

Publishes internships and offers, reviews applications, manages partnerships.

Faculty

Validates students, supervises internships, approves the chain of agreements.

Student

Owns a dashboard, applies to offers, follows every application to its state.

One Spring Boot spine. Three role-shaped dashboards. Every request answers to Spring Security before it answers to the data.

Grade

19/20

Organisations

3 roles

Backend

Spring Boot

Store

MySQL · JPA

Frames from the field

WISLA — the student dashboard
The student room, in light mode. · frame 1/4
WISLA — the company dashboard
The company desk, in light mode. · frame 2/4
WISLA — the platform in dark mode
The same museum, after dark. · frame 3/4
WISLA — the faculty dashboard
The faculty shelving. · frame 4/4

Room 06 — Threshold

Have an idea worth building?

Let's turn it into something real.

The visitors' book

Open to workAzrou, Morocco

Straight to the museum office — no list, no spam.

Or find the keeper directly

hello@akramrihani.com

From one idea to one shipped thing — concept, architecture, code, experience, deployment. The whole building, under one roof.

The exhibition has ended — the door stays open.

Akram Rihani — built in Azrou · 2026