SaaS / Self Storage / PropTech

Rentya — SaaS platform for self-storage management and rentals

A modular platform for self-storage operators connecting facilities and units, availability, bookings, rentals, documents, payments, tenant self-service, mobile access and operational analytics.

RentyaLive production systemSelf Storage / SaaS / PropTech2025–2026
SaaS product discovery and domain modellingPlatform and API architectureOperator and tenant UX/UIWeb and mobile applicationsBooking and rental lifecycleDocuments and electronic signaturesPayments and recurring billingPricing, discounts and product configurationOperational reporting and analyticsWhite-label and operator deployment readiness
Rentya SaaS platform architecture for self-storage management
Project overview

Rentya is a SaaS platform designed by Softech for self-storage operators that need one environment for locations, units, availability, bookings, documents, payments and active rentals. The product core organises the rental lifecycle and exposes it through the operator panel, tenant self-service and a mobile application. The architecture separates shared domain logic from operator-specific configuration, allowing facility structure, pricing, branding and integrations to change without rebuilding the process. This case study describes supported platform scope and deliberately leaves out earlier percentage-based efficiency claims for which the repository contains no approved baseline or analytics source.

01 / Context

Business context and the situation before implementation

Self storage combines online sales with a long-running rental relationship and physical-facility operations. An operator must know which units are available, under what terms they can be rented, whether documents and payments are complete and the current state of every rental. Rentya was created as a product core that organises these dependencies and can be configured for different operator models.

  • A facility consists of locations, zones and units with their own availability and attributes.
  • A booking must reserve the correct unit and move into rental formalisation.
  • Agreement, signature and payment belong to the same business process as the booking.
  • After activation, the system continues to manage charges, documents and state changes.
  • Operator and tenant need different interfaces but a shared source of truth.
  • The SaaS core must remain configurable for further deployments and white-label use.

Before state

Without a shared domain model, an operator must connect availability, customer data, documents, payments and rental status across several tools or manual activities. Every additional channel — booking widget, customer portal or mobile application — increases the risk of inconsistency unless it uses the same booking and rental logic.

  • Unit availability can be updated independently from the booking process.
  • Documents and settlements can live outside the main rental record.
  • Pricing and discounts are difficult to keep consistent across sales channels.
  • A customer portal without a shared API can show a different state than the operator panel.
  • Each operator deployment becomes more expensive if core logic is copied instead of configured.
02 / Strategy

Goals, success criteria and constraints

Discovery focused on separating self-storage concepts that are reusable from elements that depend on a specific operator. The team mapped facilities and units, availability, booking and rental states, formalisation points and operator-versus-tenant responsibilities. This made it possible to build a configurable platform rather than a set of screens tied to one implementation.

Product goals

  • Define one model for facilities, units, availability, bookings and rentals.
  • Connect rental formalisation with documents, signature and payment.
  • Expose one backend to the operator panel, tenant portal and mobile layer.
  • Build configurable pricing, discounts and rental rules.
  • Give operators reporting across availability, occupancy, payments and documents.
  • Separate the shared SaaS core from branding and deployment-specific configuration.

Success criteria

  • The same unit cannot be simultaneously available and reserved through conflicting channels.
  • Booking, documents, payment and active rental have an unambiguous relationship in data.
  • Operator panel and customer self-service read the same rental state.
  • Pricing and rules can change without rebuilding the core workflow.
  • A new deployment can use the shared core with its own branding and configuration.
  • Failure of an external integration must not leave the process in an ambiguous state.

Complex facility structure

Operators can use different location, zone, floor and unit structures, so the model cannot assume one facility layout.

Long-running lifecycle

A rental lasts longer than a single ecommerce transaction and includes charges, extensions, documents and termination.

Availability consistency

A booking must change unit state so different channels do not offer the same space inconsistently.

Payment and document dependencies

Payment, signature and file generation are external or asynchronous services and require controlled states and retries.

SaaS configurability

The product core must remain shared while allowing operators to change branding, pricing, structure and integrations.

Analysis and product decisions

  • Mapping operators, locations, zones and units.
  • Defining availability and booking transitions.
  • Modelling active rentals and recurring charges.
  • Separating operator and tenant interfaces from the shared API.
  • Identifying white-label configuration: branding, pricing, rules and integrations.
  • Identifying points where the flow must handle failure, retry or manual intervention.
03 / System

Solution architecture

Rentya uses a shared domain backend as the source of truth for operator and customer channels. The data layer models facilities, units, availability, bookings, rentals, documents and settlements, while external integrations handle payments, files, communication and — depending on the deployment — facility access.

