SaaS for Tattoo Studios
Budget / Salary€250–750
TypeFreelance project
LocationRemote
Posted1 hour ago
We are looking for a software development company to design and build TattooOS, a multi-tenant SaaS platform for tattoo studios.
The product should be comparable in category to Vagaro, Fresha, Boulevard, or GlossGenius, but specifically designed around tattoo-industry workflows such as consent forms, design approval, body maps, deposits, portfolios, and artist/studio management.
Each studio must operate as an isolated tenant. The platform should support four roles:
- Client — person booking and receiving the tattoo
- Artist — tattoo artist working within a studio
- Owner — studio owner/admin managing their tenant
- Admin — TattooOS platform staff with controlled cross-tenant access
Core Features
Appointment Booking and Deposits
Clients should be able to book appointments and provide deposits.
The system must also support guest checkout without requiring an account, using a `BookingIntake` workflow to collect the required booking, client, and consent information.
Digital Consent Forms
Studios should be able to manage versioned digital consent templates.
When a client signs a consent form, the system must store:
- consent version
- timestamp
- exact snapshot of the accepted text
- completed form
- generated PDF
Previous signed forms must remain unchanged when templates are updated.
Design Approval
Artists should be able to upload tattoo designs and revisions for clients to review and approve.
Revision history and approval status must be stored, with real-time updates through SignalR where appropriate.
Client Profiles and Body Maps
Each client should have a profile containing tattoo history, photos, and a structured body map identifying existing or planned tattoo locations.
Payments and Session Splits
The platform should support appointment/session payments and internal studio payment splits between artists and owners.
These splits are strictly internal studio accounting and are not platform commissions.
Client Deposit Architecture
A critical requirement is that TattooOS takes zero commission from client deposits.
When a client pays a deposit, 100% must go directly to the studio or artist.
TattooOS must not:
- hold client funds
- deduct a platform fee
- appear as a beneficiary in payment splits
- operate as an aggregator for client deposits
This is an intentional legal/compliance requirement intended to keep TattooOS positioned as a technical service provider rather than an intermediary handling client funds.
The platform's revenue must instead come from a separate SaaS subscription paid by studio owners.
The two payment flows must remain separate:
1. Client → Studio/Artist — deposits and tattoo payments
2. Studio Owner → TattooOS — SaaS subscription
For the first release, cash deposits should support a declare → confirm workflow.
Card deposits should be designed behind a provider-neutral payment interface so that a processor can be integrated later without redesigning the booking system.
Notifications
The platform should support automated appointment reminders and updates using:
- Twilio for SMS
- Resend for email
- Hangfire for queued and scheduled jobs
Public Features
The platform should include:
- a public, unauthenticated map showing active/published studios
- SEO-friendly studio pages using `/s/{slug}`
- SEO-friendly artist portfolio pages using `/artist/{slug}`
SaaS Subscriptions
Studio owners should pay recurring subscriptions to TattooOS.
Subscription plans, billing status, renewals, and account administration should be managed at platform-admin level.
This billing system must remain completely separate from client deposits.
Preferred Technology Stack
Frontend
- React 19
- Vite
- TypeScript
- React Router v7
- Redux Toolkit + RTK Query
- Tailwind CSS
- shadcn/ui
- SignalR
- React Hook Form
Backend
- ASP.NET Core 10 / C#
- Minimal APIs
- MediatR
- FluentValidation
- ASP.NET Core Identity
- JWT authentication
- policy-based RBAC
- SignalR
- Serilog
- OpenTelemetry
Data and Services
- MySQL 8.4
- EF Core 10 with Pomelo
- Redis
- Stripe.net
- Resend
- Twilio
- Hangfire
- Cloudflare R2
Infrastructure
- Docker
- K3s
- Traefik
- GitHub Actions
- Cloudflare
- Hetzner and/or AWS
- Grafana
- Prometheus
- Loki
- Tempo
Non-Negotiable Security Requirements
Tenant Isolation
Tenant data must be isolated at the data-access level using EF Core global query filters or an equivalent centralized mechanism.
Cross-tenant access must only be possible for explicitly approved platform-admin operations.
Endpoint Security
All endpoints must require authentication by default using `.RequireAuthorization()` or an equivalent mechanism.
Only endpoints included in a documented public allow-list should be accessible without authentication.
Logging and Privacy
Personally identifiable information must not be written to logs.
Structured Serilog logging should be used throughout, with no production `Console.WriteLine` or `console.log` usage.
Secrets
API keys, credentials, connection strings, and other secrets must never be hardcoded or committed to source control.
Secrets should be provided through environment variables or Vault.
Documentation
Documentation must be part of the definition of done.
Whenever a user-facing feature is added or changed, the following must also be updated:
- in-app Help
- standalone user manual
- onboarding tours
Objective
We want TattooOS to be built as a secure, scalable, maintainable multi-tenant SaaS platform specifically for the tattoo industry.
We are not looking for a generic booking system with tattoo branding added afterward. Tattoo-specific concepts such as consent management, design approval, body mapping, deposits, portfolios, and studio/artist relationships should be treated as first-class domain features.
The architecture should also allow future payment providers, subscription plans, notification channels, and studio features to be added without major rewrites.
These requirements should form the basis for architecture planning, estimation, milestones, implementation, testing, deployment, documentation, and production handover.
The product should be comparable in category to Vagaro, Fresha, Boulevard, or GlossGenius, but specifically designed around tattoo-industry workflows such as consent forms, design approval, body maps, deposits, portfolios, and artist/studio management.
Each studio must operate as an isolated tenant. The platform should support four roles:
- Client — person booking and receiving the tattoo
- Artist — tattoo artist working within a studio
- Owner — studio owner/admin managing their tenant
- Admin — TattooOS platform staff with controlled cross-tenant access
Core Features
Appointment Booking and Deposits
Clients should be able to book appointments and provide deposits.
The system must also support guest checkout without requiring an account, using a `BookingIntake` workflow to collect the required booking, client, and consent information.
Digital Consent Forms
Studios should be able to manage versioned digital consent templates.
When a client signs a consent form, the system must store:
- consent version
- timestamp
- exact snapshot of the accepted text
- completed form
- generated PDF
Previous signed forms must remain unchanged when templates are updated.
Design Approval
Artists should be able to upload tattoo designs and revisions for clients to review and approve.
Revision history and approval status must be stored, with real-time updates through SignalR where appropriate.
Client Profiles and Body Maps
Each client should have a profile containing tattoo history, photos, and a structured body map identifying existing or planned tattoo locations.
Payments and Session Splits
The platform should support appointment/session payments and internal studio payment splits between artists and owners.
These splits are strictly internal studio accounting and are not platform commissions.
Client Deposit Architecture
A critical requirement is that TattooOS takes zero commission from client deposits.
When a client pays a deposit, 100% must go directly to the studio or artist.
TattooOS must not:
- hold client funds
- deduct a platform fee
- appear as a beneficiary in payment splits
- operate as an aggregator for client deposits
This is an intentional legal/compliance requirement intended to keep TattooOS positioned as a technical service provider rather than an intermediary handling client funds.
The platform's revenue must instead come from a separate SaaS subscription paid by studio owners.
The two payment flows must remain separate:
1. Client → Studio/Artist — deposits and tattoo payments
2. Studio Owner → TattooOS — SaaS subscription
For the first release, cash deposits should support a declare → confirm workflow.
Card deposits should be designed behind a provider-neutral payment interface so that a processor can be integrated later without redesigning the booking system.
Notifications
The platform should support automated appointment reminders and updates using:
- Twilio for SMS
- Resend for email
- Hangfire for queued and scheduled jobs
Public Features
The platform should include:
- a public, unauthenticated map showing active/published studios
- SEO-friendly studio pages using `/s/{slug}`
- SEO-friendly artist portfolio pages using `/artist/{slug}`
SaaS Subscriptions
Studio owners should pay recurring subscriptions to TattooOS.
Subscription plans, billing status, renewals, and account administration should be managed at platform-admin level.
This billing system must remain completely separate from client deposits.
Preferred Technology Stack
Frontend
- React 19
- Vite
- TypeScript
- React Router v7
- Redux Toolkit + RTK Query
- Tailwind CSS
- shadcn/ui
- SignalR
- React Hook Form
Backend
- ASP.NET Core 10 / C#
- Minimal APIs
- MediatR
- FluentValidation
- ASP.NET Core Identity
- JWT authentication
- policy-based RBAC
- SignalR
- Serilog
- OpenTelemetry
Data and Services
- MySQL 8.4
- EF Core 10 with Pomelo
- Redis
- Stripe.net
- Resend
- Twilio
- Hangfire
- Cloudflare R2
Infrastructure
- Docker
- K3s
- Traefik
- GitHub Actions
- Cloudflare
- Hetzner and/or AWS
- Grafana
- Prometheus
- Loki
- Tempo
Non-Negotiable Security Requirements
Tenant Isolation
Tenant data must be isolated at the data-access level using EF Core global query filters or an equivalent centralized mechanism.
Cross-tenant access must only be possible for explicitly approved platform-admin operations.
Endpoint Security
All endpoints must require authentication by default using `.RequireAuthorization()` or an equivalent mechanism.
Only endpoints included in a documented public allow-list should be accessible without authentication.
Logging and Privacy
Personally identifiable information must not be written to logs.
Structured Serilog logging should be used throughout, with no production `Console.WriteLine` or `console.log` usage.
Secrets
API keys, credentials, connection strings, and other secrets must never be hardcoded or committed to source control.
Secrets should be provided through environment variables or Vault.
Documentation
Documentation must be part of the definition of done.
Whenever a user-facing feature is added or changed, the following must also be updated:
- in-app Help
- standalone user manual
- onboarding tours
Objective
We want TattooOS to be built as a secure, scalable, maintainable multi-tenant SaaS platform specifically for the tattoo industry.
We are not looking for a generic booking system with tattoo branding added afterward. Tattoo-specific concepts such as consent management, design approval, body mapping, deposits, portfolios, and studio/artist relationships should be treated as first-class domain features.
The architecture should also allow future payment providers, subscription plans, notification channels, and studio features to be added without major rewrites.
These requirements should form the basis for architecture planning, estimation, milestones, implementation, testing, deployment, documentation, and production handover.
Apply on Freelancer →
Project sourced from Freelancer.com. Applications happen directly on the original platform — we never collect your data.