Learning project · 2026

GophKeeper

A team project for learning authenticated client-server storage, binary objects and offline-to-server synchronization in Go.

Status
Completed learning scope
Role
Go developer in a team
Stack
Go, gRPC, PostgreSQL, MinIO
Client
CLI with local SQLite
GophKeeper learning-project architecture with server, CLI and storage layers

Learning goal

Explore the difficult seams, not only CRUD

The project combines an authenticated network boundary, structured and blob storage, a local client database, uploads and synchronization. That made failure modes — duplicate operations, revisions and conflicts — part of the design exercise.

Transport

gRPC over TLS with JWT authentication between the Go CLI and server.

Split storage

PostgreSQL stores structured records; MinIO stores binary objects.

Local state

SQLite gives the CLI a durable local representation for sync.

Consistency tools

Revision logs, idempotent operation IDs and optimistic conflicts make retry behavior explicit.

Architecture

Local state synchronized through one authenticated API

Go CLI with local SQLite synchronizes through a TLS gRPC server to PostgreSQL and MinIO
Metadata and blobs have different stores, while one service owns authentication and synchronization rules.

Result & limits

Completed and reproducibly tested as a learning project

The public repository contains server and CLI flows, upload/download, revision-based synchronization, conflict handling and integration coverage. The Go test suite passed during the August 2026 review. This is not presented as a commercial password manager or an independently security-audited product.

The value of this case is the architecture and failure-handling practice, not a claim that TLS and JWT alone make a production secrets platform.

Next project

3D Printing CRM

An active product built around a real request-to-production workflow.

Read case study →