Skip to content

smaller README#6

Open
pthmas wants to merge 1 commit intomainfrom
pierrick/docs1
Open

smaller README#6
pthmas wants to merge 1 commit intomainfrom
pierrick/docs1

Conversation

@pthmas
Copy link
Collaborator

@pthmas pthmas commented Feb 19, 2026

Overview

Made README Smaller and moved some of the information to the docs.

Summary by CodeRabbit

  • Documentation
    • Condensed README into a concise Quick Start, Prerequisites, and streamlined local setup.
    • Simplified Docker/local development flow to a single, unified startup process.
    • Consolidated and simplified environment variable guidance with updated defaults and names.
    • Added a dedicated API reference and a new architecture overview with diagrams and project layout.

@pthmas pthmas requested a review from tac0turtle February 19, 2026 16:36
@gemini-code-assist
Copy link

Summary of Changes

Hello @pthmas, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request focuses on enhancing the clarity and conciseness of the project's main README.md file. By relocating verbose sections to dedicated documentation, the README now serves as a more focused entry point, guiding users to comprehensive resources for in-depth information on the project's API, architecture, and other specifics.

Highlights

  • README Condensation: The README.md file has been significantly reduced in size by removing extensive details about project features, architecture, API reference, database schema, and development instructions.
  • Documentation Externalization: Detailed information previously embedded in the README has been moved to dedicated documentation files (e.g., docs/API.md, docs/ARCHITECTURE.md, docs/PRD.md), with direct links provided in a new 'Documentation' section.
  • Simplified Setup Instructions: The 'Running with Docker' and 'Local Development' sections have been streamlined for conciseness and clarity, making it easier to get started with the project.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • README.md
    • Reduced the introductory overview and removed the architecture diagram.
    • Simplified the 'Running with Docker' instructions.
    • Streamlined the 'Local Development' instructions for backend services.
    • Condensed the 'Configuration' section and removed numerous environment variables.
    • Removed comprehensive sections including 'API Reference', 'Database Schema', 'Development', and 'Reindexing'.
    • Introduced a new 'Documentation' section with links to external API, Architecture, and Product Requirements documents.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@coderabbitai
Copy link

coderabbitai bot commented Feb 19, 2026

📝 Walkthrough

Walkthrough

README.md was significantly condensed (overview, architecture, API, schema removed) and quick-start/local dev flows simplified to an .env + single docker-compose approach. New documentation files docs/API.md and docs/ARCHITECTURE.md were added containing API reference and architecture details respectively.

Changes

Cohort / File(s) Summary
README (summary + flow changes)
README.md
Removed extended Overview, Architecture, API reference, DB schema, and detailed env/API tables. Reworked Quick Start to use .env + single docker-compose up flow; consolidated local dev instructions and trimmed reindex/build details.
API reference (new)
docs/API.md
Added full public API documentation: base URL, pagination, endpoints (status, blocks, txs, addresses, ERC‑20, NFT, events, verification, proxy, etherscan-compatible endpoints), params and example shapes.
Architecture doc (new)
docs/ARCHITECTURE.md
Added project architecture overview and diagrams: system components (Indexer, API server, Postgres, Ethereum node), crate layout, frontend stack, and docker-compose mapping.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰 I hopped through lines and trimmed the frill,

Docs now neat, the steps are shrill—
Quick start set with env in hand,
New APIs and maps across the land,
A tidy burrow, ready to stand.

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main change: README.md was significantly reduced (239 lines removed) with content moved to separate documentation files (API.md and ARCHITECTURE.md).
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch pierrick/docs1

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

The pull request effectively reduces the size of the README by moving detailed information to the docs/ directory. The changes improve the conciseness of the main README, making it easier for new users to get started. The updated instructions for running with Docker and local development are clearer. I've provided some feedback on minor inconsistencies and potential improvements for clarity in the README.

Comment on lines +15 to +20
```bash
cp .env.example .env
# Edit .env with your RPC endpoint

```bash
docker-compose up -d
```
docker-compose up -d
```

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The instructions for running with Docker are now a single code block. This is an improvement for conciseness. However, the comment # Edit .env with your RPC endpoint is a bit vague. It might be helpful to explicitly state which variable needs to be edited, e.g., RPC_URL.

Suggested change
```bash
cp .env.example .env
# Edit .env with your RPC endpoint
```bash
docker-compose up -d
```
docker-compose up -d
```
cp .env.example .env
# Edit RPC_URL in .env with your RPC endpoint
docker-compose up -d

Comment on lines +38 to +40
# Run services
cargo run --bin atlas-indexer

