← All reportsPublic report

realworld-apps/realworld

"The mother of all demo apps" — Exemplary fullstack Medium.com clone powered by React, Angular, Node, Django, and many more

84k stars TypeScript View on GitHubprofiled 11d ago
Try GitZoid
3PRs this week
1Contributors
0Deps scanned
0Issues found
01 · Repo overview

How realworld is put together

This repository is the canonical RealWorld specification project: it defines the shared Medium.com-clone API contract (specs/api/openapi.yml) and provides executable conformance test suites that any frontend/backend implementation must pass. It contains no application server code itself; instead it ships an HTTP-level test suite written in Hurl (specs/api/hurl/*.hurl) plus a generated Bruno collection (specs/api/bruno/) produced by a Node/Bun converter script, along with runner shell scripts, a shared CSS theme for frontend implementations, and brand/media assets. Data flow is: Hurl files act as the source-of-truth behavioral spec, hurl-to-bruno.js transpiles them into Bruno requests/asserts, and runners execute either suite against a target implementation's API.

Languages

JavaScriptShellPythonYAMLCSS

Frameworks

Hurl (HTTP test DSL)Bruno (API test collection format)

Major components

API specification

Defines the canonical RealWorld REST API contract in OpenAPI format that all implementations adhere to.

Hurl conformance suite

Resource-grouped Hurl files (auth, articles, comments, profiles, favorites, feed, tags, pagination, errors_*) exercising positive and negative API behavior.

Bruno collection

Generated Bruno test collection mirroring the Hurl suite, organized into numbered folders per resource with setup/verify/cleanup request chains.

Hurl-to-Bruno converter

Parses Hurl files and transpiles requests, captures, jsonpath asserts, and template variables into .bru files, with a --check mode to detect drift.

Test runners

Shell entrypoints (run-api-tests-hurl.sh, run-api-tests-bruno.sh, hurl/run-hurl-tests.sh) that execute the suites against a target API.

Shared frontend theme

assets/theme/styles.css provides the common Conduit UI/UX styling for all frontend implementations.

Asset generation

Python generator (generate_assets.py + logo_parts.json) produces logos and media assets under assets/media/.

Project documentation

README, CONTRIBUTING, CLAUDE.md, and LICENSE describing how to create and validate new implementations.

The past two weeks focused almost entirely on improving the project's end-to-end test suite, which checks that the app works correctly across different implementations. Changes made tests more flexible about how pagination is built, clarified how different app styles (spa, ssr, fullstack) are tested, and fixed a test that could miss a bug where a user's cleared bio wasn't actually saved as empty.

Week by week

2026-08-10End-to-end tests were refined to be more flexible and better organized across app types.latest2 changes

Chore

Pagination tests now accept links or buttons

Tests for page navigation were updated to look for a shared 'page-link' marker instead of assuming a button, so implementations can use either a button or a link.

Chore

Clearer separation of spa, ssr, and fullstack tests

The end-to-end test suite was reorganized to explicitly distinguish between single-page, server-rendered, and fullstack versions of the app.

2026-08-03A test fix ensured that clearing a user's bio is verified as truly empty.1 change

Fix

Stricter check for cleared user bios

An end-to-end test was corrected so it confirms an erased bio actually renders as an empty string, rather than just checking that old text isn't shown.

03 · Security check

Dependencies and code review

0 dependencies scanned

Dependency advisories

Security Watch

No known advisories across 0 scanned dependencies.

No known advisories in the scanned dependencies.

Code review

No concrete code-level issues confirmed.

Get this report every week for your repos.

GitZoid learns each repo, reports what changed, and flags what needs attention. One flat price for the whole team.

$19 a month, flat · First 10 outputs free · No card required