err0r500/go-realworld-clean
75.1
Strong · 21 September 2026
2k
lines of production code
Go
primary language
4
measurements over time
What this system is
This system is a Go-based REST API implementation of the RealWorld specification, providing endpoints for user authentication, article management, and social interactions. It supports core features such as creating and retrieving articles, managing comments, and handling article favorites and tags. The architecture utilizes an in-memory storage backend with a clean, modular design that separates domain models, use-case logic, and infrastructure concerns.
Features
Article comments, favorites, and tags endpoints implemented
The API now supports creating, retrieving, and deleting comments on articles, as well as adding and removing article favorites. A new endpoint allows fetching available tags. These features are backed by in-memory storage implementations and include corresponding integration tests to verify correct HTTP status codes and JSON responses.
implem · high confidence
Behavioural changes
Migrate from dep to Go modules and add comment support
The project has switched from the legacy dep vendor tool to native Go modules, removing Gopkg.lock and Gopkg.toml and updating the build and test scripts (Makefile, .travis.yml) to use GO111MODULE=on and a new testCoverage.sh script. Additionally, the application now supports article comments by introducing new in-memory storage implementations for comments and tags, a new slugger, and an article validator, all wired into the main router via the HandlerConstructor.
(repo-wide) · high confidence
Refactored Article and User domain models with new update and filter capabilities
The Article model now tracks users who favorited an article via a new FavoritedBy slice instead of a simple boolean, and supports filtering by tag, author, or favorited status. Article updates are now handled through a functional options pattern (UpdateArticle) allowing selective updates to title, description, or body. The User model has been expanded to include CreatedAt and UpdatedAt timestamps, a list of favorited articles, and methods to update follow relationships. Profile-specific tags and favorite usecases have been removed from this domain layer, consolidating the model structure.
domain · high confidence
Refactored use-case layer with granular interfaces and enriched article metadata
The use-case (uc) package has been restructured to replace the monolithic interactor with a modular Handler interface composed of distinct logic interfaces (ProfileLogic, UserLogic, ArticlesLogic, ArticleLogic, CommentsLogic, FavoritesLogic, TagsLogic) and a HandlerConstructor that enforces dependency injection for components like UserRW, ArticleRW, CommentRW, and TagsRW. This refactoring introduces several behavioral changes: article retrieval and modification operations (Get, Post, Put, Delete) now return the requesting user's profile alongside the article, enabling clients to display follow/favorite status; the ArticlesFeed and GetArticles endpoints now include the requesting user in their response; profile viewing distinguishes between authenticated and anonymous requests by returning a follow boolean; and comment creation/deletion now synchronously updates the parent article's comment list. Additionally, the tag and favorite management capabilities have been implemented, and error handling has been standardized with specific error variables like ErrAlreadyInUse and ErrNotFound.
uc · high confidence
Updated CORS configuration and added test population flag
The server's CORS middleware now explicitly constructs the allowed HTTP methods list using standard library constants (GET, PUT, POST, OPTIONS, PATCH) instead of a hardcoded string, ensuring consistency. Additionally, a new \--populate\ boolean flag has been added to the database configuration, allowing users to populate the database for integration testing purposes, replacing previous flags related to BoltDB path and delta merging.
infra · high confidence
Updated test data fixtures and added JSON schema definitions
The test data package now includes a new \jsonShemas.go\ file containing JSON Schema definitions for User, Profile, Article, and Comment entities, enabling validation of API responses against these structures. Existing test fixtures in \example.go\ have been updated: user credentials and identifiers were changed (e.g., 'rick' to '[e-mail redacted]'), the \Article\ model's \Favorited\ boolean field was replaced with a \FavoritedBy\ slice of users, and comment IDs were adjusted. Additionally, build tags restricting compilation were removed from \example.go\.
testData · high confidence
Dependencies
Migrated to Go Modules
The project has switched to Go modules, introducing go.mod and go.sum files to manage dependencies. This change establishes the module path as github.com/err0r500/go-realworld-clean and sets the minimum Go version to 1.13, replacing the previous dependency management approach with a standardized module system.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Baseline
- First survey — no prior run to compare against. CAI 75.
Lenses
- Code Health 99
- Architecture 98
- Maturity 69
- Readiness 72
- Security 83
Changes since last survey
- 47 commits — 42 feature/other, 5 fixes
By area
- implem/gin.server — 17 commits
- (root) — 9 commits
- implem/mock.uc — 5 commits
- domain/article.go — 3 commits
- .github/dependabot.yml — 2 commits
- implem/json.formatter — 2 commits
- (repo) — 1 commit
- .github/FUNDING.yml — 1 commit
- domain/user.go — 1 commit
- domain/user_test.go — 1 commit
- implem/logrus.logger — 1 commit
- infra/gin.go — 1 commit
- uc/article.go — 1 commit
- uc/articlesFeed_test.go — 1 commit
- uc/commentsDelete.go — 1 commit
Notable commits
- fix: fix article.Favorite field
- fix: fix json response time format
- fix: fix logrus.logger
- fix: fix mock builder
- fix: fix null comments & missing User.CreatedAt & User.UpdatedAt
- change: 100% coverage on domain
- change: 100% coverage on domain
- change: 100% coverage on uc articles
- change: 100% coverage on usecases comments & favorites
- change: Add GitHub sponsor username to FUNDING.yml
- change: Create .github/dependabot.yml (#9)
- change: Merge pull request #2 from sarathsp06/patch-1
- change: Revise README with new branding and project details
- change: Update dependabot.yml (#10)
- change: Update gin.go
- change: add Comment RW
- change: add a middleware for error handling
- change: add comment usecases
- change: add coverage
- change: add fails testing in usecases uc/userEdit
- …and 27 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
err0r500/go-realworld-clean was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 21 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 137f16f344f03dc4e3c8b5096b7b5593b234f508 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-28e75b8e3254.