# In another terminal, run the API server
cargo run --bin atlas-api
cargo run --bin atlas-api # in another terminal

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The comment # in another terminal is helpful, but it might be clearer to separate the commands into two distinct steps, similar to how it was presented before, or at least ensure the comment is very prominent. Running two cargo run commands in the same terminal will not work as intended.

Suggested change
# Run services
cargo run --bin atlas-indexer
# In another terminal, run the API server
cargo run --bin atlas-api
cargo run --bin atlas-api # in another terminal
# Run the indexer
cargo run --bin atlas-indexer
# In another terminal, run the API server
cargo run --bin atlas-api

# Option 2: Truncate tables manually
psql $DATABASE_URL -c "TRUNCATE blocks, transactions, addresses, nft_contracts, nft_tokens, nft_transfers, indexer_state CASCADE;"
```
Copy `.env.example` to `.env` and set your RPC endpoint. Available options:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The description for DATABASE_URL states "Set in docker-compose". While true for the Docker setup, for local development, it's set via export DATABASE_URL=.... This might be confusing. Consider clarifying that it's set in docker-compose.yml for Docker deployments and needs to be exported for local development, or simplify the description to reflect its purpose.

Suggested change
Copy `.env.example` to `.env` and set your RPC endpoint. Available options:
`DATABASE_URL` | PostgreSQL connection string | `postgres://atlas:atlas@postgres/atlas` (Docker) or `postgres://atlas:atlas@localhost/atlas` (Local)

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@README.md`:
- Line 19: Replace deprecated hyphenated docker-compose commands in README:
change occurrences of "docker-compose up -d" and "docker-compose up -d postgres"
to the v2 form "docker compose up -d" (and "docker compose up -d postgres") so
modern Docker installations and GitHub runners can find the command; update both
the general example line and the Local Development postgres line accordingly.
- Line 19: The README uses the deprecated docker-compose v1 commands
("docker-compose up -d" and "docker-compose up -d postgres"); update those
occurrences to the Docker CLI v2 form ("docker compose up -d" and "docker
compose up -d postgres") and add a brief note that the v1 standalone binary is
EOL and users on recent Docker installs should use the integrated "docker
compose" command (or install the v1 plugin if they explicitly need it).
- Around line 67-71: The README contains broken links to docs/API.md and
docs/ARCHITECTURE.md; fix by either adding the missing files with appropriate
content (create docs/API.md and docs/ARCHITECTURE.md) or by removing/updating
the two link entries in the "Documentation" section so they no longer reference
docs/API.md and docs/ARCHITECTURE.md (leave docs/PRD.md intact); ensure the
change targets the lines containing the links "- [API Reference](docs/API.md)"
and "- [Architecture](docs/ARCHITECTURE.md)" in the README.
- Around line 67-71: The README currently links to docs/API.md and
docs/ARCHITECTURE.md which do not exist; either add those missing documentation
files (create API.md and ARCHITECTURE.md with the appropriate content) or
remove/update the corresponding links under the "## Documentation" section in
README.md so only existing docs (e.g., docs/PRD.md) are referenced; ensure the
link text and filenames in the "API Reference" and "Architecture" list items
match the created filenames exactly.

```bash
docker-compose up -d
```
docker-compose up -d
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Replace deprecated docker-compose (v1) with docker compose (v2)

Docker Compose V1 was deprecated after June 2023 and has been removed from all future Docker Desktop versions. GitHub workflow runners also no longer ship docker-compose, resulting in Error: spawn docker-compose ENOENT. Users on any modern Docker install will hit a command not found error with the hyphenated form.

📝 Suggested update
-docker-compose up -d
+docker compose up -d

The unchanged docker-compose up -d postgres on line 32 of the Local Development section should be updated identically.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
docker-compose up -d
docker compose up -d
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` at line 19, Replace deprecated hyphenated docker-compose commands
in README: change occurrences of "docker-compose up -d" and "docker-compose up
-d postgres" to the v2 form "docker compose up -d" (and "docker compose up -d
postgres") so modern Docker installations and GitHub runners can find the
command; update both the general example line and the Local Development postgres
line accordingly.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🌐 Web query:

docker-compose v1 deprecation july 2023 end of life

💡 Result:

Docker Compose v1 (the standalone docker-compose Python-based tool) was ended/retired in mid-2023:

  • Support ended after June 2023 (Docker stated Compose v1 support would no longer be provided after June 2023 and it would be removed from future Docker Desktop versions). [1]
  • From July 2023, Compose v1 stopped receiving updates (including security/bugfix updates) and it’s not available in new Docker Desktop releases. [2]
  • Downstream impact example: GitHub-hosted runners noted Compose v1 was deprecated as of July 2023 and removed it from runner images on July 9, 2024 (forcing migration to docker compose / Compose v2). [3]

