# 1. Building a Company Management App

# 1. Building a Company Management App

Introduction

Welcome back! Today’s post is a little different from the technical deep-dives I plan to publish here in the future. I want to share an idea for an app—before writing a single line of code. Why? Because sharing the early stages of a project isn’t just about defining what I want to build; it’s a great way to gather feedback, refine my thoughts, and learn along the way.

This blog is primarily focused on tech because I see this project as a hands-on opportunity to strengthen my programming skills. If sharing my journey inspires others or sparks discussions, that’s an added bonus! 😊


Why this idea?

As a former lawyer who worked closely with tech startups, I’ve often wished for a tool that makes managing companies easier and more efficient. Instead of waiting for someone else to build it, I decided to take matters into my own hands.

Here’s what the app aims to do:

  • Store documents in an organized, company-specific structure.

  • Remind users of critical legal deadlines.

  • Log in to a personal account and access multiple companies they are connected to.

  • Have roles specific to their involvement, like board member, shareholder, supervisor, employee and so on. Each of these roles will have its own rights, such as access to documents - minutes of supervisory board meetings, financial reports, meeting regulations, etc.

  • Generate key legal documents, such as resolutions, shareholder agreements, and board decisions.

  • Have inner roles within the app, such as admin or regular user. Admin users can invite others to join the platform, evaluate drafts, or sign documents—all in one place, tailored to the right company.

At first, the app will focus on Polish companies, leveraging my legal experience in this system. However, I want to design it in a way that makes it adaptable to other jurisdictions later on. Of course requirements may change, decrease or expand over time. Nevertheless, it is a natural development process and I think we are all aware of it :)


A Childlike Beginning for a Grown-Up Idea

Before diving into development, I need to figure out the foundation:

  • What problems will the app solve? The app aims to simplify company management, making legal processes less daunting for startups.

  • What architecture should I choose? Should it be microservices, modular monolith, or something else?

  • What design patterns and technologies are best? Decisions here will affect maintainability and scalability.

  • How should I structure domains and user roles? Balancing simplicity and complexity will be key.

I’ll explore each of these in dedicated posts to explain how I approach these technical and business challenges.


Uniqueness and challenges

Sharing this idea doesn’t worry me; it’s all about execution. But there are some key challenges to overcome:

  1. Flexibility in law compliance
    Laws change often, and the app must be agile enough to adapt without requiring constant overhauls. To achieve this, I’m considering modularizing the legal logic or creating a system of configurable templates for documents and workflows.

  2. Polish legal specificity
    Handling the nuances of Polish corporate law is tricky. For example, shareholder meetings, board approvals, and supervisory reports all have distinct legal requirements.

  3. User roles and access management
    Balancing simplicity with robust role management will be crucial. A clear permissions system, perhaps built with Spring Security, could provide the needed granularity.

  4. Scalability and integration
    Building a scalable foundation is a must. As more users and companies join, the app will need to handle increasing complexity. Incorporating microservices or a modular monolith might be a good solution here.

  5. User-friendly interface
    While backend development is my strength, creating an intuitive frontend will be a challenge. I plan to experiment with frameworks like React or Angular to strike a balance between functionality and user experience.


Technical considerations

As a Java developer, I naturally gravitate toward Spring Framework for the backend. But I’m also exploring Kotlin for its modern syntax and developer-friendly features—it could complement the app’s dynamic nature.

For the frontend, I’m weighing React and Angular. While I’ve used React a bit in the past, Angular’s structure and TypeScript support are appealing. I’ll outline my decision-making process in a future post, including what factors led me to choose one over the other.

These decisions aren’t just about preferences—they’ll shape the app’s scalability, performance, and developer experience.


Conclusion

I hope this post gives you a clear picture of my vision and motivations. If you have any suggestions, experiences, or ideas to share, please leave a comment—I’d love to hear your thoughts!

In my next post, I’ll dive deeper into architecture and technology choices. Until then, see you soon! 👋