# Stulink - Free URL Shortener ## About Stulink is a free, privacy-first URL shortening service that allows users to create clean, permanent short links without requiring an account or tracking analytics. ## Core Features - **URL Shortening**: Create short links instantly without sign-up - **Custom Slugs**: Request custom short URLs - **Password Protection**: Optional password protection for links - **Expiration Dates**: Set optional expiration for temporary links - **My URLs**: Email yourself all created links - **Free Tools**: Domain name generator, business name generator, and more ## Business Model - Free tier: 20 links per day per visitor - No account required - Optional email collection for "My URLs" feature - Privacy-focused: No click tracking or analytics ## Key Principles 1. No Account Required - Instant link creation 2. No Analytics/Tracking - Complete privacy 3. Permanent Links - Links never expire (unless abused) 4. Free Forever - Core features always free 5. Simple Interface - Clean, minimal design ## Technology Stack - Framework: Next.js 16 (App Router) - Database: Supabase (PostgreSQL) - Email: Resend - Analytics: Fathom (privacy-friendly) - Styling: Tailwind CSS v4 - UI Components: shadcn/ui ## Public Pages ### Main Pages - **Homepage** (/) - URL shortener with hero section - **About** (/about) - Company information and mission - **Contact** (/contact) - Contact form - **Partners** (/partners) - Partner perks and offers - **Site Map** (/site-map) - Human-readable sitemap ### Tools (Free, No Sign-Up) - **Domain Name Generator** (/tools/domain-name-generator) - AI-powered domain suggestions with availability checking - **Business Name Generator** (/tools/business-name-generator) - Generate brandable business names with domain check - **Creative Brief Generator** (/tools/creative-brief) - Generate professional creative briefs ### Legal Pages - **Privacy Policy** (/privacy) - GDPR-compliant privacy policy - **Terms of Service** (/terms) - Terms and conditions - **Imprint** (/imprint) - Legal imprint ## How It Works ### URL Shortening Process 1. User pastes long URL into form 2. Optional: Add custom slug, password, or expiration 3. System generates short code (e.g., stul.ink/abc123) 4. URL is encrypted and stored in database 5. User receives short link instantly 6. Links stored in localStorage for session ### My URLs System 1. User clicks "My URLs" link 2. Modal prompts for email address 3. System collects today's links from localStorage 4. Fetches past links from database by email 5. Sends formatted email with all links 6. Includes CSV download option 7. Automatically adds email to Loops with "Stulink user" tag ### Redirect Process 1. User visits short link (e.g., stul.ink/abc123) 2. System queries database for short code 3. Checks password protection and expiration 4. Decrypts destination URL 5. Redirects user to original URL ## API Endpoints ### Public APIs - POST /api/stulink/shorten - Create short link - GET /api/stulink/links?email={email} - Get links by email - POST /api/stulink/send-urls-email - Email links to user - GET /api/stulink/stats - Service statistics - POST /api/generate-domains - Generate domain names (AI) - POST /api/generate-business-names - Generate business names (AI) - GET /api/check-domain?domain={domain} - Check domain availability ### Redirect Endpoints - GET /[slug] - Main redirect handler - GET /api/redirect/[slug] - Alternative redirect ## Database Schema ### short_links table - id (uuid) - Primary key - short_code (text) - Unique slug for URL - destination_url (text) - Encrypted original URL - password (text, nullable) - Optional password - expires_at (timestamp, nullable) - Optional expiration - created_at (timestamp) - Creation date - email (text, nullable) - For My URLs feature - visitor_id (text, nullable) - Session tracking ## Security & Privacy ### Security Measures - Rate limiting: 20 links/day per visitor - URL validation prevents malicious links - All URLs encrypted at rest - Password protection available - HTTPS only - SQL injection prevention - XSS prevention via React ### Privacy Principles - No click tracking - No personal data collection - No cookies for tracking - GDPR compliant - Data minimization - User control over data ## Environment Variables ### Required - SUPABASE_URL - Supabase project URL - SUPABASE_ANON_KEY - Supabase anonymous key - SUPABASE_SERVICE_ROLE_KEY - Supabase service role key - ENCRYPTION_SECRET - 32-character encryption key - RESEND_API_KEY - Resend email API key - NEXT_PUBLIC_SITE_URL - Production domain URL ### Optional - FASTLY_API_KEY - Domain availability checking - LOOPS_API_KEY - Email marketing integration - SLACK_WEBHOOK_URL - Notifications - RESEND_AUDIENCE_ID - Email list management ## Analytics ### Fathom Analytics - Privacy-friendly website analytics - No cookies or personal data - Aggregate metrics only - Site ID: YDYJLPSW ### Google Search Console - Verified domain - Sitemap submitted - Search performance tracking ### Vercel Analytics - Page view tracking - Performance monitoring - No personal data collection ## Brand Identity - **Primary Color**: #4A154B (Purple) - **Typography**: Geist Sans, Geist Mono, Source Serif 4 - **Voice**: Simple, accessible, privacy-focused - **Email**: hello@stulink.io - **Sender**: Stulink.io ## Integrations - **Supabase** - Database and future authentication - **Resend** - Transactional emails - **Fastly** - Domain availability API - **Loops** - Email marketing (optional) - **Fathom** - Privacy-friendly analytics - **Vercel** - Hosting and edge functions ## Contact - General: hello@stulink.io - Privacy: privacy@stulink.io - Support: Contact form at /contact ## Parent Company Stulink is operated by Reel Unlimited (Tarkle, Inc.), a design and development agency specializing in branding, graphic design, and web development. --- Last Updated: January 10, 2025 Version: 1.0.0