Practical takeaway: treat July 2023 as the point when v1 became effectively EOL (no updates), with Docker Desktop bundling ending around June 2023, and migrate to Compose v2 (docker compose). [1][2]

Sources:
[1] Docker blog (Jan 31, 2023) – “Docker Compose: What’s New, What’s Changing, What’s Next”
[2] Docker Docs – “Migrate from Docker Compose v1 to v2”
[3] GitHub Changelog (Apr 10, 2024) – Compose v1 deprecation/removal on hosted runners


docker-compose (v1) is deprecated — prefer docker compose (v2)

docker-compose as a standalone binary reached end-of-life in July 2023 and has been removed from Docker Desktop. Users on recent Docker installs will hit a command not found error.

📝 Suggested update
-docker-compose up -d
+docker compose up -d

The same applies to the unchanged docker-compose up -d postgres on line 32 of the Local Development section.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
docker-compose up -d
docker compose up -d
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` at line 19, The README uses the deprecated docker-compose v1
commands ("docker-compose up -d" and "docker-compose up -d postgres"); update
those occurrences to the Docker CLI v2 form ("docker compose up -d" and "docker
compose up -d postgres") and add a brief note that the v1 standalone binary is
EOL and users on recent Docker installs should use the integrated "docker
compose" command (or install the v1 plugin if they explicitly need it).

Comment on lines +67 to +71
## Documentation

- [API Reference](docs/API.md)
- [Architecture](docs/ARCHITECTURE.md)
- [Product Requirements](docs/PRD.md)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify that the documentation files referenced in the README exist

for f in docs/API.md docs/ARCHITECTURE.md docs/PRD.md; do
  if [ -f "$f" ]; then
    echo "EXISTS: $f"
  else
    echo "MISSING: $f"
  fi
done

Repository: evstack/atlas

Length of output: 127


Two documentation links point to non-existent files

The links to docs/API.md and docs/ARCHITECTURE.md will result in 404 errors. Either create these files or remove the broken links. The docs/PRD.md link is valid.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` around lines 67 - 71, The README contains broken links to
docs/API.md and docs/ARCHITECTURE.md; fix by either adding the missing files
with appropriate content (create docs/API.md and docs/ARCHITECTURE.md) or by
removing/updating the two link entries in the "Documentation" section so they no
longer reference docs/API.md and docs/ARCHITECTURE.md (leave docs/PRD.md
intact); ensure the change targets the lines containing the links "- [API
Reference](docs/API.md)" and "- [Architecture](docs/ARCHITECTURE.md)" in the
README.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify that the documentation files referenced in the README exist.

for f in docs/API.md docs/ARCHITECTURE.md docs/PRD.md; do
  if [ -f "$f" ]; then
    echo "EXISTS: $f"
  else
    echo "MISSING: $f"
  fi
done

Repository: evstack/atlas

Length of output: 127


Create missing documentation files before merging

Two of the three documentation links will result in 404 errors:

  • docs/API.md — missing
  • docs/ARCHITECTURE.md — missing
  • docs/PRD.md — exists

Commit these files or remove the links from the README.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` around lines 67 - 71, The README currently links to docs/API.md
and docs/ARCHITECTURE.md which do not exist; either add those missing
documentation files (create API.md and ARCHITECTURE.md with the appropriate
content) or remove/update the corresponding links under the "## Documentation"
section in README.md so only existing docs (e.g., docs/PRD.md) are referenced;
ensure the link text and filenames in the "API Reference" and "Architecture"
list items match the created filenames exactly.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
docs/API.md (1)

3-3: Consider replacing the hardcoded localhost base URL with a placeholder.

http://localhost:3000 is only valid for a local dev environment. Readers deploying to staging or production have no canonical reference point. A placeholder such as https://<your-explorer-host> is more conventional for API reference docs.

📝 Proposed fix
-Base URL: `http://localhost:3000`
+Base URL: `http://localhost:3000` (local) or `https://<your-explorer-host>` (deployed)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/API.md` at line 3, Replace the hardcoded Base URL line "Base URL:
`http://localhost:3000`" in docs/API.md with a placeholder for user-specific
hosts (e.g. `https://<your-explorer-host>`), and update any accompanying
examples or cURL snippets in the same file to reference that placeholder rather
than localhost so the docs are environment-agnostic.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/API.md`:
- Around line 159-194: The fenced code blocks containing the
Etherscan-compatible API examples (the Account module block with GET
/api?module=account..., the Contract module block with GET/POST
/api?module=contract..., the Transaction module block with GET
/api?module=transaction..., the Block module GET /api?module=block..., and the
Proxy module GET /api?module=proxy...) are missing language specifiers and
trigger markdownlint MD040; fix by updating each opening fence to include a
language identifier (e.g., change the opening ``` to ```http or ```text) for the
five API example blocks so the query-string examples are correctly recognized as
HTTP/text code blocks.

