Ayfri

This Portfolio

I created this portfolio first because my school asked me to, but it turned into a long-running playground I keep coming back to.
No HTML files, no CSS files, no JavaScript I wrote by hand, every page and every style rule is Kotlin compiled to JavaScript through Kobweb and Compose HTML.

June 2022

Started

100% Kotlin

Language

Kobweb + Compose HTML

Framework

Cloudflare Pages

Hosting

Why I Built It screenshot

Why I Built It

My school asked for a portfolio to validate the first year, but I wanted more than a template someone could fill in a weekend.
Something that could explain what I do, how, and why, beyond a bare GitHub profile.

Designing It screenshot

Designing It

The early visual identity started as mockups in Figma, with my internship tutor pushing me on layout and color while I focused on the code.
These days the design lives directly in Compose HTML: styling and layout are iterated on in Kotlin itself, no separate design tool.

Building It screenshot

Building It

Everything is Kotlin: pages, styling, and the build script itself, compiled to JavaScript through Kobweb and Compose HTML.
One typed language for the whole site means the compiler catches broken links and typo'd CSS colors before they ever ship.

Shipping It screenshot

Shipping It

The site is statically exported with kobwebExport, then deployed to Cloudflare Pages straight from GitHub Actions on every push to master.
No manual uploads, no dynamic server to maintain, just static files served from the edge.

Built With

Kotlin 2.4Kobweb 0.25Compose HTML 1.11Gradle 9.6GitHub ActionsCloudflare Pages

Want the deep dive, the actual code samples, and why I'd still pick a boring stack for a team project? Read how this portfolio was built.