Enterprise-Grade Tattoo Studio Management Platform
Built with Next.js 15, Prisma, NextAuth, and cutting-edge UX design.
KRONΓS SYNC is a professional-first SaaS platform designed exclusively for tattoo studios, artists, and administrators. Unlike traditional booking systems, we've architected a sovereign ecosystem where:
- Professionals (Artists & Admins) have full access to the management dashboard
- Clients interact through frictionless, guest-first experiences (Kiosk, Marketplace, Forms)
- Data sovereignty ensures each studio owns its client base without polluting the global user registry
KRONΓS implements a strict invite-only authentication system for professional access:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β AUTHENTICATION FLOW β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β π€ New User Attempts Login β
β β β
β βββΊ Has Invite Code? βββΊ YES βββΊ Create as ARTIST β
β β β
β βββΊ No Invite Code? βββΊ REJECT βββΊ Error Message β
β β
β π¨ Existing Artist/Admin βββΊ Direct Access βββΊ Dashboard β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Key Benefits:
- β Zero spam or unauthorized access
- β Clean, focused user base (only team members)
- β Traceable onboarding (who invited whom)
- β Automatic role assignment based on invite type
Clients never need to create an account to interact with the studio:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β CLIENT JOURNEY β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β π± Kiosk Check-In β
β βββΊ Fill form (Name, Phone, Instagram) β
β βββΊ Select barrier (Price, Pain, Style) β
β βββΊ Enter Artist PIN β
β βββΊ Receive 10% OFF Coupon β
β βββΊ Saved as KioskEntry (Studio's DB) β
β β
β ποΈ Marketplace Shopping β
β βββΊ Browse products β
β βββΊ Add to cart β
β βββΊ Checkout (Guest or Logged) β
β βββΊ Order saved to Studio's DB β
β β
β π Anamnesis Form β
β βββΊ Fill medical/tattoo questionnaire β
β βββΊ Linked to booking via QR code β
β βββΊ Stored in Booking context β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Data Storage Strategy:
KioskEntryβ Lead generation, first-time visitorsBooking.clientβ Confirmed appointmentsOrder.clientβ Marketplace purchasesAnamnesisβ Medical/consent forms
All client data is scoped to the workspace, ensuring studios maintain full ownership and LGPD compliance.
- π Real-time studio metrics (revenue, bookings, settlements)
- π¨ Artist portfolio management
- π Integrated Google Calendar sync
- π° Financial settlement tracking with AI validation
- π₯ Team management with invite system
- π― Lead capture with gamified "INK PASS" system
- π± WhatsApp integration for instant communication
- π Automatic coupon generation (10% off first tattoo)
- π Artist PIN validation for fraud prevention
- π Real-time sync progress visualization
- π Product catalog (flash tattoos, merchandise)
- π³ Integrated payment processing
- π¦ Order management with artist commission tracking
- π¨ Artist-specific product listings
- πΈ Unified settlement flow (tattoos + marketplace)
- π€ AI-powered receipt validation
- π Revenue projections and analytics
- π¦ PIX integration for instant payments
- π Artist vs. Studio commission breakdown
- π Multi-artist calendar management
- β° Slot-based scheduling with conflict prevention
- π Integrated anamnesis forms
- π WhatsApp notifications (planned)
- π« QR code check-in system
- Next.js 15 (App Router, Server Components)
- TypeScript (Strict mode)
- Tailwind CSS (Custom design system)
- Framer Motion (Animations)
- Lucide Icons (UI icons)
- Prisma ORM (PostgreSQL)
- NextAuth.js (Authentication)
- Server Actions (Type-safe API)
- Resend (Email delivery)
- Vercel (Deployment & hosting)
- PostgreSQL (Database)
- Google Calendar API (Sync)
- WhatsApp Business API (Notifications - planned)
- Node.js 18+
- PostgreSQL database
- Google OAuth credentials (optional)
- Resend API key (for emails)
-
Clone the repository
git clone https://github.com/SH1W4/kronos-sync.git cd kronos-sync/kronos -
Install dependencies
npm install
-
Configure environment variables
cp .env.example .env
Required variables:
DATABASE_URL="postgresql://..." NEXTAUTH_SECRET="your-secret-key" NEXTAUTH_URL="http://localhost:3000" # Email (Resend) RESEND_API_KEY="re_..." RESEND_FROM_EMAIL="KRONOS SYNC <acesso@yourdomain.com>" # Google OAuth (optional) GOOGLE_CLIENT_ID="..." GOOGLE_CLIENT_SECRET="..."
-
Initialize database
npx prisma generate npx prisma db push
-
Run development server
npm run dev
-
Access the application
- App:
http://localhost:3000 - Kiosk:
http://localhost:3000/kiosk - Admin: Login with dev credentials or create invite
- App:
- User enters email
- System sends 6-digit code
- User verifies code
- System checks:
- Is user an existing Artist/Admin? β Grant access
- Is there an invite code in URL? β Create as Artist
- Neither? β Reject with error
- One-click login for team members
- Automatically syncs with Google Calendar
- Requires pre-existing account or invite
- Username:
devβ Creates artist account - Username:
masterβ Creates admin account with demo data
--primary: #8B5CF6 /* Purple - Professional actions */
--secondary: #FF64FF /* Magenta - Artist highlights */
--accent: #00FF88 /* Cyan - Client interactions */
--background: #000000 /* Pure black */
--foreground: #FFFFFF /* Pure white */- Headings: Orbitron (Futuristic, bold)
- Body: Inter (Clean, readable)
- Mono: JetBrains Mono (Code, data)
- Cyber-minimalism: Clean interfaces with subtle neon accents
- Data-driven: Real-time metrics and progress indicators
- Gesture-first: Optimized for touch (Kiosk) and desktop
- Accessibility: WCAG 2.1 AA compliant
model User {
id String @id @default(cuid())
email String @unique
name String
role UserRole @default(CLIENT)
artist Artist?
// ... relations
}
model Artist {
id String @id @default(cuid())
userId String @unique
workspaceId String
plan ArtistPlan // RESIDENT | GUEST
validUntil DateTime? // For GUEST artists
// ... relations
}
model InviteCode {
id String @id @default(cuid())
code String @unique
role UserRole @default(CLIENT)
targetPlan ArtistPlan? // For artist invites
workspaceId String?
maxUses Int @default(1)
currentUses Int @default(0)
expiresAt DateTime?
// ... relations
}
model KioskEntry {
id String @id @default(cuid())
name String
phone String
instagram String?
barrier String? // PRECO | DOR | ESTILO
intent String? // Dream tattoo description
type String // COMPANION | WALK_IN
marketingOptIn Boolean @default(false)
artistId String
workspaceId String
// ... relations
}-
Admin generates invite code:
const invite = await prisma.inviteCode.create({ data: { code: generateUniqueCode(), role: 'ARTIST', targetPlan: 'RESIDENT', workspaceId: workspace.id, creatorId: admin.id, maxUses: 1, expiresAt: addDays(new Date(), 7) } })
-
Share invite link:
https://kronos-sync.vercel.app/auth/signin?invite=ABC123XYZ -
New artist:
- Enters email
- Receives 6-digit code
- Verifies code
- System creates Artist account automatically
- Redirected to onboarding
- Client scans QR code β Lands on
/kiosk - Clicks "Sou Acompanhante" (I'm a companion)
- Fills form:
- Name, Phone, Instagram
- Barrier (Price, Pain, Style)
- Dream tattoo description
- Artist PIN (last 4 digits of artist's phone)
- System validates PIN
- Creates
KioskEntryrecord - Generates coupon:
TATTOO10_FIRSTNAME - Shows success screen with QR code
- Artist completes tattoos/sells products
- Views pending revenue in Finance page
- Selects items to settle
- Transfers commission to studio (PIX)
- Uploads receipt proof
- Admin validates in Finance Dashboard
- AI analyzes receipt for fraud
- Admin approves/rejects settlement
- Items marked as settled
- Professional Gate implementation
- Kiosk lead capture system
- Unified financial settlement
- WhatsApp notification system
- Advanced BI dashboard
- Mobile app (React Native)
- Multi-studio franchise mode
- AI-powered scheduling optimization
- Inventory management
- Client loyalty program
- Automated marketing campaigns
- Advanced analytics & reporting
- API for third-party integrations
This project is proprietary software. All rights reserved.
Built by Symbeon Labs
For inquiries: Contact
- Design inspiration: Arrival (2016), Cyberpunk 2077
- UI/UX: Vercel, Linear, Stripe
- Community: Next.js, Prisma, Tailwind CSS




