QuickClip is a link shortener with authentication, analytics, and a Hono + TypeScript backend.
npm install
npm run devOpen http://localhost:3000.
SQLite is used by default at data/quickclip.db.
DB_CLIENT=pg # or mysql2
DATABASE_URL=postgres://user:pass@host:5432/dbname
# or use DB_HOST/DB_USER/DB_PASSWORD/DB_NAME/DB_PORTSQLITE_FILE=/path/to/quickclip.dbPOST /api/auth/signupwith{ "username": "...", "password": "..." }POST /api/auth/loginwith{ "username": "...", "password": "..." }POST /api/auth/logoutGET /api/auth/me
POST /api/shorten(auth required)GET /:coderedirects and logs clickGET /api/links(auth required)GET /api/analytics(auth required, optional?linkId=...)
- If running behind a proxy, make sure
x-forwarded-foris set for accurate unique visitors.
This repo uses semantic-release with conventional commits.
- Use commit messages like
feat: add dashboardsorfix: handle login errors. - Run
npm run releasein CI (recommended) or locally.
Generated assets:
CHANGELOG.mdpackage.jsonversion updates
