pinmyblogs is an open-source blog bookmarking, read-later, and content organization application built with Go (Golang).
Save blog links, extract metadata, organize reading lists, and revisit content distraction-free — fast, secure, and self-hosted.
Ideal for developers, writers, and knowledge workers who want a simple, privacy-friendly alternative to hosted bookmark tools.
pinmyblogs is a lightweight self-hosted bookmark manager focused on:
- Saving blog URLs
- Extracting page metadata (title, favicon, etc.)
- Organizing blogs for later reading
- Running reliably in local or production environments
It is built with performance, simplicity, and security in mind.
- 🔖 Save blog & article URLs
- 🗂️ Organize reading lists
- 🕷️ Automatic metadata scraping
- ⚡ High-performance Go backend
- 🧩 Clean, extensible architecture
- 🏠 Self-hosted & privacy-friendly
- Language: Go (Golang)
- Web Framework: Gin
- Database: PostgreSQL or SQLite
- Frontend: HTML templates + Tailwind CSS
- Build Tooling: + Air (hot reload)
pinmyblogs supports multiple SQL databases:
- High concurrency
- Strong data integrity
- Crash-safe & scalable
- Zero-config
- File-based
- Best for local usage
Production → PostgreSQL
Development → SQLite
- Go (latest stable version)
- PostgreSQL (optional, for production)
- SQLite (optional, for development)
- Make (recommended)
git clone https://github.com/puni9869/pinmyblogs.git
cd pinmyblogsmake serverUses Air for automatic reload on code changes.
Run tests:
make testLint & static analysis:
make lint
make vet
make govulncheck.
├── cmd/ # Application entrypoints
├── handlers/ # HTTP handlers
├── middleware/ # CSP & security headers
├── models/ # Database models
├── pkg/ # Shared packages (scraping, utils)
├── templates/ # HTML templates
├── frontend/ # Static assets
├── types/ # Forms & shared types
└── Makefile # Dev & build commands
pinmyblogs includes production-grade security defaults:
- Strict Content Security Policy (CSP)
- Secure HTTP headers
- Clickjacking protection
- MIME-type sniffing prevention
Designed to be safe by default.
Contributions are welcome!
- Fork the repository
- Create a feature branch
- Add tests where applicable
- Submit a pull request
See issues for ideas and improvements.
Found a bug or have a feature idea?
👉 https://github.com/puni9869/pinmyblogs/issues
This project is licensed under the MIT License. See the LICENSE file for details.
- Open-source
- Self-hosted
- Developer-friendly
- Privacy-focused
- Written in Go
If you find this project useful, please ⭐ star the repository — it helps others discover it!