Multi-Tenant SaaS Platform

Plugsite

E-Commerce Platform for Minecraft Servers

Complete multi-tenant SaaS platform designed specifically for Minecraft servers, featuring PayPal integration, vendor withdrawal system, and advanced per-store customization.

87% Complete - Active Development
Commercial SaaS Product
Early 2024 - Present
plugsite.onrender.com

Multi-Tenant Architecture

Complete data isolation per store with independent sessions

Vendor Withdrawal System

Automated withdrawal requests with admin approval and chat support

PayPal Integration

Secure payments with webhooks and automatic order processing

The Market Problem

Minecraft servers need to monetize their communities, but face significant barriers when implementing their own store systems.

Current Problems

  • Generic store plugins without customization
  • Lack of integration with modern payment systems
  • No withdrawal system for administrators
  • Manual inventory and order management
  • Each server needs its own infrastructure

Plugsite Solution

  • Complete customization per store (colors, logo, design)
  • Complete PayPal integration with webhooks
  • Automated withdrawal system with support chat
  • Dashboard with real-time metrics
  • Scalable multi-tenant architecture

Product Vision

Plugsite was designed as a complete SaaS platform that allows any Minecraft server to have its own professional store without technical knowledge or own infrastructure.

The system implements multi-tenant architecture from the core, allowing multiple stores to operate completely independently on the same infrastructure, with total data isolation, individual customization and separate financial management.

Multi-Tenant Architecture

The heart of Plugsite is its multi-tenant architecture that allows complete data isolation for each store while sharing the same infrastructure.

Data Isolation

Each store has its own logical database with users, products, orders and completely separate configurations. Independent session system per store.

Users per Store

UsuarioTienda model allows each store to manage its own customers with independent authentication and separate purchase history.

Individual Customization

Each store can customize colors, logo, navbar, footer and generate dynamic CSS without affecting other stores in the system.

Separate Financial Balance

Independent balance system per store with sales tracking, withdrawals and commissions. Each vendor manages their funds autonomously.

System Architecture

Modern technology stack with Django, MongoDB and cloud services for maximum scalability.

Frontend Layer

HTML5 • CSS3 • JavaScript • Chart.js • Responsive Design

Application Layer

Django 5.2.4 • 10 Modular Apps • Multi-Tenant Logic • Session Management

Business Logic

BalanceService • WithdrawalService • PayPalService • Custom Decorators

Data Layer

MongoDB (Djongo) • Multi-Tenant Collections • Decimal128 Handling

External Services

PayPal SDK • Cloudinary • Render • SMTP

Tech Stack

Django 5.2.4 MongoDB Djongo PayPal SDK Cloudinary Chart.js Render Python 3.x

Main Features

Complete e-commerce system with advanced features for Minecraft store management.

Product Management

Complete product system with multiple images, categories, stock, prices and automatic delivery commands to Minecraft server.

PayPal Integration

Secure payments with PayPal SDK, webhooks for automatic confirmation, transaction management and refund system.

Withdrawal System

Vendors can request withdrawals of their earnings with approval system, support chat, status tracking and payment receipts.

Advanced Customization

Each store can customize colors, fonts, navbar, footer with dynamic CSS generation and real-time preview.

Dashboard with Metrics

Real-time dashboard with sales charts, revenue, best-selling products, recent activity and period statistics.

Chat System

Real-time chat for withdrawal support, communication with administrators and request management with complete history.

Server Community

Public server directory with reviews, votes, image gallery and verification system.

Discount Codes

Coupon system with percentages, single use per account, expiration dates and automatic command to verify expired codes.

Engineering Decisions

Each technical decision was made considering scalability, maintainability and user experience.

Why MongoDB with Djongo?

MongoDB allows flexibility in data schema, ideal for a multi-tenant system where each store can have unique configurations. Djongo provides Django ORM interface while maintaining MongoDB's power.

Why multi-tenant architecture from the start?

Designing multi-tenancy from the core avoids costly future refactorings. Allows horizontal scaling by adding stores without modifying the base architecture.

Why separate sessions per store?

Allows a user to have different accounts in multiple stores without conflicts. Improves security by completely isolating authentication sessions.

Why Cloudinary for images?

Free hosting on Render doesn't guarantee file persistence. Cloudinary provides CDN, automatic image optimization and reliable storage.

Why separate services (BalanceService, WithdrawalService)?

Separation of responsibilities facilitates testing, maintenance and reusability. Complex business logic is encapsulated in independent services.

Implementation Status

Complete system audit shows 87% completeness with 100% operational core functionalities.

Fully Implemented

  • Dual authentication system (owners + store users)
  • Product CRUD with multiple images
  • Category system per store
  • Discount codes with expiration
  • Shopping cart per store
  • Complete PayPal integration
  • Withdrawal system for vendors
  • Withdrawal administration panel
  • Dashboard with real-time metrics
  • Store customization (colors, navbar)
  • Server community system
  • Real-time chat
  • Balance and financial movements

In Development

  • Customer view per store
  • Advanced analytics dashboard
  • Index and footer customization
  • Persistent notification system
  • Global search in dashboard

Planned

  • Pre-designed template system
  • Minecraft API integration (server status)
  • Discord API integration
  • Real-time server status view
  • Downloadable plugin system
  • Report export
  • Custom webhooks

Technical Challenges Solved

Complex problems that required specific architectural solutions.

Multi-Tenant Data Isolation

Implementation of automatic filters at ORM level to ensure each store only accesses its own data. Independent session system per store.

Decimal128 Handling (MongoDB)

MongoDB uses Decimal128 for financial precision. Implementation of safe conversions with try-except in calculated properties to avoid type errors.

PayPal Integration with Multi-Tenant

Each store needs its own PayPal configuration. Dynamic return URLs system and transaction tracking per store with webhooks.

Dynamic CSS per Store

Real-time custom CSS generation based on each store's configuration. Dedicated endpoint serving CSS with custom CSS variables.

Financial Balance System

Precise tracking of sales, commissions and withdrawals with immutable movement log. Calculation of available vs pending balance considering withdrawals in process.

Multiple Image Management

Sortable image system with Cloudinary. Each product can have multiple images with customizable order and main image designation.

Why I Built This

Plugsite wasn't originally my idea—it came from my friend and business partner, Luis Elías Sánchez. He saw the real need in the Minecraft server community: owners wanted to monetize their communities but lacked the technical resources and financial means to implement their own store systems. I shared his vision and took on the challenge of bringing it to life through code.

We're both co-owners of this project and share the profits equally. Luis brings the business vision and understanding of what server owners need, while I handle the technical architecture and implementation. This partnership has been crucial—having someone who deeply understands the market while I focus on building a robust technical solution.

The most interesting technical challenge was designing a multi-tenant architecture from scratch. It's not just adding a "tenant_id" field to tables—it's thinking about data isolation, independent sessions, per-store customization, separate financial balances, and horizontal scalability. Every architectural decision had to consider how it would affect multiple stores operating simultaneously.

This project taught me the difference between building an application and building a platform. A platform must be flexible enough to adapt to different use cases, yet structured enough to maintain consistency and security. It's a delicate balance between customization and standardization.

Additionally, working with real financial systems (PayPal, withdrawals, commissions) forced me to think about data integrity, atomic transactions, auditing, and traceability in ways that academic projects never require. Every cent must be traceable, every transaction must be immutable, and every withdrawal must have a complete approval trail.

Explore Plugsite

Experience the platform in production or review the technical implementation.

Note: The platform is in active production.