realworld-apps/realworld
"The mother of all demo apps" — Exemplary fullstack Medium.com clone powered by React, Angular, Node, Django, and many more
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
Frameworks
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.
End-to-end tests were refined to be more flexible and better organized across app types.
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.
Dependencies and code review
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