DEV Community

Cover image for I Built a Modern ERP for Startups & Small Businesses Instead of Another To-Do App
Nimash Mendis
Nimash Mendis

Posted on

I Built a Modern ERP for Startups & Small Businesses Instead of Another To-Do App

I Built a Modern ERP for Startups & Small Businesses Instead of Another To-Do App

How a simple idea evolved into a customizable business management platformโ€”and why I believe small businesses deserve software that's powerful, modern, and actually affordable.


When developers build side projects, it's common to create another to-do app, weather app, or AI wrapper. There's nothing wrong with thatโ€”I built plenty of learning projects myself.

But at some point, I wanted to build something that could solve a real business problem.

That idea became Opero.

A modern, cloud-based business management platform designed for startups and small businesses that need more than spreadsheetsโ€”but don't want the complexity and cost of enterprise software.


The Problem I Kept Seeing

When talking to small business owners, I noticed the same challenges over and over again.

  • Customer information stored in Excel
  • Inventory tracked manually
  • Sales managed through WhatsApp
  • Purchase orders created in Word documents
  • Invoices scattered across multiple systems
  • No real-time visibility into the business

As companies grow, these small problems become expensive.

Employees waste time searching for information.

Stock runs out unexpectedly.

Reports take hours to prepare.

Owners don't have a clear picture of what's happening in the business.

Large ERP platforms like SAP or Microsoft Dynamics can solve many of these issuesโ€”but they're often too expensive or too complicated for smaller companies.

I wanted to build something different.


Introducing Opero

Opero is a modern ERP platform designed specifically for startups and growing businesses.

Instead of forcing companies to use five different applications, Opero centralizes everything into one platform.

Current modules include:

  • ๐Ÿ“Š Dashboard
  • ๐Ÿ‘ฅ Customer Management
  • ๐Ÿ“ฆ Product Management
  • ๐Ÿ“ฆ Inventory Management
  • ๐Ÿข Supplier Management
  • ๐Ÿ›’ Sales Orders
  • ๐Ÿ“‹ Purchase Orders
  • ๐Ÿ’ฐ Invoices
  • ๐Ÿ“ˆ Reports & Analytics
  • ๐Ÿ”” Notification Center
  • ๐Ÿ‘ค User Management
  • ๐Ÿ” Role-Based Access Control

Everything works together as a single ecosystem.


My Favorite Feature: Smart Reorder Engine

Almost every inventory system has a Low Stock warning.

But here's the problem.

When you see:

Low Stock

it's often already too late.

You should have reordered days earlier.

Instead of another low-stock alert, I built something smarter.

Smart Reorder Engine

The system analyzes:

  • Historical sales
  • Daily sales velocity
  • Current inventory
  • Supplier lead times

Then predicts:

"This product will run out in approximately 12 days."

Even better, it automatically prepares a purchase order draft that the business owner simply reviews and approves.

Instead of reacting to problems, businesses can prevent them before they happen.

For small businesses without dedicated inventory managers, this feature can save hours every week while reducing both overstocking and stock shortages.

Calculating Stock-Out Predictions

One of the core ideas behind the Smart Reorder Engine is predicting when inventory will run out instead of simply checking if it's has reached a minimum quantity.

const dailySales = salesLast90Days / 90;

const daysUntilStockout =
  Math.floor(currentStock / Math.max(dailySales, 0.1));

const reorderNow =
  daysUntilStockout <= supplierLeadTimeDays;

return {
  daysUntilStockout,
  reorderNow,
};
Enter fullscreen mode Exit fullscreen mode

Instead of displaying:

Low Stock

Opero displays something much more useful:

"Wireless Mouse will run out in approximately 12 days."


Modern Architecture

I wanted Opero to be scalable from day one.

Here's the technology stack I chose.

Frontend

  • React 19
  • TypeScript
  • Vite
  • Tailwind CSS
  • React Router
  • Recharts
  • Lucide Icons

Backend

  • Node.js
  • Express.js
  • TypeScript
  • Zod Validation

Database

  • PostgreSQL
  • Supabase

Deployment

  • Frontend โ†’ Vercel
  • Backend โ†’ Railway
  • Database โ†’ Supabase

Building for Scale

Rather than placing all logic inside controllers, I followed a clean architecture.

flowchart TD
    A[Controller] --> B[Service]
    B --> C[Repository]
    C --> D[(PostgreSQL)]
Enter fullscreen mode Exit fullscreen mode

This keeps business logic separate from routing and database access, making the application much easier to maintain as it grows.

The platform also includes:

  • Multi-tenancy
  • UUID-based entities
  • Soft deletes
  • Organization isolation
  • Role-Based Access Control
  • Protected frontend routes
  • Modular API structure
  • Comprehensive validation
  • Secure authentication

Repository Pattern

Instead of writing SQL inside controllers, every module follows the Repository Pattern.

