A work management application with role-based team management (CTO, PM, Frontend/Backend Developers, Designer, etc..). CTOs create projects and assign PMs, who then manage teams, create sprints, and monitor progress. Team members can track tasks, indicate completion levels, and report blockers. Features include in-app chat, notifications, calendar-based project tracking, and Kanban boards for visual task management.
Note: This project is currently under development. Scroll to the bottom to view the roadmap for upcoming features and improvements.
When I looked at my side projects, most of them were small-scale with limited integrated features. I wanted to challenge myself by building something larger and more complex, a project that would help me learn how to write clean and maintainable code that scales well as features are added.
This is why I decided to build Taska, a work management system similar to Jira but at a smaller scale and focusing more on teams and projects.

The first challenge I faced was rendering icons in a scalable way. Simply importing SVG files and rendering them as images wouldn't inherit the parent's color, making it difficult to maintain a consistent design system.
After some research, I found this article that introduced me to @svgr/cli, a tool that converts SVG files into React components. I implemented this approach, and now whenever I need to add a new icon, I simply:
assets/svgs folderpnpm icons to generate React componentsThis workflow allows me to pass parameters to icons, style them with CSS, and maintain them as first-class React components, making the codebase much more maintainable and scalable.
Since I wanted to focus on frontend development, I didn't want to implement a real backend. However, I still needed the app to be interactive and persistent. I evaluated several mock backend options and here is why I didn't use them:
Finally, I decided to build a custom mock API system with an api object that registers handlers matching URL patterns. Each feature has a feature.json file for initial data and a feature.ts file for endpoints. To make it realistic, I added probability-based error generation and artificial server delays to simulate real network conditions.
ts