I'm someone who thrives on both creativity and problem-solving, and web development turned out to be the perfect mix of the two. With a background in editorial photography, a solid education in frontend development, and several years of experience in the field, I bring a trained eye for detail into everything I build. I'm happiest when I'm creating, learning, and exploring new ways to improve digital experiences.
Here you'll find a small selection of my projects, I'm working on adding more over time. I'm currently open to new opportunities, so feel free to reach out and say hi!
Selected Projects
Nordanro is the Elon Group’s own home furnishing brand, with a range covering every room in the home.
The site is a catalogue rather than a shop. WooCommerce handles the product data and filtering, but checkout is switched off, visitors explore the range and are pointed to a retailer instead. A store finder matches the visitor’s location against the chain’s stores and orders them by distance, and store details and opening hours stay current through an integration with PinMeTo. Newsletter sign-ups and consent are handed off to Voyado.
Everything runs in both Swedish and Norwegian, down to separate store data and menus per market. The editorial team composes campaign and inspiration pages from a library of around 40 blocks, without needing a developer.
I have worked on Nordanro since 2021 and am the largest contributor to the codebase.
Developer @ osolo
Katarina Hansson (Dev)
Max Trewhitt (Dev)
Markus Ojanperä (Design)
A portfolio and shop for a potter and horticulturalist in Malmö.
Built headless. WordPress holds the content and the products, and a separate React frontend reads them over an API.
Rather than expose WordPress’s default REST output, I wrote a plugin with its own endpoints for portfolio, FAQ, products, pages and footer settings, each returning only what a given view needs. The frontend is a React app that routes in the browser, so moving between views never reloads the page. It has a portfolio grid with a lightbox, an expandable FAQ, and a cart in React state with orders paid through PayPal. Frontend and backend deploy separately.
I built both halves on my own in 2021.
Design
Developer
Karriär i handeln is a career guidance site for the Swedish retail sector, built for students, teachers and workplaces.
It works more like a platform than a single site. Occupations, educations, school assignments and teaching resources each have their own content type and are cross-linked, so a visitor can move from an occupation to the educations that lead there, and on to material a teacher can bring into the classroom. Several self-contained tools sit on top, each with its own front-end bundle, among them an interactive occupation map that draws the connections between roles and career paths, and “Maxa kassan”, a learning module with its own start page, article library and document bank. Occupation data is pulled from an external API and served through the site’s own REST endpoints, and schools order printed material through a cart. One WordPress installation serves several domains.
I worked on the project between 2022 and 2025 as one of three developers, mainly on templates, page styling, the editor’s field structure and the view layer.
Developer @ osolo
Katarina Hansson (Dev)
Max Trewhitt (Dev)
Markus Ojanperä (Design)
Marczak & Utterström is a small communications agency.
One WordPress installation serves several sites. It runs as a multisite with each site on its own domain, so visitors see separate brands while everything shares one codebase, theme and admin.
Pages are assembled from a set of custom Gutenberg blocks for hero, columns, teasers, partners, news, video and contact details. Each block is backed by ACF fields stored as JSON in the repository, so the field definitions are versioned with the code instead of living only in a database. Cases, news and events have their own content types.
Editors get a predictable set of building blocks instead of a free-form editor. The whole build was mine, start to finish, in about a week.
Developer @ osolo
Klara Frankzén (Design)
Kristina Johansson designs and makes jewelry; the site is where the work is shown rather than sold.
The whole site is assembled from a library of custom Gutenberg blocks: hero, galleries, inspiration lists, text and image, quotes, teasers, call-to-action, video, forms, so pages are composed in the editor instead of being templated one by one. Galleries and inspiration lists are driven by ACF repeater fields, which keeps a new collection a matter of adding images rather than calling a developer.
Scroll animations are built with GSAP and ScrollTrigger and exposed as a per-block toggle, so the editor decides which sections fade in and the motion stays deliberate instead of being applied to everything by default.
Built on Sage 10 with Blade templates and view composers. I have developed and maintained the site since 2023.
Developer @ osolo
Markus Ojanperä (Design)