Architecture diagram
Product layers and responsibilities
Logical view
  1. 01
    Operator surfaces

    Management panel

    Management of locations, units, bookings, tenants, payments, documents, pricing and reporting.

    ReactTypeScript
  2. 02
    Customer surfaces

    Portal and mobile

    Search, booking, documents, payments and ongoing rental self-service.

    ReactReact NativeExpo
  3. 03
    Domain core

    API and rental lifecycle

    One place for availability, bookings, rentals, pricing rules and process states.

    NestJSNode.jsREST API
  4. 04
    Data

    Transactional model

    Persistent relationships across operators, facilities, units, customers, documents and settlements.

    PostgreSQLPrisma ORMRedis
  5. 05
    Integrations

    Payments, files and external services

    Services required to formalise and operate rentals, isolated from the core domain model.

    StripeS3 / Blob Storagee-Sign / access integrations
  6. 06
    Configuration

    White-label and operator rules

    Layer for branding, pricing, facility structure and deployment-specific integrations.

    Product configurationFeature flags / rules
Key flows
OperatorFacilities and unitsstructure, availability, pricing
TenantBookingunit and date selection
BookingDocuments and paymentrental formalisation
Payment and signatureActive rentalactivation conditions
Active rentalBillingcharges, extensions, states
Rentya coreOperator white-labelbranding, rules, integrations
04 / Product

Problems, decisions and implemented capabilities

Decision 1Confirmed in the product
Problem

Unit availability can diverge across channels.

Decision

Keep unit and booking state in one model.

Capability

Shared availability for operator and customer channels.

Outcome

Each channel uses the same source of truth.

Decision 2Confirmed in the product
Problem

The rental process is longer than the booking itself.

Decision

Define a lifecycle from availability to rental termination.

Capability

States for booking, documents, payments and active rental.

Outcome

Operator and customer see a consistent process stage.

Decision 3Confirmed in the product
Problem

Pricing differs across units and operators.

Decision

Separate pricing rules from the core workflow code.

Capability

Configurable pricing, discounts and promotions.

Outcome

The offer can evolve without rebuilding the rental lifecycle.

Decision 4Confirmed in the product
Problem

Documents and payments often run in separate tools.

Decision

Connect them directly with the booking and rental.

Capability

Document generation, signature and payment state in one process record.

Outcome

Formalisation keeps the context of the selected unit and customer.

Decision 5Confirmed in the product
Problem

Operator and tenant need different interfaces.

Decision

Separate product surfaces but not domain logic.

Capability

Operator panel, tenant portal and mobile layer using the shared API.

Outcome

A new channel does not require copying rental rules.

Decision 6Confirmed in the product
Problem

Each operator has different branding and some different rules.

Decision

Introduce a white-label configuration layer.

Capability

Configuration for branding, structure, pricing and integrations.

Outcome

A deployment can use the shared core without assuming an identical business model.

Decision 7Confirmed in the product
Problem

An external integration can respond slowly or fail.

Decision

Model integration status independently from business state.

Capability

Controlled waiting, retry and error handling for payments, documents and files.

Outcome

External-service failure does not have to create an ambiguous rental state.

Technology decisions

TechnologyRoleRationaleTrade-off
React + TypeScriptOperator and tenant web interfacesThe component model supports complex workflows and shared domain types.A complex panel requires discipline around state management and component boundaries.
React Native + ExpoTenant mobile layerOne product codebase supports iOS and Android while keeping a shared lifecycle.Device-dependent integrations require testing on both platforms.
NestJS + Node.jsSaaS API and domain logicA modular backend structure maps well to facilities, rentals, payments and documents.Module boundaries must be maintained consistently as the product grows.
PostgreSQL + PrismaTransactional model and rental relationshipsA relational database maps operator, unit, booking and payment relationships well.Model changes require controlled migrations and compatibility with historical data.
RedisCaching and supporting processesIt reduces repeated reads and supports short-lived technical state.Cache must not replace the persistent source of truth for rentals.
Stripe and document servicesPayments, formalisation and filesDedicated integrations connect the business flow with specialised services.The backend must handle webhooks, delays, retries and idempotency.

Integrations and data flows

Stripe

Rentya ↔ payment provider

Online payments and settlement states connected with the rental.

Business state is updated after a confirmed event, with retry and idempotency handling.

Signature / document service

Rentya → document → signature / file

Formalising rental terms within the same workflow as the booking.

The process stores document state and does not assume immediate integration success.

S3 / Blob Storage

Rentya ↔ file storage

Storing generated documents and rental-related files.

File references remain in the application model and access can be controlled separately.

Facility integrations

Rentya ↔ operator system

Optional connection of the digital flow with access or other deployment-specific automation.

The integration is deployment-specific and does not change the core unit and rental model.

05 / Control

AI, security and reliability

Data access control

Operator and tenant roles receive access only to functions and data required in their context.

