Issues

Report bugs and request features to help improve the platform.

2

[editor] Mux video uploads

Planned

- Upload API: signed URLs for direct browser-to-Mux upload - Upload UI: drag-drop in VideoEditPanel, progress bar, processing status - Playback: HLS adaptive streaming, poster/thumbnail, autoplay/loop/muted controls - Tier gating: Free=0, Basic=5, Premium=25, Pro=unlimited **Files:** `src/components/editor/VideoEditPanel.tsx`, new `src/lib/mux.ts`, new `app/api/video/upload/route.ts`

#26 opened by SALabout 1 month ago
0
1

[billing] Enable Stripe Tax for EU VAT compliance

Planned

Enable automatic_tax in Stripe checkout sessions. Requires EU OSS registration. Add tax_id_collection for B2B reverse charge. Full checklist in docs/ongoing/TAX-AND-PAYMENTS-PLAN.md (all items unchecked). Split from #14 — tier enforcement is complete, Tax is not started.

#42 opened by SAL7 days ago
0
1

Public User Profile Page

Planned

Public-facing user profile page. Frontend design penned out in new-salon-app/new-salon-profile.pen.

#40 opened by SAL12 days ago
0
1

Affiliate Program — "New Salon Partners"

Planned

## Summary Implement an affiliate/referral program that turns paying customers into a scalable growth channel. The program — called "New Salon Partners" — lets any paying customer earn 20% recurring commissions for 12 months on referred subscriptions, with partner perks and milestone rewards. ## Program Structure **Eligibility:** Any paying customer (Basic, Premium, Pro, or Pro Lifetime) with at least one active subscription. No application process — auto-eligible. **Commission Model: 20% Recurring for 12 Months** | Detail | Value | |---|---| | Rate | 20% of referred customer's subscription revenue | | Type | Recurring — pays on every successful renewal | | Duration | 12 months from referred customer's first payment | | Cookie window | 90 days | | Attribution | Last-click with referral code override | **Revenue per Referral:** | Referred Tier | Monthly Commission | Total over 12 months | |---|---|---| | Basic (€10/mo) | €2/mo | €24 | | Premium (€20/mo) | €4/mo | €48 | | Pro (€40/mo) | €8/mo | €96 | | Pro Lifetime (€399-499) | €79.80-99.80 (one-time) | €79.80-99.80 | **Payouts:** €25 minimum threshold, monthly on the 15th. Options: PayPal, bank transfer, or account credit. **Tier Bonuses:** Pro/Pro Lifetime affiliates get 25% commission instead of 20%. ## Partner Perks | Perk | Requirement | |---|---| | Partner badge on profile | Any paid tier | | Referral dashboard | Any paid tier | | Early access to features | 5+ referrals | | Partner directory listing | 10+ referrals | | Priority support | 10+ referrals | | Annual partner spotlight | Top 10 partners | ## Milestone Rewards | Milestone | Reward | |---|---| | First referral | Welcome Partner email + badge | | 5 paying referrals | 1 month free on current tier | | 10 paying referrals | Lifetime "Founding Partner" badge + directory listing | | 25 paying referrals | Free upgrade to next tier for 6 months | | 50 paying referrals | Pro Lifetime granted | ## Implementation Plan ### Phase 1: Launch with Rewardful (Pre-Launch → Launch Day) - Sign up for Rewardful ($49/mo), connect Stripe, configure 20%/12mo/90-day - Add Rewardful tracking script + Stripe checkout metadata integration - Update `/{username}/settings/invite` with referral link and basic stats - Create `/partners` landing page ### Phase 2: Custom Build (when 50+ active affiliates) - Full custom solution with Supabase tables (`affiliates`, `referral_conversions`, `affiliate_payouts`, `referral_clicks`) - Integrated dashboard in settings, partner badges, milestone automation - Stripe webhook integration for automatic commission tracking ## Revenue Impact (Conservative Estimate, Year 1) - 20 active affiliates × 3 referrals each = 60 new paying customers - Annual revenue from referrals: €10,800 - Commission cost: €2,160 + €540 (Rewardful) - **Net revenue gain: €8,100** ## Competitor Comparison | Platform | Commission | Type | Cookie | |---|---|---|---| | Squarespace | $100-200 | One-time | 30 days | | Wix | $100 | One-time | 30 days | | Webflow | 50% | Recurring, 12 months | 90 days | | **New Salon** | 20% | Recurring, 12 months | 90 days | *Full spec: `new-salon-app/docs/ongoing/AFFILIATE-PROGRAM-PLAN.md`*

#29 opened by SAL23 days ago
0
1

SLN Phase 1: Internal Credit Ledger System

Planned

