Lynx is an open-source, self-hosted link manager that helps you gather all your digital touchpoints in a single page, with secure authentication and a fully customizable design.
- Lynx
- π Quick Start
- π Changelog
- π To-Do / Next Steps
- π¨βπ» Developed With
- π License
- π Try Lynx Demo on Railway
- Admin Panel: https://lynx-demo.up.railway.app/admin
- Login:
- User:
admin
- Password:
demo123
(the password can't be changed)
- User:
The database resets automatically every 15 minutes.
- π Customizable β themes, colors, fonts, and layouts
- π Secure Authentication β bcryptjs password hashing + JWT tokens
- π Admin Panel β manage links, themes, profile, and settings
- π Standalone β no Firebase, Supabase, or external DBs
- π Deploy Anywhere β Render, Railway, Docker, Linux Server, Heroku, GCP, DigitalOcean, Fly.io
- π± Mobile Responsive β optimized for all devices
- π SQLite Database β self-contained, file-based storage
- Password Hashing: bcryptjs (12 salt rounds)
- JWT Authentication: signed tokens (7-day expiry)
- Database Safety: parameterized queries against SQLite
- Session Security: cookies set HttpOnly and SameSite
Credentials:
User: admin
Password: ChangeMe123!
(prerequisite: Node.js 18+)
git clone https://github.com/paoloronco/Lynx.git
cd Lynx
npm install
npm run build
cd server
npm install
cd ..
npm run start
Public β http://localhost:5173
Admin β http://localhost:5173/admin
You can deploy Lynx on Railway in a few steps:
- Go to Railway Dashboard β New β GitHub Repo
- Connect GitHub repo (Lynx)
- Set the following commands:
- Build Command
npm install && npm run build && cd server && npm install
- Start Command
npm run start
- Build Command
- Click Create and wait for the deployment β¨
- Add a public domain in the settings
You can deploy Lynx on Render in a few steps:
- Fork this repo (recommended)
- Go to Render Dashboard β New β Web Service
- Connect GitHub repo (Lynx)
- Set the following commands:
- Build Command
npm install && npm run build && cd server && npm install
- Start Command
npm run start
- Build Command
- Click Create Web Service and wait for the deployment β¨
Your app will be available at a URL like: https://your-app.onrender.com
- DigitalOcean App Platform
- Fly.io (Docker)
- Heroku (Container)
- Google Cloud Run (Container)
- Vercel (Node.js / Static)
- Netlify (Static + Functions)
- AWS Elastic Beanstalk
- Azure App Service
- Koyeb (Serverless Containers)
- CapRover (Self-hosted PaaS)
- Dokku (Self-hosted PaaS)
- Coolify (Self-hosted PaaS)
- Northflank
- Qovery
- Cyclic.sh
- Glitch
- Replit
- Stormkit
- Appwrite (Functions/Containers)
- Supabase (Edge Functions)
- Interface title updated to: βLynx - Your personal links hubβ
- Profile
- Added Show/Hide profile picture toggle (persisted in DB)
- Bio now supports line breaks (
whitespace-pre-line
) - Empty bio is automatically hidden (no blank space left)
- Social links work properly β hidden if empty
- Links
- Text color is now applied consistently across the entire card (title, description, URL)
- Support for emoji or PNG images next to each link
- Improved Text Card rendering: each link is displayed on two lines
β Name on top, URL below (indented with horizontal scroll for long URLs)
- Theme
- Removed duplicate βContentβ tab (was a duplicate of name + bio)
- Export/Import now correctly saves and restores themes
- UI
- Footer updated to:
Powered by Lynx | Lynx - Your personal links hub
- Footer updated to:
- Demo is fully functional, but password change is disabled
- Profile
- Option to resize (enlarge/reduce) the profile image
- Option to choose the placement of profile elements (name, bio, avatar, etc.)
- Links
- Ability to center text and customize its alignment within cards
- Ability to export/import Links & Profile as Json
- Themes
- Further improvements to theme usability and customization
- Enhanced personalization options for layouts, colors, and styles
- Code
- Code cleaning & refactoring: removing unnecessary parts, obsolete code, and unused dependencies (e.g., leftover Supabase or Firebase integrations).
π¨βπ» Developed With
- ChatGPT
- Claude
- Lovable
π License
MIT License
Copyright (c) 2025 Paolo Ronco
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.