All Projects → mazipan → ksana.in

mazipan / ksana.in

Licence: Apache-2.0 license
✂️ Layanan pemendek tautan yang mudah, gratis & tanpa iklan

Programming Languages

typescript
32286 projects
javascript
184084 projects - #8 most used programming language
CSS
56736 projects

Projects that are alternatives of or similar to ksana.in

gShort
URL Shortener without all the crap
Stars: ✭ 80 (-56.99%)
Mutual labels:  url-shortener, shortener
YOURLS
🔗 The de facto standard self hosted URL shortener in PHP
Stars: ✭ 9,007 (+4742.47%)
Mutual labels:  url-shortener, shortener
dwarf
A O(1) URL shortener microservice backed by redis and gRPC communication.
Stars: ✭ 33 (-82.26%)
Mutual labels:  url-shortener, shortener
ursho
URL Shortener Service in Go
Stars: ✭ 118 (-36.56%)
Mutual labels:  url-shortener, shortener
urlzap
⚡️ Your own static URL shortener
Stars: ✭ 57 (-69.35%)
Mutual labels:  url-shortener, shortener
yii2-minify-url
Project on YII2 framework for create short url (url shortener)
Stars: ✭ 15 (-91.94%)
Mutual labels:  url-shortener, shortener
Base62
PHP Base62 encoder and decoder for integers and big integers with Laravel 5 support.
Stars: ✭ 16 (-91.4%)
Mutual labels:  url-shortener, shortener
Urlshorting
A simple but powerful URL shortener
Stars: ✭ 150 (-19.35%)
Mutual labels:  url-shortener
Azurlshortener
An simple and easy Url Shortener
Stars: ✭ 247 (+32.8%)
Mutual labels:  url-shortener
Serverless Url Shortener
URL shortener for AWS Lambda and S3
Stars: ✭ 146 (-21.51%)
Mutual labels:  url-shortener
Laravel Short Url
A Laravel package to shorten urls
Stars: ✭ 127 (-31.72%)
Mutual labels:  url-shortener
Shorty
A simple URL shortener for PHP
Stars: ✭ 156 (-16.13%)
Mutual labels:  url-shortener
Sharex
ShareX is a free and open source program that lets you capture or record any area of your screen and share it with a single press of a key. It also allows uploading images, text or other types of files to many supported destinations you can choose from.
Stars: ✭ 18,143 (+9654.3%)
Mutual labels:  url-shortener
Point
Create and manage shortened URLs with GitHub pages.
Stars: ✭ 146 (-21.51%)
Mutual labels:  url-shortener
Perfect-URL-Shortener
An Example URL Shortener System for Perfect
Stars: ✭ 37 (-80.11%)
Mutual labels:  url-shortener
Fossurl
Your Own Url Shortner Without any fancy server side processing and support for custom url , which can even be hosted on GitHub Pages
Stars: ✭ 131 (-29.57%)
Mutual labels:  url-shortener
laravel-bitly
Laravel package for generating bitly url
Stars: ✭ 72 (-61.29%)
Mutual labels:  url-shortener
bifrost
🌉 The rainbow bridge. URL shortener for Vercel.
Stars: ✭ 28 (-84.95%)
Mutual labels:  shortener
Golang Url Shortener
URL Shortener written in Golang using Bolt DB or Redis. Provides features such as Deletion, Expiration, OAuth and is of course Dockerizable.
Stars: ✭ 240 (+29.03%)
Mutual labels:  url-shortener
Dogbin
The sexiest pastebin and url shortener ever
Stars: ✭ 237 (+27.42%)
Mutual labels:  url-shortener

ksana.in

ksana.in

✂️ Open source URL shortener, free to use and without ads

Deployment Website Up

Features

  • Fully open source
  • Mobile First UI (best view in your mobile device)
  • Full authentication flow
    • Login (with Email or third parties: Google, GitHub and Twitter)
    • Register manual using email
    • Forget Password and set new password
  • Simple hit stats on every short URL
  • Share the link using Native Share API for mobile device and fallback to WA, Twitter and Facebook share.
  • Copy the link using new Clipboard API, fallback to old school copy-to-clipboard mechanism

Screenshots

Homepage Homepage Homepage

Installation

Copy file .env.local.example to .env.local and change value with your own supabase url and anonymous key. You can get it after register and create your own project on Supabase.io.

NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key

Creating table on Supabase

Go to the SQL tab and execute this query on the editor.

create table urls (
  id bigint generated by default as identity primary key,
  user_id uuid references auth.users not null,
  real_url text check (char_length(real_url) > 1),
  slug text check (char_length(slug) > 1),
  hit integer default 0,
  is_dynamic smallint default 0,
  inserted_at timestamp with time zone default timezone('utc'::text, now()) not null,
  updated_at timestamp with time zone default timezone('utc'::text, now()) not null
);

Click RUN to execute the query

Creating triggers on Supabase

Go to the SQL tab and execute this query on the editor.

Add triggers for "updated_at" field, copy this code on the same SQL editor

create extension if not exists moddatetime schema extensions;

-- this trigger will set the "updated_at" column to the current timestamp for every update
create trigger handle_updated_at before update on public.urls
  for each row execute procedure moddatetime (updated_at);

Click RUN to execute the query

Creating View on Supabase

Go to the SQL tab and execute this query on the editor.

create view distinct_users as
    select distinct(user_id) from public.urls;

Click RUN to execute the query

Additional settings for Authentication

  • on Authentication setting, change Site URL to /callback. e.g: https://ksana.in/callback, for development just set it to http://localhost:3000/callback
  • To support Google Login, in Authentication setting page, set the Google Client ID and Google Secret
  • Increase JWT expiry time to 604800 for longer session. It's on on Authentication setting menu

Add environment variables on Vercel

You can found all required environment variables on .env.local.example

Register you own Splitbee

Ksana.in using Splitbee for Analytic, if you plan to deploy it by yourself, you might need to register your own Splitbee account.

Can I deploy to my own domain?

The code is open for learning purpose. But in case you didn't like the default domain (ksana.in), feel free to deploy to your own domain. Since Ksana.in is using a free plan from Supabase, it have many limitation in term of size. If you plan to use it in the bigger frequency, I suggest to deploy it with your own Supabase plan.

The Apps based on Ksana.in's codebase

Credits

Support me


Copyright ©️ 2021 by Irfan Maulana

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].