---

Duplicate comments:
In `@README.md`:
- Around line 15-20: Update the deprecated hyphenated docker-compose commands in
the README by replacing occurrences of "docker-compose up -d" (and any other
"docker-compose" invocations) with the current Docker CLI form "docker compose
up -d"; ensure both the Quick Start and Local Development sections (the blocks
containing "cp .env.example .env" and the other occurrence) are updated so all
examples use "docker compose".
- Around line 67-71: README.md currently links to docs/API.md and
docs/ARCHITECTURE.md — ensure those two doc files are actually added in this PR
(create docs/API.md and docs/ARCHITECTURE.md if missing) and verify the link
text matches the target filenames; also remove the stray "[duplicate_comment]"
token in the README content so the file contains only the intended link list.

---

Nitpick comments:
In `@docs/API.md`:
- Line 3: Replace the hardcoded Base URL line "Base URL:
`http://localhost:3000`" in docs/API.md with a placeholder for user-specific
hosts (e.g. `https://<your-explorer-host>`), and update any accompanying
examples or cURL snippets in the same file to reference that placeholder rather
than localhost so the docs are environment-agnostic.

Comment on lines +159 to +194
```
GET /api?module=account&action=balance&address=0x...
GET /api?module=account&action=balancemulti&address=0x...,0x...
GET /api?module=account&action=txlist&address=0x...
GET /api?module=account&action=txlistinternal&address=0x...
GET /api?module=account&action=tokentx&address=0x...
GET /api?module=account&action=tokenbalance&address=0x...&contractaddress=0x...
```

### Contract Module

```
GET /api?module=contract&action=getabi&address=0x...
GET /api?module=contract&action=getsourcecode&address=0x...
POST /api?module=contract&action=verifysourcecode
```

### Transaction Module

```
GET /api?module=transaction&action=gettxreceiptstatus&txhash=0x...
```

### Block Module

```
GET /api?module=block&action=getblockreward&blockno=123
```

### Proxy Module (RPC)

```
GET /api?module=proxy&action=eth_blockNumber
GET /api?module=proxy&action=eth_getBlockByNumber&tag=0x...&boolean=true
GET /api?module=proxy&action=eth_getTransactionByHash&txhash=0x...
```
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Add language specifiers to the Etherscan-Compatible API code blocks.

Five fenced code blocks (opening fences at lines 159, 170, 178, 184, 190) are missing a language identifier, triggering markdownlint MD040 warnings on all of them. Use http or text for the query-string style examples.

📝 Proposed fix
-```
+```http
 GET /api?module=account&action=balance&address=0x...
 ...

Apply the same change to the opening fences at lines 170, 178, 184, and 190.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
```
GET /api?module=account&action=balance&address=0x...
GET /api?module=account&action=balancemulti&address=0x...,0x...
GET /api?module=account&action=txlist&address=0x...
GET /api?module=account&action=txlistinternal&address=0x...
GET /api?module=account&action=tokentx&address=0x...
GET /api?module=account&action=tokenbalance&address=0x...&contractaddress=0x...
```
### Contract Module
```
GET /api?module=contract&action=getabi&address=0x...
GET /api?module=contract&action=getsourcecode&address=0x...
POST /api?module=contract&action=verifysourcecode
```
### Transaction Module
```
GET /api?module=transaction&action=gettxreceiptstatus&txhash=0x...
```
### Block Module
```
GET /api?module=block&action=getblockreward&blockno=123
```
### Proxy Module (RPC)
```
GET /api?module=proxy&action=eth_blockNumber
GET /api?module=proxy&action=eth_getBlockByNumber&tag=0x...&boolean=true
GET /api?module=proxy&action=eth_getTransactionByHash&txhash=0x...
```
🧰 Tools
🪛 markdownlint-cli2 (0.21.0)

[warning] 159-159: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 170-170: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 178-178: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 184-184: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 190-190: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/API.md` around lines 159 - 194, The fenced code blocks containing the
Etherscan-compatible API examples (the Account module block with GET
/api?module=account..., the Contract module block with GET/POST
/api?module=contract..., the Transaction module block with GET
/api?module=transaction..., the Block module GET /api?module=block..., and the
Proxy module GET /api?module=proxy...) are missing language specifiers and
trigger markdownlint MD040; fix by updating each opening fence to include a
language identifier (e.g., change the opening ``` to ```http or ```text) for the
five API example blocks so the query-string examples are correctly recognized as
HTTP/text code blocks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

Comments