class ProductRepository {
  async findById(id: string) {
    return db
      .select()
      .from(products)
      .where(eq(products.id, id))
      .limit(1);
  }
}
Enter fullscreen mode Exit fullscreen mode

This separation keeps controllers lightweight and makes testing significantly easier.


Multi-Tenant by Design

Every query is automatically scoped to an organization.

const products = await db
  .select()
  .from(productsTable)
  .where(
    eq(productsTable.organizationId, organizationId)
  );
Enter fullscreen mode Exit fullscreen mode

This allows multiple companies to use the same application while ensuring every organization only sees its own data.


Role-Based Access Control

Every page and action is protected using permissions.

export function hasPermission(
  user: User,
  permission: Permission
) {
  return user.permissions.includes(permission);
}

if (!hasPermission(user, "products.create")) {
  throw new Error("Unauthorized");
}
Enter fullscreen mode Exit fullscreen mode

Opero currently supports five roles:

  • Owner
  • Admin
  • Manager
  • Employee
  • Viewer

Request Validation

Every API request is validated before reaching the business logic.

const CreateProductSchema = z.object({
  name: z.string().min(2),
  sku: z.string(),
  price: z.number().positive(),
  stock: z.number().nonnegative(),
});
Enter fullscreen mode Exit fullscreen mode

Using Zod significantly reduces invalid requests while keeping API responses predictable.


One Platform, Multiple Industries

While developing Opero, I realized something interesting.

The core architecture wasn't limited to inventory management.

It could be adapted to completely different industries simply by changing the workflow.

That's how Opero Agency was born.

Instead of products and inventory, Opero Agency manages:

  • Candidates
  • Employers
  • Deployments
  • Document Tracking
  • Visa Status
  • Service Fees
  • Compliance

Although the interface is different, both platforms share the same architecture and backend philosophy.

This means new industry-specific solutions can be developed much faster while sharing a proven foundation.


Lessons I Learned

Building Opero taught me much more than writing code.

Software Should Solve Business Problems

The most valuable feature isn't always the most technically impressive.

Sometimes the biggest improvement is eliminating repetitive manual work.


Architecture Matters

As projects grow, structure becomes more important than speed.

Investing time in clean architecture early made adding new modules significantly easier later.


User Feedback Is Everything

Many features I initially considered important changed after talking to business owners.

Listening to users completely reshaped my roadmap.


Shipping Beats Perfection

No software is ever finished.

Instead of waiting until everything was perfect, I focused on shipping improvements continuously.

That approach has helped Opero evolve much faster.


What's Next?

Opero is still actively evolving.

Some of the upcoming features include:

  • Workflow Automation
  • Email Notifications
  • Better Reporting
  • API Integrations
  • Mobile Optimization
  • Additional Industry Modules
  • AI-Assisted Business Insights
  • Customer Portals

The long-term vision isn't simply to build another ERP.

It's to create a platform that businesses can customize around their own workflows.


Looking for Early Users

Opero is currently available for early testing.

I'm looking for:

  • Startup founders
  • Small business owners
  • Developers
  • Operations managers
  • Anyone interested in modern business software

Your feedback will directly influence the future direction of the platform.


Live Demo

๐Ÿš€ Opero ERP

Live Demo

https://opero-orcin.vercel.app/

Demo Credentials

Email

demo2@opero.com
Enter fullscreen mode Exit fullscreen mode

Password

Demo1234!
Enter fullscreen mode Exit fullscreen mode

๐ŸŒ Opero Agency

Live Demo

https://opero-agency-sys.vercel.app/

Demo Credentials

Email

admin@operoagency.com
Enter fullscreen mode Exit fullscreen mode

Password

Demo1234!
Enter fullscreen mode Exit fullscreen mode

Let's Connect

If you're building a startup, running a business, or simply interested in ERP systems, I'd love to hear your thoughts.

I'm always open to feedback, feature suggestions, and discussions about business software.

If your company needs a custom web-based management system, ERP solution, workflow automation, or a completely tailored business platform, feel free to reach out. My goal is to build software around real business workflows instead of forcing businesses to adapt to generic tools.


About Me

I'm Nimash Mendis, a Full-Stack Software Engineer and a BSc in ICT undergraduate at Sukhoi State Technical University (Belarus).

I'm passionate about building scalable SaaS products and modern business software that help companies simplify operations and grow efficiently.

๐Ÿ“ง Email: nimashmendis.dev@gmail.com

๐ŸŒ Portfolio: https://www.nimashmendis.xyz


Thanks for Reading! ๐Ÿš€

If you have any suggestions, feature ideas, or constructive feedback, I'd genuinely love to hear them.

Every conversation helps make Opero better.

โญ If you'd like to support the project, try the live demo, share your feedback, or get in touch if you're interested in implementing Opero or building a custom business system for your company.

Top comments (0)