Go-Notion Contact Bridge (Internal Project: Client Ping) is an efficient third-party API service designed to handle contact forms on portfolio or static websites. This service bridges frontend submissions directly to a Notion database asynchronously using a robust concurrency system.
Built to solve a simple problem: handle contact forms without relying on paid services or slowing down the frontend.
POST /api/contactSubmit a contact message.
Request Body
{
"name": "Wafley",
"email": "wafley@example.com",
"message": "Hello, I'm interested in collaborating on a Go project!"
}
Responses
202 Accepted → queued successfully422 Unprocessable Entity → missing fields400 Bad Request → invalid JSON202)No blocking. No waiting. No degraded UX.
.
├── cmd/api/ # Entry point
├── internal/
│ ├── app/ # Worker & dispatcher logic
│ ├── handler/ # HTTP layer & validation
│ ├── model/ # Data structures
│ └── service/ # Notion integration
└── logs/ # Logs & error tracking
git clone https://github.com/wafley/client-ping.git
cd client-ping
Copy .env.example to .env and fill in your credentials::
PORT=3030
NOTION_TOKEN=your_secret_token
NOTION_DATABASE_ID=your_db_id
Run:
go run cmd/api/main.go
go test -v -cover ./...
~90% coverage including concurrency and external API mocking.
Created with ❤️ by wafley