This commit includes: - Django backend with multi-tenancy (django-tenants) - React + TypeScript frontend with Vite - Platform administration API with role-based access control - Authentication system with token-based auth - Quick login dev tools for testing different user roles - CORS and CSRF configuration for local development - Docker development environment setup 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
343 lines
16 KiB
Markdown
343 lines
16 KiB
Markdown
# Page snapshot
|
||
|
||
```yaml
|
||
- generic [ref=e2]:
|
||
- generic [ref=e3]:
|
||
- navigation [ref=e4]:
|
||
- generic [ref=e6]:
|
||
- link "Smooth Schedule" [ref=e7] [cursor=pointer]:
|
||
- /url: "#/"
|
||
- img [ref=e8]
|
||
- generic [ref=e14]: Smooth Schedule
|
||
- generic [ref=e15]:
|
||
- link "Features" [ref=e16] [cursor=pointer]:
|
||
- /url: "#/features"
|
||
- link "Pricing" [ref=e17] [cursor=pointer]:
|
||
- /url: "#/pricing"
|
||
- link "About" [ref=e18] [cursor=pointer]:
|
||
- /url: "#/about"
|
||
- link "Contact" [ref=e19] [cursor=pointer]:
|
||
- /url: "#/contact"
|
||
- generic [ref=e20]:
|
||
- button "🇺🇸 English" [ref=e23]:
|
||
- img [ref=e24]
|
||
- generic [ref=e28]: 🇺🇸
|
||
- generic [ref=e29]: English
|
||
- img [ref=e30]
|
||
- button "Switch to dark mode" [ref=e32]:
|
||
- img [ref=e33]
|
||
- link "Login" [ref=e35] [cursor=pointer]:
|
||
- /url: "#/login"
|
||
- link "Get Started" [ref=e36] [cursor=pointer]:
|
||
- /url: "#/signup"
|
||
- main [ref=e37]:
|
||
- generic [ref=e38]:
|
||
- generic [ref=e43]:
|
||
- generic [ref=e44]:
|
||
- generic [ref=e45]:
|
||
- generic [ref=e48]: Get started today
|
||
- heading "Scheduling Made Simple" [level=1] [ref=e49]
|
||
- paragraph [ref=e50]: The all-in-one platform for managing appointments, resources, and customers. Start free, scale as you grow.
|
||
- generic [ref=e51]:
|
||
- link "Get Started Free" [ref=e52] [cursor=pointer]:
|
||
- /url: "#/signup"
|
||
- text: Get Started Free
|
||
- img [ref=e53]
|
||
- button "Watch Demo" [ref=e56]:
|
||
- img [ref=e57]
|
||
- text: Watch Demo
|
||
- generic [ref=e59]:
|
||
- generic [ref=e60]:
|
||
- img [ref=e61]
|
||
- generic [ref=e64]: No credit card required
|
||
- generic [ref=e66]:
|
||
- img [ref=e67]
|
||
- generic [ref=e70]: Get started today
|
||
- generic [ref=e71]:
|
||
- generic [ref=e73]:
|
||
- generic [ref=e80]: dashboard.smoothschedule.com
|
||
- generic [ref=e81]:
|
||
- generic [ref=e82]:
|
||
- generic [ref=e83]:
|
||
- generic [ref=e84]: Today
|
||
- generic [ref=e85]: "12"
|
||
- generic [ref=e86]:
|
||
- generic [ref=e87]: This Week
|
||
- generic [ref=e88]: "48"
|
||
- generic [ref=e89]:
|
||
- generic [ref=e90]: Revenue
|
||
- generic [ref=e91]: $2.4k
|
||
- generic [ref=e92]:
|
||
- generic [ref=e93]: Today's Schedule
|
||
- generic [ref=e94]:
|
||
- generic [ref=e97]:
|
||
- generic [ref=e98]: 9:00 AM
|
||
- generic [ref=e99]: Sarah J. - Haircut
|
||
- generic [ref=e102]:
|
||
- generic [ref=e103]: 10:30 AM
|
||
- generic [ref=e104]: Mike T. - Consultation
|
||
- generic [ref=e107]:
|
||
- generic [ref=e108]: 2:00 PM
|
||
- generic [ref=e109]: Emma W. - Color
|
||
- generic [ref=e111]:
|
||
- img [ref=e113]
|
||
- generic [ref=e116]:
|
||
- generic [ref=e117]: New Booking!
|
||
- generic [ref=e118]: Just now
|
||
- generic [ref=e119]:
|
||
- paragraph [ref=e120]: Trusted by 1,000+ businesses worldwide
|
||
- generic [ref=e121]:
|
||
- generic [ref=e122]: TechCorp
|
||
- generic [ref=e123]: Innovate
|
||
- generic [ref=e124]: StartupX
|
||
- generic [ref=e125]: GrowthCo
|
||
- generic [ref=e126]: ScaleUp
|
||
- generic [ref=e128]:
|
||
- generic [ref=e129]:
|
||
- heading "Everything You Need" [level=2] [ref=e130]
|
||
- paragraph [ref=e131]: Powerful features to run your service business
|
||
- generic [ref=e132]:
|
||
- generic [ref=e133]:
|
||
- img [ref=e135]
|
||
- heading "Smart Scheduling" [level=3] [ref=e140]
|
||
- paragraph [ref=e141]: Drag-and-drop calendar with real-time availability, automated reminders, and conflict detection.
|
||
- generic [ref=e142]:
|
||
- img [ref=e144]
|
||
- heading "Resource Management" [level=3] [ref=e149]
|
||
- paragraph [ref=e150]: Manage staff, rooms, and equipment. Set availability, skills, and booking rules.
|
||
- generic [ref=e151]:
|
||
- img [ref=e153]
|
||
- heading "Customer Portal" [level=3] [ref=e157]
|
||
- paragraph [ref=e158]: Self-service booking portal for customers. View history, manage appointments, and save payment methods.
|
||
- generic [ref=e159]:
|
||
- img [ref=e161]
|
||
- heading "Integrated Payments" [level=3] [ref=e164]
|
||
- paragraph [ref=e165]: Accept payments online with Stripe. Deposits, full payments, and automatic invoicing.
|
||
- generic [ref=e166]:
|
||
- img [ref=e168]
|
||
- heading "Multi-Location Support" [level=3] [ref=e174]
|
||
- paragraph [ref=e175]: Manage multiple locations or brands from a single dashboard with isolated data.
|
||
- generic [ref=e176]:
|
||
- img [ref=e178]
|
||
- heading "White-Label Ready" [level=3] [ref=e184]
|
||
- paragraph [ref=e185]: Custom domain, branding, and remove SmoothSchedule branding for a seamless experience.
|
||
- link "View All features" [ref=e187] [cursor=pointer]:
|
||
- /url: "#/features"
|
||
- text: View All features
|
||
- img [ref=e188]
|
||
- generic [ref=e192]:
|
||
- generic [ref=e193]:
|
||
- heading "Get Started in Minutes" [level=2] [ref=e194]
|
||
- paragraph [ref=e195]: Three simple steps to transform your scheduling
|
||
- generic [ref=e196]:
|
||
- generic [ref=e199]:
|
||
- generic [ref=e200]: "01"
|
||
- img [ref=e202]
|
||
- heading "Create Your Account" [level=3] [ref=e207]
|
||
- paragraph [ref=e208]: Sign up for free and set up your business profile in minutes.
|
||
- generic [ref=e211]:
|
||
- generic [ref=e212]: "02"
|
||
- img [ref=e214]
|
||
- heading "Add Your Services" [level=3] [ref=e217]
|
||
- paragraph [ref=e218]: Configure your services, pricing, and available resources.
|
||
- generic [ref=e220]:
|
||
- generic [ref=e221]: "03"
|
||
- img [ref=e223]
|
||
- heading "Start Booking" [level=3] [ref=e228]
|
||
- paragraph [ref=e229]: Share your booking link and let customers schedule instantly.
|
||
- generic [ref=e232]:
|
||
- generic [ref=e233]:
|
||
- img [ref=e235]
|
||
- generic [ref=e240]: 1M+
|
||
- generic [ref=e241]: Appointments Scheduled
|
||
- generic [ref=e242]:
|
||
- img [ref=e244]
|
||
- generic [ref=e250]: 5,000+
|
||
- generic [ref=e251]: Businesses
|
||
- generic [ref=e252]:
|
||
- img [ref=e254]
|
||
- generic [ref=e258]: 50+
|
||
- generic [ref=e259]: Countries
|
||
- generic [ref=e260]:
|
||
- img [ref=e262]
|
||
- generic [ref=e265]: 99.9%
|
||
- generic [ref=e266]: Uptime
|
||
- generic [ref=e268]:
|
||
- generic [ref=e269]:
|
||
- heading "Loved by Businesses Everywhere" [level=2] [ref=e270]
|
||
- paragraph [ref=e271]: See what our customers have to say
|
||
- generic [ref=e272]:
|
||
- generic [ref=e273]:
|
||
- generic [ref=e274]:
|
||
- img [ref=e275]
|
||
- img [ref=e277]
|
||
- img [ref=e279]
|
||
- img [ref=e281]
|
||
- img [ref=e283]
|
||
- blockquote [ref=e285]: "\"SmoothSchedule transformed how we manage appointments. Our no-show rate dropped by 40% with automated reminders.\""
|
||
- generic [ref=e286]:
|
||
- generic [ref=e288]: S
|
||
- generic [ref=e289]:
|
||
- generic [ref=e290]: Sarah Johnson
|
||
- generic [ref=e291]: Owner at Luxe Salon
|
||
- generic [ref=e292]:
|
||
- generic [ref=e293]:
|
||
- img [ref=e294]
|
||
- img [ref=e296]
|
||
- img [ref=e298]
|
||
- img [ref=e300]
|
||
- img [ref=e302]
|
||
- blockquote [ref=e304]: "\"The white-label feature is perfect for our multi-location business. Each location has its own branded booking experience.\""
|
||
- generic [ref=e305]:
|
||
- generic [ref=e307]: M
|
||
- generic [ref=e308]:
|
||
- generic [ref=e309]: Michael Chen
|
||
- generic [ref=e310]: CEO at FitLife Studios
|
||
- generic [ref=e311]:
|
||
- generic [ref=e312]:
|
||
- img [ref=e313]
|
||
- img [ref=e315]
|
||
- img [ref=e317]
|
||
- img [ref=e319]
|
||
- img [ref=e321]
|
||
- blockquote [ref=e323]: "\"Setup was incredibly easy. We were up and running in under an hour, and our clients love the self-service booking.\""
|
||
- generic [ref=e324]:
|
||
- generic [ref=e326]: E
|
||
- generic [ref=e327]:
|
||
- generic [ref=e328]: Emily Rodriguez
|
||
- generic [ref=e329]: Manager at Peak Performance Therapy
|
||
- generic [ref=e331]:
|
||
- generic [ref=e332]:
|
||
- heading "Simple, Transparent Pricing" [level=2] [ref=e333]
|
||
- paragraph [ref=e334]: Start free, upgrade as you grow. No hidden fees.
|
||
- generic [ref=e335]:
|
||
- generic [ref=e336]:
|
||
- heading "Free" [level=3] [ref=e337]
|
||
- paragraph [ref=e338]: Perfect for getting started
|
||
- generic [ref=e339]: $0/month
|
||
- link "Get Started" [ref=e340] [cursor=pointer]:
|
||
- /url: "#/signup"
|
||
- generic [ref=e341]:
|
||
- generic [ref=e342]: Most Popular
|
||
- heading "Professional" [level=3] [ref=e343]
|
||
- paragraph [ref=e344]: For growing businesses
|
||
- generic [ref=e345]: $29/month
|
||
- link "Get Started" [ref=e346] [cursor=pointer]:
|
||
- /url: "#/signup"
|
||
- generic [ref=e347]:
|
||
- heading "Business" [level=3] [ref=e348]
|
||
- paragraph [ref=e349]: For established teams
|
||
- generic [ref=e350]: $79/month
|
||
- link "Get Started" [ref=e351] [cursor=pointer]:
|
||
- /url: "#/signup"
|
||
- link "View full pricing details" [ref=e353] [cursor=pointer]:
|
||
- /url: "#/pricing"
|
||
- text: View full pricing details
|
||
- img [ref=e354]
|
||
- generic [ref=e361]:
|
||
- heading "Ready to get started?" [level=2] [ref=e362]
|
||
- paragraph [ref=e363]: Join thousands of businesses already using SmoothSchedule.
|
||
- generic [ref=e364]:
|
||
- link "Get Started Free" [ref=e365] [cursor=pointer]:
|
||
- /url: "#/signup"
|
||
- text: Get Started Free
|
||
- img [ref=e366]
|
||
- link "Talk to Sales" [ref=e369] [cursor=pointer]:
|
||
- /url: "#/contact"
|
||
- paragraph [ref=e370]: No credit card required
|
||
- contentinfo [ref=e371]:
|
||
- generic [ref=e372]:
|
||
- generic [ref=e373]:
|
||
- generic [ref=e374]:
|
||
- link "Smooth Schedule" [ref=e375] [cursor=pointer]:
|
||
- /url: "#/"
|
||
- img [ref=e376]
|
||
- generic [ref=e382]: Smooth Schedule
|
||
- paragraph [ref=e383]: The all-in-one scheduling platform for businesses of all sizes. Manage resources, staff, and bookings effortlessly.
|
||
- generic [ref=e384]:
|
||
- link "Twitter" [ref=e385] [cursor=pointer]:
|
||
- /url: https://twitter.com/smoothschedule
|
||
- img [ref=e386]
|
||
- link "LinkedIn" [ref=e388] [cursor=pointer]:
|
||
- /url: https://linkedin.com/company/smoothschedule
|
||
- img [ref=e389]
|
||
- link "GitHub" [ref=e393] [cursor=pointer]:
|
||
- /url: https://github.com/smoothschedule
|
||
- img [ref=e394]
|
||
- link "YouTube" [ref=e397] [cursor=pointer]:
|
||
- /url: https://youtube.com/@smoothschedule
|
||
- img [ref=e398]
|
||
- generic [ref=e401]:
|
||
- heading "Product" [level=3] [ref=e402]
|
||
- list [ref=e403]:
|
||
- listitem [ref=e404]:
|
||
- link "Features" [ref=e405] [cursor=pointer]:
|
||
- /url: "#/features"
|
||
- listitem [ref=e406]:
|
||
- link "Pricing" [ref=e407] [cursor=pointer]:
|
||
- /url: "#/pricing"
|
||
- listitem [ref=e408]:
|
||
- link "Get Started" [ref=e409] [cursor=pointer]:
|
||
- /url: "#/signup"
|
||
- generic [ref=e410]:
|
||
- heading "Company" [level=3] [ref=e411]
|
||
- list [ref=e412]:
|
||
- listitem [ref=e413]:
|
||
- link "About" [ref=e414] [cursor=pointer]:
|
||
- /url: "#/about"
|
||
- listitem [ref=e415]:
|
||
- link "Contact" [ref=e416] [cursor=pointer]:
|
||
- /url: "#/contact"
|
||
- generic [ref=e417]:
|
||
- heading "Legal" [level=3] [ref=e418]
|
||
- list [ref=e419]:
|
||
- listitem [ref=e420]:
|
||
- link "Privacy Policy" [ref=e421] [cursor=pointer]:
|
||
- /url: "#/privacy"
|
||
- listitem [ref=e422]:
|
||
- link "Terms of Service" [ref=e423] [cursor=pointer]:
|
||
- /url: "#/terms"
|
||
- paragraph [ref=e425]: © 2025 Smooth Schedule Inc. All rights reserved.
|
||
- generic [ref=e426]:
|
||
- generic [ref=e427]:
|
||
- heading "🔓 Quick Login (Dev Only)" [level=3] [ref=e428]:
|
||
- generic [ref=e429]: 🔓
|
||
- generic [ref=e430]: Quick Login (Dev Only)
|
||
- button "×" [ref=e431]
|
||
- generic [ref=e432]:
|
||
- button "Logging in..." [disabled] [ref=e433]:
|
||
- generic [ref=e434]:
|
||
- img [ref=e435]
|
||
- text: Logging in...
|
||
- button "Platform Manager PLATFORM_MANAGER" [disabled] [ref=e438]:
|
||
- generic [ref=e439]:
|
||
- generic [ref=e440]: Platform Manager
|
||
- generic [ref=e441]: PLATFORM_MANAGER
|
||
- button "Platform Sales PLATFORM_SALES" [disabled] [ref=e442]:
|
||
- generic [ref=e443]:
|
||
- generic [ref=e444]: Platform Sales
|
||
- generic [ref=e445]: PLATFORM_SALES
|
||
- button "Platform Support PLATFORM_SUPPORT" [disabled] [ref=e446]:
|
||
- generic [ref=e447]:
|
||
- generic [ref=e448]: Platform Support
|
||
- generic [ref=e449]: PLATFORM_SUPPORT
|
||
- button "Business Owner TENANT_OWNER" [disabled] [ref=e450]:
|
||
- generic [ref=e451]:
|
||
- generic [ref=e452]: Business Owner
|
||
- generic [ref=e453]: TENANT_OWNER
|
||
- button "Business Manager TENANT_MANAGER" [disabled] [ref=e454]:
|
||
- generic [ref=e455]:
|
||
- generic [ref=e456]: Business Manager
|
||
- generic [ref=e457]: TENANT_MANAGER
|
||
- button "Staff Member TENANT_STAFF" [disabled] [ref=e458]:
|
||
- generic [ref=e459]:
|
||
- generic [ref=e460]: Staff Member
|
||
- generic [ref=e461]: TENANT_STAFF
|
||
- button "Customer CUSTOMER" [disabled] [ref=e462]:
|
||
- generic [ref=e463]:
|
||
- generic [ref=e464]: Customer
|
||
- generic [ref=e465]: CUSTOMER
|
||
- generic [ref=e466]:
|
||
- text: "Password for all:"
|
||
- code [ref=e467]: test123
|
||
``` |