FrogLink is a link management system that gives permanent, stable URLs for dynamic services like ngrok tunnels, local development servers, and other temporary endpoints.
Basically: You get a pretty link. It points to your ugly ngrok URL. When ngrok changes, you update it. No one notices. Magic. You're welcome.
- Permanent Links – Generate stable URLs that don't change. Revolutionary, I know.
- CLI Agent – Auto-starts ngrok, detects URL changes, sends heartbeats. Like a digital heartbeat. Creepy.
- Web Dashboard – User-friendly link management with statistics. Because numbers make you feel important.
- REST API – Full CRUD operations with token authentication. For the nerds.
- Community Links – Share your links with the world (or don't, we're not your mom).
- Comments & Replies – Discuss links with the community. Reply to specific comments. Because everyone has an opinion.
- Category System – Organize your links. Or don't. Chaos is also an option.
- Public/Private Visibility – Share with everyone or keep it to yourself. Your secret is safe with us.
- Link Details Side Panel – Click any link to open a detailed side panel with full information, comments, and quick actions.
- Live Comment Updates – Comments appear instantly without page reload. Magic. Or JavaScript. Same thing.
- Sarcasm Engine – Because every good tool needs personality. And we have plenty.
- Active Link Highlighting – Know where you are. Or don't. We'll show you anyway.
- Link Status Checking – See if a link is online or offline. (We check. Sometimes it works.)
- User Attribution – See who shared what. (Probably a bot. Or not. Who knows?)
- Responsive Design – Works on desktop, tablet, and mobile. Because you're always on something.
- Category Filtering – Filter links by category. Because finding what you want is overrated.
- Search Functionality – Find links by URL or category. Good luck. You'll need it.
"Wow, this looks professional" – Someone who hasn't seen the code yet
Numbers. Graphs. Stuff. You're basically a data analyst now.
Create. Edit. Delete. Cry. The cycle of life.
Share with the world. Or don't. We're not your mom.
Click a link. Get a panel. Full details. Comments. Actions. It's like a pop-up. But classier.
"First" – Every comment section ever.
Because waiting is fun. Especially with frogs.
This is a legitimate tool. Not a C2. Not a RAT. Not a Trojan horse. I swear. Mostly.
It's for managing links. That's it. Don't use it for illegal stuff. I don't have time for that. I have coffee to drink and code to break.
- Permanent Links – Generate stable URLs that don't change. Revolutionary, I know.
- CLI Agent – Auto-starts ngrok, detects URL changes, sends heartbeats. Like a digital heartbeat. Creepy.
- Web Dashboard – User-friendly link management with statistics. Because numbers make you feel important.
- REST API – Full CRUD operations with token authentication. For the nerds.
- Public Links – Share your links with the community. Because sharing is caring.
- Comments & Replies – Comment on links and reply to specific comments. Full thread support.
- Side Panel – Click any public link to open a detailed side panel with link info, comments, and quick actions.
- Real-time Updates – Comments appear instantly. No page reload needed. We're fancy like that.
- Category Filtering – Filter links by category. Because finding what you want is overrated.
- Link Status – See if a link is online or offline. (We check. Sometimes it works.)
- User Attribution – See who shared what. (Probably a bot. Or not. Who knows?)
- Active Link Highlighting – Green active states on all navigation links. So you know where you are.
- Responsive Design – Works on desktop, tablet, and mobile. Because you're always on something.
- Sarcasm Integration – Because every good tool needs personality.
- Loading Screen – With frogs. Because why not.
- Toast Notifications – Because you deserve feedback. Even if it's sarcastic.
- CLI agent starts ngrok and monitors URL
- URL changes detected -> backend updated automatically
- Your permanent link always points to the right place
- Users never see the ugly URL
- Optional: Share links publicly with the community
- Click any public link to open the side panel
- View link details, status, and metadata
- Comment on links or reply to other comments
- Comments appear instantly (because we're not savages)
- Filter links by category. Or don't. We're not your mom.
It's like magic. But with more code. And less rabbits.
git clone https://github.com/yourusername/linkfroge.git
cd linkfrogepython3 -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activatepip install -r requirements.txtCreate .env file:
SECRET_KEY=your-secret-key-here
DEBUG=True
BASE_URL=http://localhost:5000
DATABASE_URL=sqlite:///linkfroge.db
# SMTP Configuration (for email features)
SMTP_LINK=smtp.gmail.com
SMTP_PORT=587
EMAIL=your-email@gmail.com
EMAIL_PASSWORD=your-app-passwordcd webApp
python -c "from app import app, db; app.app_context().push(); db.create_all()"python app.pyOpen http://localhost:5000 in your browser.
cd desktop_app
python linkFroge.py --port 5000 --backend https://yourdomain.com/api/service/update --service-id YOUR_ID --token YOUR_TOKEN- Register an account
- Log in
- Go to "My Links"
- Click "Add New Link"
- Fill in the details
- Choose visibility (Public/Private)
- Select a category
- Click "Add Link"
Congratulations! You're now a link management expert. Probably.
| Option | What It Does | Default |
|---|---|---|
--port |
Local port to expose | 5000 |
--backend |
Backend API URL | https://yourdomain.com/api/service/update |
--service-id |
Unique service identifier | abc123 |
--token |
Authentication token | your_secure_token |
--verbose |
Enable verbose logging | False |
Pro tip: Don't lose your token. I'm not making you another one.
| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
| GET | /api/links |
Get all your links | Yes (Token) |
| POST | /api/links |
Create a new link | Yes (Token) |
| PUT | /api/links/{slug} |
Update a link | Yes (Token) |
| DELETE | /api/links/{slug} |
Delete a link | Yes (Token) |
| GET | /api/links/{slug}/stats |
Get link statistics | Yes (Token) |
| POST | /api/comment |
Post a comment | Yes (Session) |
| POST | /api/comment/reply/{id} |
Reply to a comment | Yes (Session) |
| GET | /api/comments/{link_id} |
Get comments for a link | No |
| GET | /{slug} |
Redirect to original URL | No |
| GET | /public_links |
View public links | No |
| GET | /is_the_like_alive |
Check link status | No |
- Backend: Flask, SQLAlchemy – because reinventing the wheel is for amateurs
- Frontend: TailwindCSS, Font Awesome – because looking good matters
- Database: SQLite (configurable for PostgreSQL) – where data goes to sleep
- CLI: Python, ngrok – the magic behind the curtain
- Email: SMTP with HTML templates – because notifications matter
LinkFroge/
├── desktop_app/ # CLI agent
│ ├── linkFroge.py # The main event
│ └── phishing/ # (Don't ask. Seriously.)
│
├── webApp/ # Flask web app
│ ├── app.py # Start here
│ ├── api/ # REST API (the talking part)
│ ├── database/ # Models & DB (where data sleeps)
│ ├── utility/ # Helpers (the helpful bits)
│ │ ├── email_temp.py # Email templates (fancy)
│ │ ├── setting.py # Config (the boring but important part)
│ │ ├── token_auth.py # Token auth (the guard dog)
│ │ └── link_manager.py # Link logic (the brain)
│ ├── view/ # Routes (the actual bits)
│ └── templates/ # HTML files (the pretty bits)
│
├── templates/ # More HTML files (we like options)
├── screen_shot/ # Screenshots (you're looking at them)
├── requirements.txt # Things you need
├── .env.example # Copy this. Don't skip it.
└── README.md # You're reading this
- Public/Private Links – Share with the world or keep it secret
- Category System – Organize your links
- Community Links Page – See what others are sharing
- Comments Section – Discuss links with the community
- Reply System – Reply to specific comments
- Side Panel – Detailed link view with comments
- Real-time Comment Updates – No page reload needed
- Sarcastic UI – Because serious tools are boring
- Active Link Highlighting – Know where you are
- User Ratings – Rate links (coming soon)
- Comment Backend – Persistent comments (coming soon)
- API Rate Limiting – Because too many requests are annoying
- Dark Mode – For the night owls
- Link Analytics – See who clicked what (creepy, but useful)
- Multiple ngrok Support – More tunnels, more problems
- Docker Support – Containerize all the things
Contributions are welcome! Here's how:
- Fork the repository
- Create a feature branch:
git checkout -b feature-awesome - Make your changes
- Test thoroughly (we're not your QA team)
- Submit a pull request
- Wait for approval (or rejection)
- Cry if rejected. Celebrate if accepted.
Rules:
- Don't break things. Or do. I'm not your mom.
- Add sarcasm. It's required.
- Comment your code. Future you will thank you.
- Be a decent human. It's not that hard.
This project is licensed under the MIT License – see the LICENSE file for details.
Basically: Do whatever you want. Just don't blame us if it breaks.
- Flask – For not being Django
- SQLAlchemy – For making databases less painful
- TailwindCSS – For making things look good with minimal effort
- Font Awesome – For the pretty icons
- ngrok – For existing
- Coffee – For existing
- Sarcasm – For making this all possible
- GitHub Issues: Report a bug
- Email: your.email@example.com
- Twitter: @yourhandle
Built with spite. Powered by sarcasm. Sustained by coffee.
No refunds. No regrets. No sleep.
Go outside. Touch grass. Or don't. I'm not your mom.
FrogLink – Because ngrok URLs are ugly and you know it.