## Summary Implement the SLN credit economy as an internal ledger on Supabase. This is Phase 1 of the SAL Protocol — a launch-ready credit system with zero blockchain dependency. Users see "credits" or "SLN balance" while the underlying mechanics are forward-compatible with on-chain settlement in later phases. ## Key Details **Exchange Rate:** Fixed at 1000 SLN = €10 (1 SLN = €0.01) **Onboarding:** New users receive +100 SLN (~€1.00) on email confirmation, plus 5 invite slots. **Invite System:** - Sending an invite costs 20 SLN - When invitee publishes a site: inviter gets +100 SLN (5x return) - When invitee upgrades to Basic: inviter gets +500 SLN bonus + 200 SLN commission - When invitee upgrades to Premium/Pro: inviter gets +1000 SLN bonus + 400-800 SLN commission - Maximum return per invite: 1,600 SLN on 20 SLN investment (80x) **Commission on Upgrades:** 20% of the subscription's first payment, converted to SLN at fixed rate. Recurring commissions deferred to Phase 2. **Spending SLN (at launch):** - Send invite: 20 SLN - Apply as subscription discount: 1:1 at €0.01/SLN - Upgrade to Basic Monthly: 1000 SLN - Cash out: Min 1000 SLN (€10), PayPal or bank transfer, manual review, monthly **Credit Expiry:** 24 months of account inactivity (no login) ## Database Changes - Extend `user_profiles` with `sln_balance`, `invite_slots_total`, `invite_slots_used` - New table: `sln_transactions` (full double-entry ledger with type, amount, balance_after) - New table: `sln_cashout_requests` (manual payout queue) - Extend `invite_requests` with inviter tracking - Atomic `credit_sln` RPC function for all balance mutations - Daily reconciliation query to verify balance integrity ## New API Routes | Route | Method | Purpose | |---|---|---| | `/api/sln/balance` | GET | Current SLN balance and slot count | | `/api/sln/transactions` | GET | Paginated transaction history | | `/api/sln/cashout` | POST | Submit cash-out request | | `/api/sln/apply-discount` | POST | Calculate SLN discount for checkout | | `/api/admin/sln/cashouts` | GET | Pending cash-out requests (admin) | | `/api/admin/sln/cashouts/[id]` | PATCH | Approve/reject cash-out | | `/api/admin/sln/adjust` | POST | Manual balance adjustment | ## Integration Points 1. **Signup flow** — +100 SLN on email confirmation 2. **Invite flow** — SLN debit on send, reward on invitee site publish 3. **Stripe webhook** — Commission on referred user's first subscription payment 4. **Checkout flow** — SLN discount support with atomic debit on payment confirmation 5. **Settings page** — Replace invite placeholder with full balance/transaction/cashout UI ## Phase 2 Migration Path Phase 1 Supabase ledger maps 1:1 to Phase 2 on-chain (BSV-20 SLN tokens). User balances minted as tokens, transaction history archived, UI stays the same. Only visible change is a wallet connection step. *Full spec: `new-salon-app/docs/ongoing/SLN-PHASE-1-INTERNAL-LEDGER.md`*

#28 opened by SAL23 days ago
0
1

[migration] Import logo, navigation style, collections, captions

Planned

- Import site logo from legacy profile (`header_image`, `logo` field) - Translate legacy nav styles: horizontal, vertical to sidebar, center to horizontal-centered, none to horizontal - Import navigation colors and font settings - Detect legacy filtered pages and create collection-enabled sections with tag filters - Full caption import from `asset.title` and `i18n.[lang].title` (not just alt text) **Files:** `app/api/migration/import-stream/route.ts`, `src/lib/migration/legacy-service.ts`

#21 opened by SALabout 1 month ago
0
1

[platform] Landing page overhaul

Planned

- Redesign hero with clearer value proposition for creative professionals - Showcase real user sites (pull from actual published sites) - Per-site pricing calculator with interactive slider - Migration CTA for legacy salon.io users - Mobile-first responsive design **Files:** `src/components/landing/NewSalonLanding.tsx`

#24 opened by SALabout 1 month ago
0
1

[billing] Stripe Tax + per-site tier enforcement

Planned

- Enable Stripe Tax for EU VAT compliance (needs EU OSS registration) - Update `tier-enforcement.ts` to read `websites.tier` instead of `user_profiles.tier` - Webhook handler to update `websites.tier` on subscription changes **Files:** `src/lib/tier-enforcement.ts`, `app/api/webhooks/stripe/route.ts`

#14 opened by SALabout 1 month ago
0
1

[billing] Redesign pricing page for per-site model

Planned

- Rewrite `PricingPage.tsx` with per-site calculator - "How many sites do you need?" slider showing monthly total - First site full price, additional sites at 50% - Lifetime Pro section: early bird 399 / regular 499, 2 Pro sites included **Files:** `src/components/landing/PricingPage.tsx`

#15 opened by SALabout 1 month ago
0
0

[editor] Multi-language content support

Planned

- Database: `content_translations` table + `languages`/`default_language` columns on `websites` - Editor: floating toolbar language switcher pill (only when 2+ languages enabled) - Viewer: `?lang=de` URL param, `Accept-Language` detection, `hreflang` SEO tags - Translatable content: text blocks, image captions/alt, page titles/descriptions, nav labels, site title **Files:** Supabase migration, `src/hooks/use-translations.ts`, `EditorLayout.tsx`, `TextEditPanel.tsx`, `ImageEditPanel.tsx`

#20 opened by SALabout 1 month ago
0
0

[social] Follows, likes, posts, feed, discover

Planned

- Database: `follows`, `likes`, `posts` tables - Post types: site published (auto), page added (auto), image shared, text post, repost - Following feed (content from people you follow) - Discover feed (trending/new content across platform) - Like button on sites, pages, images - Follow/unfollow on user profiles - Basic in-app notification system **Files:** Supabase migration, new components in `src/components/social/`

#25 opened by SALabout 1 month ago
0