State consistency

Availability, booking, payment and rental changes are controlled transitions rather than independent UI flags.

Integration idempotency

A repeated webhook or retry should not create a second payment, document or state change.

Data durability

Transactional data and document references remain in the persistent model independently from cache and supporting processes.

Configuration isolation

Deployment branding and rules are separated from the shared rental lifecycle, reducing the risk of accidental cross-configuration impact.

06 / Delivery

Implementation, testing and release

  1. 1
    01 — Discovery

    Define the reusable self-storage model and boundaries of operator configuration.

    • Entity and relationship map
    • Booking and rental lifecycle
    • Operator and tenant surface scope

    Result: A product model independent from a single screen or deployment was established.

  2. 2
    02 — SaaS core

    Build API, data and operator workflows for facilities, units, bookings and rentals.

    • Data model and migrations
    • Backend modules
    • Operator panel

    Result: Core self-storage logic operates from one source of truth.

  3. 3
    03 — Formalisation and billing

    Connect documents, signature, payments and recurring charges with the rental lifecycle.

    • Document flow
    • Payment integration
    • Settlement states

    Result: A booking can progress to active rental without losing data and settlement context.

  4. 4
    04 — Self-service

    Expose web and mobile customer surfaces using the shared logic.

    • Tenant portal
    • Mobile layer
    • Shared API contracts

    Result: Operator and tenant work with the same rental state through different interfaces.

  5. 5
    05 — Deployment configuration

    Prepare the core for white-label use, pricing changes, branding and operator integrations.

    • Product configuration
    • Pricing and promotion rules
    • Integration points

    Result: The platform can be adapted to a specific operator without copying the entire rental logic.

Lifecycle testing

Scenarios cover transitions from an available unit through booking, formalisation and payment to active and terminated rental.

Availability testing

Booking conflicts, unit-state changes and consistency across channels using the same API are tested.

Integration testing

Payments, documents and files are tested for delays, failures and repeated events as well.

Configuration testing

Branding, pricing and deployment-rule changes must not break the shared rental model.

Controlled releases

Domain changes and data migrations are released in a way compatible with existing rental records.

07 / Verification

What confirms the project description

P1-E1 deliberately does not publish earlier percentage-based values attributed to Rentya because Polish and English labels did not describe the same metrics and the repository contains no approved baseline, measurement period or analytics export. Public outcomes are therefore presented as supported product scope, domain relationships and implemented system capabilities.

ScopeBasisReferenceConfirmationInterpretation boundary
Rentya uses a shared architecture for operator and tenant channels.architecture diagramRT-01 — product architecture diagramConfirmed in the productThe diagram describes logical layer responsibilities rather than the complete production infrastructure topology.
The process treats booking, formalisation and active rental as one lifecycle.process diagramRT-02 — rental lifecycleConfirmed in the productThe diagram shows primary states and does not represent every operator-specific exception.
The data model distinguishes operator, locations, zones and storage units.domain diagramRT-03 — operator and facility modelConfirmed in the productThe public material simplifies relationships and does not disclose the full database schema.
Documents, signature and payment are part of rental formalisation.workflow diagramRT-04 — payments and documentsConfirmed in the productThe material does not claim one signature provider for every deployment.
Operator panel, tenant portal and mobile can use one data model.surface diagramRT-05 — product surfacesConfirmed in the productInterface scope can differ between specific product configurations.
The platform separates the shared core from operator white-label configuration.configuration diagramRT-06 — white-label modelConfirmed in the productThe diagram supports the product architecture direction but does not mean every possible configuration is already deployed in production.

How to read this information

  • No approved baseline for handling-time reduction.
  • No analytics source for a percentage reduction in manual work.
  • No basis for publishing 100% online process coverage as a business KPI.
  • No approved testimonial attributable directly to the Rentya product.
  • White-label deployments can use different modules and integrations.
08 / Lessons

Process change, decision consequences and lessons

AreaBeforeAfterBusiness impact
Data modelFacility, unit, booking and settlement can live in separate tools.A shared domain model connects them in one lifecycle.Fewer inconsistencies across channels and operational state.
AvailabilityA sales channel may not reflect the current unit state.Booking and availability use a shared source of data.More consistent unit presentation to operator and customer.
FormalisationDocument, signature and payment are separate steps outside the main record.Each formalisation element is connected with the booking and rental.Clearer process state and less manual data reconciliation.
ChannelsEach new interface can require a separate implementation of rules.Operator, tenant web and mobile use the shared API.Additional channels can evolve without duplicating the rental lifecycle.
DeploymentsA new operator means copying product and rules.The core is separated from white-label and configuration layers.Greater potential to reuse the product architecture.
Decision trade-off

Shared core instead of separate operator applications

