https://github.com/puni9869/pinmyblogs
Save your blogs and read it later.
https://github.com/puni9869/pinmyblogs
List: pinmyblogs
awesome-list bookmarker ecmascript golang javascript student url url-shortener urllib
Last synced: 5 months ago
JSON representation
Save your blogs and read it later.
- Host: GitHub
- URL: https://github.com/puni9869/pinmyblogs
- Owner: puni9869
- License: other
- Created: 2023-11-16T06:44:57.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2026-01-01T07:44:38.000Z (6 months ago)
- Last Synced: 2026-01-01T10:14:17.995Z (6 months ago)
- Topics: awesome-list, bookmarker, ecmascript, golang, javascript, student, url, url-shortener, urllib
- Language: Go
- Homepage: https://pinmyblogs.com
- Size: 619 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ๐ pinmyblogs โ Open-Source Blog Bookmarking & Read-Later App (Go)
**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.
---
## ๐ Project Status & Badges
[](https://github.com/puni9869/pinmyblogs/actions/workflows/go.yml)



---
## ๐ What is pinmyblogs?
**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.
---
## โจ Features
- ๐ Save blog & article URLs
- ๐๏ธ Organize reading lists
- ๐ท๏ธ Automatic metadata scraping
- โก High-performance Go backend
- ๐งฉ Clean, extensible architecture
- ๐ Self-hosted & privacy-friendly
---
## ๐งฑ Tech Stack
- **Language:** Go (Golang)
- **Web Framework:** Gin
- **Database:** PostgreSQL or SQLite
- **Frontend:** HTML templates + Tailwind CSS
- **Build Tooling:** + Air (hot reload)
---
## ๐๏ธ Database Support
pinmyblogs supports **multiple SQL databases**:
### โ
PostgreSQL (Recommended for Production)
- High concurrency
- Strong data integrity
- Crash-safe & scalable
### โ
SQLite (Development & Testing)
- Zero-config
- File-based
- Best for local usage
```text
Production โ PostgreSQL
Development โ SQLite
````
---
## ๐ Getting Started
### ๐งฐ Prerequisites
* Go (latest stable version)
* PostgreSQL (optional, for production)
* SQLite (optional, for development)
* Make (recommended)
---
### ๐ฅ Installation
```bash
git clone https://github.com/puni9869/pinmyblogs.git
cd pinmyblogs
```
---
### โ๏ธ Environment Configuration
### โถ๏ธ Run the Application
```bash
make server
```
Uses **Air** for automatic reload on code changes.
---
## ๐งช Testing & Quality Checks
Run tests:
```bash
make test
```
Lint & static analysis:
```bash
make lint
make vet
make govulncheck
```
---
## ๐๏ธ Project Structure
```
.
โโโ 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
```
---
## ๐ Security
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.
---
## ๐ค Contributing
Contributions are welcome!
1. Fork the repository
2. Create a feature branch
3. Add tests where applicable
4. Submit a pull request
See issues for ideas and improvements.
---
## ๐ Issues & Feature Requests
Found a bug or have a feature idea?
๐ [https://github.com/puni9869/pinmyblogs/issues](https://github.com/puni9869/pinmyblogs/issues)
---
## ๐ License
This project is licensed under the **MIT License**.
See the [LICENSE](LICENSE) file for details.
---
## โญ Why pinmyblogs?
* 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!