03 / 05 WORK / PROJECT← All work

Full-Stack Application · Backend Engineering

GoEvoli

A Kanban board should feel less like administrative software. The interesting questions came afterwards: permissions, loading states, API behavior and data dependencies.

Context

The visual idea was easy to define. Harder was keeping the board understandable and usable under real conditions: authentication, permissions, slow requests and mobile interaction.

Approach

The project consists of a Go backend, a React/TypeScript frontend and MongoDB. I worked across the backend, interaction, security and deployment.

System

  • React / TypeScript: board and interaction
  • Go / Chi: API and sessions
  • MongoDB: projects, stories, tasks and bugs
  • Docker: deployment
SYSTEM LAYERS
NetworkBackendInterfaceOperations

Engineering decisions

  • Protect session cookies with CSRF protection and rate limiting.
  • Provide WebSocket support for updates.
  • Split loading states so a slow request does not block the whole application.

What did not work

Initially, the board waited for too much data at once. If one request was slow, the entire application felt broken. Simply loading faster was not the real solution.

Result

Authentication, role-based behavior, CSRF protection, rate limiting, WebSockets and Docker-based deployment are part of the system.

What stayed with me

The better solution was to reduce dependencies and reveal content progressively as its data became available.