Slate - Enterprise Management

A full-stack invoice, inventory and order management for small businesses.

6

Enterprise Onboarded

2K+

Invoices / day

<30ms

API latency

Problem

Small businesses struggled with manual invoicing, tax calculations, managing inventory, taking business digital and tracking payments across customers.

Solution

Built a centralized platform with role-based access, automated tax calculations, invoicing, inventory and order management, PDF generation, and persistent storage. Users can onboard enterprise, add role based accounts to manage different operations. Add products, create invoices, manage inventory and generate statements for accountingAdditionly leveraging stats and metrics on product performance and sales to make informed decisions

Architecture

The system follows a modular, service-oriented architecture with a clear separation between frontend, backend, and persistence layers.

  • Next.js frontend for UI and server-side rendering
  • Spring Boot REST API handling business logic
  • Multiple micro services to maintain separation of concerns - Auth, Core BL
  • Web Service Deployed on AWS EC2 instance with Load Balancers to handle scaling
  • PostgreSQL hosted on RDS
  • Maintained clear WS and DB separation and enabling additional microservices in future
  • Asynchronous workers for PDF generation

Technical Highlights

  • Designed REST APIs with clear separation of concerns
  • Optimized PostgreSQL queries and indexes
  • Implemented role-based access control
  • Handled PDF generation asynchronously

Tech Stack

Next.jsSpring BootPostgreSQLDockerRDSAWSTailwind CSS

Trade-offs & Lessons Learned

Trade-offs

  • Chose REST over GraphQL to keep the backend simpler and easier to debug
  • Used server-side rendering to improve SEO and initial load time
  • Handled PDF generation asynchronously to avoid blocking requests

Lessons Learned

  • Early database indexing decisions had a significant impact on performance
  • Clear API contracts reduced frontend-backend coordination issues
  • Monitoring and logging were essential once usage scaled