Alternative
Building an independent system for each operator.
Trade-off
The core requires stricter configuration modelling and domain boundaries.
Rationale
It allows the product to evolve without copying core rental rules.
Decision trade-off

One source of truth for availability

Alternative
Separate availability in widgets and panels.
Trade-off
More operations must go through the central API.
Rationale
Unit consistency matters more than local simplicity of one channel.
Decision trade-off

Stateful rental lifecycle

Alternative
Loose set of flags and operator notes.
Trade-off
Adding a new state requires deliberate transition design.
Rationale
A long-running rental requires an unambiguous history and business conditions.
Decision trade-off

White-label configurability

Alternative
Hard-coding one operator’s rules directly in the product.
Trade-off
Configuration requires validation and testing of setting combinations.
Rationale
Separating product from implementation strengthens the platform as SaaS.

Key lessons learned

  • In self storage, the unit and availability model should be defined before sales screens are designed.
  • The rental lifecycle should cover the period after payment rather than ending at checkout.
  • Documents and settlements belong to the rental domain rather than acting as context-free add-ons.
  • A shared API for operator and customer reduces inconsistency between channels.
  • White-label works best when it configures the operator model rather than copying the whole product codebase.
  • Business metrics should be published only after baseline, measurement period and source are defined.
09 / Relevance

Which organisations this model is relevant for

Self-storage operators

Companies managing one or more locations that want to connect online sales with rental operations.

Networks expanding locations

Organisations that need a shared unit, pricing and rental model while preserving local configuration.

White-label products

Companies that want to deploy one core under different brands and operator configurations.

PropTech with recurring billing

Products combining a physical asset, booking, documents and long-running billing.

Self-storage platform

Planning your own self-storage management platform?

We can help define units, bookings, rentals, payments and operator configuration and turn that model into a production web and mobile system.

Discuss your platform
10 / Scope

Key confirmed facts

The following statements summarise the confirmed product scope and contain no unapproved growth data.

  1. 1

    Softech designed and develops Rentya as a SaaS platform for self-storage operations.

  2. 2

    Rentya models operators, locations, zones and storage units together with their availability.

  3. 3

    The platform connects unit booking with documents, signature, payment and active rental.

  4. 4

    Operator panel, tenant portal and mobile layer can use a shared API and domain model.

  5. 5

    Rentya supports configurable pricing, discounts and rules connected with the rental process.

  6. 6

    The product scope includes online payments and recurring-charge logic related to active rentals.

  7. 7

    Documents and file references are connected with a booking or rental rather than maintained as a separate context-free process.

  8. 8

    The architecture separates the shared Rentya core from white-label branding and deployment configuration.

  9. 9

    GizoBOX is a separate operator implementation and should be presented as its own case study rather than as a synonym for the Rentya platform.

  10. 10

    The public Rentya case study does not publish earlier percentage-based KPIs without an approved baseline and analytics source.

  11. 11

    The platform is designed to extend with additional integrations, business rules and customer channels.

11 / Editorial responsibility

Prepared and reviewed by

Prepared by

Softech — Product & Engineering team

Product, architecture and SaaS platform delivery

About Softech
Reviewed by

Softech — technical review

Review of scope, data consistency and public claims

About Softech
Published: 2026-08-09Last updated: 2026-08-09

FAQ

How is Rentya different from a single self-storage implementation?

Rentya is the reusable SaaS platform core. It models facilities, units, availability, bookings, rentals, documents and billing in a configurable way. A white-label implementation such as GizoBOX adds its own brand, facility structure, rules and integrations.

Does Rentya support multiple locations and different unit types?

The product model includes locations, zones and units with their own availability, attributes and pricing rules, allowing different facility structures to use the same rental lifecycle.

What does the rental process look like in Rentya?

The flow connects unit selection, booking, tenant data, documents, signature, payment and activation of the rental. Later events such as extension, charges or termination remain part of the same model.

Does the platform support recurring payments?

Yes. The product scope includes online payments and recurring-charge logic connected with active rentals and settlement status.

Can Rentya be deployed as a white-label product?

Yes. The architecture separates the shared domain core from operator-specific configuration so branding, facility structure, pricing and selected integrations can be adapted.

Do tenants have a portal and mobile experience?

Rentya includes tenant self-service on the web and supports a mobile layer. Both surfaces use the same booking, document, payment and active-rental model.

What operational data can the platform manage?

The scope includes unit availability and occupancy, rental states, payments, documents, pricing and operational or financial reporting.

Can Rentya integrate with access-control systems?

The architecture supports external facility-service integrations, including access-control layers when required by a specific operator deployment.

Can the platform be extended further?

Yes. Its modular architecture is designed to add business rules, reporting, integrations and channels without rebuilding the rental domain from scratch.