<- back to Projects
Image of Nedko's face

Albion Recipe Planner

A dynamic crafting planner powered by live market data from Albion Online

Repository: https://github.com/topics/albion-recipe-planner

Project lifespan: 2025-05-23 - ongoing

VueJS TypeScript Tailwind Vite Go MariaDB SQL REST API WebSockets Docker

Key Contributions

  • Built a full-stack web app using VueJS, TypeScript, Go, and MariaDB

  • Implemented real-time data ingestion from a NATS broadcast feed

  • Designed a modular WebSocket backend using Clean Architecture principles

  • Refactored core infrastructure from REST to WebSockets for live updates

Case study

Inspired by the community tools surrounding Albion Online, I set out to build my own dynamic crafting planner - a full-featured application that helps players calculate the profitability of crafting recipes based on real-time market data.

I used this project as a deep-dive opportunity into Go, SQL, and real-time web communication. The frontend was built with VueJS, TypeScript, Tailwind, and Vite, and communicates with a backend written in Go, backed by MariaDB, and containerized via Docker.

The initial implementation was a REST-based API with CRUD support for creating and managing custom recipes. Each recipe supported data entry for ingredients, costs, and profitability estimations. Over time, I realized that manual data entry became a bottleneck - so I integrated a NATS broadcast API to ingest live in-game market data directly into my database.

This required a full backend refactor: I transitioned to a WebSocket-based architecture, allowing live updates from server to client without polling. I used this opportunity to rethink the backend structure entirely, applying Clean Architecture concepts and splitting responsibilities into transport, feature, service, and store layers.

On the frontend, I introduced a custom SDK layer to separate rendering logic from backend communication, enabling more modular development and simplifying future changes.


This project not only sharpened my backend and database skills but also taught me valuable lessons in software architecture, real-time systems, and structuring maintainable, full-stack applications with live data pipelines.