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,
};
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)]
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);
}
}
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)
);
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");
}
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(),
});
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
Password
Demo1234!
๐ Opero Agency
Live Demo
https://opero-agency-sys.vercel.app/
Demo Credentials
Email
admin@operoagency.com
Password
Demo1234!
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)