Skip to content

SpaceCoastDevs/quick-clip

Repository files navigation

QuickClip

QuickClip is a link shortener with authentication, analytics, and a Hono + TypeScript backend.

Quick Clip

Local development (SQLite)

npm install
npm run dev

Open http://localhost:3000.

Database configuration

SQLite is used by default at data/quickclip.db.

Postgres / MySQL (production)

DB_CLIENT=pg            # or mysql2
DATABASE_URL=postgres://user:pass@host:5432/dbname
# or use DB_HOST/DB_USER/DB_PASSWORD/DB_NAME/DB_PORT

Custom SQLite path

SQLITE_FILE=/path/to/quickclip.db

Auth API

  • POST /api/auth/signup with { "username": "...", "password": "..." }
  • POST /api/auth/login with { "username": "...", "password": "..." }
  • POST /api/auth/logout
  • GET /api/auth/me

Links & analytics

  • POST /api/shorten (auth required)
  • GET /:code redirects and logs click
  • GET /api/links (auth required)
  • GET /api/analytics (auth required, optional ?linkId=...)

Production notes

  • If running behind a proxy, make sure x-forwarded-for is set for accurate unique visitors.

Releases (Semantic Release + Conventional Commits)

This repo uses semantic-release with conventional commits.

  1. Use commit messages like feat: add dashboards or fix: handle login errors.
  2. Run npm run release in CI (recommended) or locally.

Generated assets:

  1. CHANGELOG.md
  2. package.json version updates

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors