Projects
A selection of things I've built, from full-stack applications to the infrastructure that runs them.
Photo Frame
A self-hosted digital photo frame system for a Raspberry Pi. A Spring Boot backend stores photos and display settings in SQLite and pushes live updates to the frame over a WebSocket, while the kiosk display renders a canvas slideshow with per-photo scaling and overlays. Each photo can carry text captions or a live clock/date overlay, composed in a visual editor with control over font, size, weight, color, background, alignment, and drag-to-position placement, then drawn onto the kiosk canvas and pushed live to the frame. A companion Android app pairs with the frame to set it up and manage it, and a browser admin UI handles uploads, slideshow settings, overlays, and device pairing.
- Spring Boot
- JPA / Hibernate
- SQLite
- WebSocket
- Java
- Android
Designed to run on a Raspberry Pi driving a display, with the Android companion app pairing over the local network.
Personal Portfolio
This site — a personal portfolio and homepage built as a single-page App Router application. Server-rendered content with animated, interactive UI (Aurora background, scroll reveals, spotlight cards) and a dark-first theme.
- Next.js (App Router)
- React
- TypeScript
- Tailwind CSS v4
- React Bits
Self-hosted on an AWS EC2 instance running Node.js behind a reverse proxy.
Woody — News Aggregator
woody.sokeila.fiAn Ampparit-style news aggregator that collects and surfaces headlines from multiple sources in one feed. A Spring Boot REST backend persists and serves the aggregated articles via JPA, with a React single-page frontend consuming the API.
- Spring Boot
- JPA / Hibernate
- REST
- React
- Java
Self-hosted on an AWS EC2 instance behind a reverse proxy.