CCLinker is a secure and privacy-focused URL shortener built with Supabase for backend and Vanilla JavaScript + TailwindCSS for frontend. It allows users to create, manage, and share short URLs with advanced access controls, analytics, and notifications.
- β¨ Features
- π οΈ Tech Stack
- π§ User Flow
- π₯οΈ Screenshots
- π Getting Started
- βοΈ Environment Variables
- π Database Schema
- π€ Contributing
- π License
- Clear instructions on how to use the app.
- Prominent Login and Sign-Up options.
- Mobile-friendly and responsive design.
- Email-based Magic Link Login powered by Supabase Auth.
- Secure session management.
- URL creation and management.
- Set expiration/start dates.
- Password-protected URLs.
- Email whitelisting and access requests.
- Real-time analytics.
- Users are prompted for passwords or email validation.
- Unauthorized users can request access via email notifications.
- Total clicks, unique visitors, and top-performing URLs.
- Real-time data visualizations.
- Email alerts for URL access and access requests.
- In-app notifications.
- Frontend: Vanilla JavaScript, TailwindCSS
- Backend: Supabase (Auth, PostgreSQL Database, Edge Functions)
- Deployment: Vercel (Frontend), Supabase Cloud (Backend)
- Homepage: Users land on the homepage, learn about the app, and sign up or log in.
- Dashboard: Users can create new URLs, set access controls, and view analytics.
- Short URL Access: When someone clicks a short URL:
- They're redirected to an Intermediate Page.
- They must provide a password or email verification.
- Access Approval: If unauthorized, users can request access.
- Analytics: The creator can monitor URL activity via the dashboard.
- Node.js installed (Optional for local development)
- Supabase account
# Clone the repository
git clone https://github.com/tank0nf/CCLinker.git
# Navigate to the project folder
cd CCLinker
# Install dependencies
npm install
# Start the development server
npm run dev- Deploy the frontend on Netlify or Vercel.
- Connect the backend to Supabase Cloud.
Create a .env file in the root directory and add:
SUPABASE_URL=your_supabase_url
SUPABASE_API_KEY=your_supabase_api_keyid: Unique User IDemail: User Emailcreated_at: Account Creation Timestamp
id: Unique URL IDshort_url: Shortened URLoriginal_url: Original URLexpiration_date: Expiry Datepassword: Optional Password
id: Log IDurl_id: Associated Short URLaccessed_by: Email/Nameaccessed_at: Timestamp
Contributions are welcome! Follow these steps:
- Fork the repository.
- Create a new branch:
git checkout -b feature-branch. - Make your changes.
- Submit a pull request.
- Make a Logo.
- Make Homepage more interactive and more informative.
- Add additional features
For any questions or support, feel free to reach out. ππ
Happy Coding! π