Skip to content

chore: improve readme#27

Merged
manuel-plavsic merged 39 commits intomainfrom
chore/improve-readme
Jul 28, 2025
Merged

chore: improve readme#27
manuel-plavsic merged 39 commits intomainfrom
chore/improve-readme

Conversation

@manuel-plavsic
Copy link
Member

@manuel-plavsic manuel-plavsic commented Jul 26, 2025

This PR makes the README.md easier to understand, especially for people without plenty of Flutter experience.

If these changes are fine, I can also quickly adapt the main docs the same way.

Summary by CodeRabbit

  • Documentation

    • Significantly expanded and restructured the Disco Flutter library README for improved clarity, detailed usage examples, conceptual explanations, and ecosystem context.
    • Enhanced and reorganized main documentation with step-by-step usage guides, conceptual notes, and a new section comparing Disco to Provider and Riverpod.
    • Added a new "Comparison with alternatives" documentation page and removed the previous version for improved clarity and structure.
    • Updated changelog to reflect documentation improvements.
  • Chores

    • Incremented the package version to 1.0.3+1.
    • Added an empty README file for future content.

@manuel-plavsic manuel-plavsic requested a review from nank1ro July 26, 2025 09:31
@manuel-plavsic manuel-plavsic self-assigned this Jul 26, 2025
@manuel-plavsic manuel-plavsic added the documentation Improvements or additions to documentation label Jul 26, 2025
@coderabbitai
Copy link

coderabbitai bot commented Jul 26, 2025

Walkthrough

The changes restructure and expand the documentation for the Disco Flutter library, including a major rewrite of the package README, updates to the main documentation index, and a new, reformulated "Comparison with alternatives" section. The changelog and pubspec version are updated to reflect these documentation improvements. No functional code changes are included.

Changes

Cohort / File(s) Change Summary
Disco README overhaul
packages/disco/README.md
The README was extensively rewritten and expanded, introducing a structured table of contents, detailed usage examples, conceptual explanations, trade-off analyses, ecosystem compatibility notes, and clearer contribution guidelines.
Documentation index update
docs/src/content/docs/index.mdx
The main documentation page was restructured with expanded usage examples, conceptual clarifications, and a new section contrasting Disco with Provider and Riverpod.
Comparison with alternatives (rewrite)
docs/src/content/docs/miscellaneous/comparison-with-alternatives.md, docs/src/content/docs/miscellaneous/comparison-with-alternatives.mdx
The original Markdown comparison document was removed and replaced with a new MDX version, providing a clearer, more structured comparison between Provider, Riverpod, and Disco.
Changelog and version bump
packages/disco/CHANGELOG.md, packages/disco/pubspec.yaml
The changelog was updated for version 1.0.3+1 to note documentation improvements, and the pubspec version was incremented accordingly.
README file creation
./packages/disco/README.md
A new, initially empty README.md file was added (later overwritten by the expanded README content).

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~7 minutes

Poem

In the docs a rabbit hopped,
Expanding guides where once they stopped.
With README bright and trade-offs clear,
Disco’s purpose shines right here.
Provider, Riverpod, compared anew—
The bunny’s work is nearly through!
🐇✨

✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch chore/improve-readme

🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@codecov
Copy link

codecov bot commented Jul 26, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.

Impacted file tree graph

@@           Coverage Diff           @@
##             main      #27   +/-   ##
=======================================
  Coverage   99.53%   99.53%           
=======================================
  Files           9        9           
  Lines         217      217           
=======================================
  Hits          216      216           
  Misses          1        1           
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Jul 26, 2025

Deploying flutter-disco with  Cloudflare Pages  Cloudflare Pages

Latest commit: 0c5bd53
Status: ✅  Deploy successful!
Preview URL: https://cbf787b8.flutter-disco.pages.dev
Branch Preview URL: https://chore-improve-readme.flutter-disco.pages.dev

View logs

Copy link
Member

@nank1ro nank1ro left a comment

Choose a reason for hiding this comment

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

I like the fact that the README is just an introduction to the package, where you just say the basic steps to perform dependency injection.
All the notes and stuff like that adds complexity that a newcomer doesn't need.
I like the simplicity of how it is, because in the most of the cases is all you need.
The detailed documentation is already going very deep to explain every aspect of it, and it's where notes are useful and more advanced users can learn further.

@manuel-plavsic
Copy link
Member Author

I like the fact that the README is just an introduction to the package, where you just say the basic steps to perform dependency injection. All the notes and stuff like that adds complexity that a newcomer doesn't need. I like the simplicity of how it is, because in the most of the cases is all you need. The detailed documentation is already going very deep to explain every aspect of it, and it's where notes are useful and more advanced users can learn further.

I see what you mean. I wrapped two parts inside two <details> tags to hide things that might be immediately understood by people with more knowledge/experience.

I think that using examples with flutter widget code makes more sense for people to understand where the .of(context) is used exactly. I get it, it is a bit longer, but it is not so long. If someone reads modelProvider.of(context), they might find it a bit confusing. In the full documentation (Cloudflare), I highlighted the important lines.

Also, we really need the new section "What is unique about this library" for people to immediately understand what is special about our library, and how it is different from provider. Most people are probably not going to try and understand what is special just by looking at the code. Maybe they will just assume is something similar to the Provider package, and will not read further.

Maybe we can still add a tiny table of content with:

  • Simple usage example
  • What is unique about this library
  • Trade-offs

what do you say?

@manuel-plavsic
Copy link
Member Author

In the second snippet, I think i can remove the ProvidingWidget, and just leave ProviderScope.

However, i we should leave InjectingWidget In the 3rd snippet. It ia way more understandable.

@manuel-plavsic
Copy link
Member Author

manuel-plavsic commented Jul 26, 2025

In the new section, i need to wrap the entire workflow inside a <details>, and move the table from the details to the main part of the section.

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 (2)
packages/disco/README.md (2)

20-24: Rename heading to “Table of contents”

Minor wording fix—“contents” is standard usage for this section title.

-## Table of content
+## Table of contents

135-141: Polish wording flagged by LanguageTool

Two style nits that make the trade-offs table read more professionally:

-| ❌ Totally unopinionated on purpose¹
+| ❌ Intentionally unopinionated¹
...
-| ✅ Extremely simple
+| ✅ Very simple
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between dac43e2 and a7d403f.

📒 Files selected for processing (2)
  • docs/src/content/docs/index.mdx (2 hunks)
  • packages/disco/README.md (3 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • docs/src/content/docs/index.mdx
🧰 Additional context used
🪛 LanguageTool
packages/disco/README.md

[style] ~135-~135: Try using a descriptive adverb here.
Context: ... | ❌ Totally unopinionated on purpose¹ | | Mutable state support ...

(ON_PURPOSE_DELIBERATELY)


[style] ~140-~140: As an alternative to the over-used intensifier ‘extremely’, consider replacing this phrase.
Context: ... WidgetRef, ConsumerWidget, ... | ✅ Extremely simple | | **Ease of integra...

(EN_WEAK_ADJECTIVE)


[style] ~182-~182: Consider using “incompatible” to avoid wordiness.
Context: ...https://pub.dev/packages/riverpod), are not compatible with this library. ### Development Act...

(NOT_ABLE_PREMIUM)

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: 0

🧹 Nitpick comments (8)
packages/disco/README.md (8)

20-20: Prefer the conventional heading “Table of contents”.

Minor wording nit: documentation typically uses the plural “contents”.
Changing it keeps the README consistent with common convention.

-## Table of content
+## Table of contents

22-26: Update anchor text to match the renamed section.

If you accept the previous plural-form change, remember to adjust the Markdown anchors so internal links keep working.

-- [Simple usage example](#simple-usage-example)
-- [What makes this library unique](#what-makes-this-library-unique)
-- [Trade-offs](#trade-offs)
-- [Examples](#examples)
-- [Additional information](#additional-information)
+- [Simple usage example](#simple-usage-example)
+- [What makes this library unique](#what-makes-this-library-unique)
+- [Trade-offs](#trade-offs)
+- [Examples](#examples)
+- [Additional information](#additional-information)

55-64: Provide a complete, copy-pastable snippet.

The example stops with a comment placeholder (// return ..), so newcomers who copy-paste will get a compile error.
A minimal return (or even Container()) keeps the focus on injection while producing valid code.

-        final model = modelProvider.of(context);
-        // return .. (use model here)
+        final model = modelProvider.of(context);
+        return Text(model.toString());

108-116: Use string interpolation for clarity and to avoid null-handling edge-cases.

Interpolation is shorter and side-steps operator-precedence pitfalls altogether.

-    return Text(model.toString() + ", " + (secondModel?.toString() ?? "(empty)"));
+    return Text('${model}, ${secondModel?.toString() ?? "(empty)"}');

135-136: Tighten wording: “Deliberately unopinionated” reads better than “Totally unopinionated on purpose”.

-| ❌ Totally unopinionated on purpose¹  |
+| ❌ Deliberately unopinionated¹ |

140-140: Replace “Extremely” with a leaner adjective (“Very” / “Super”) to avoid weak intensifiers.


167-169: Small grammar tweak: “As mentioned earlier” instead of “Like already mentioned”.

-Like already mentioned in the trade-offs section, this package is not opinionated about reactivity: feel free to use your
+As mentioned earlier in the trade-offs section, this package is not opinionated about reactivity: feel free to use your

186-186: Consider moving the “Development Activity” note to the bottom, per prior feedback.

This aligns with the previous suggestion from the reviewer and keeps the flow reader-focused.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a7d403f and 1280795.

📒 Files selected for processing (2)
  • docs/src/content/docs/index.mdx (2 hunks)
  • packages/disco/README.md (3 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • docs/src/content/docs/index.mdx
🧰 Additional context used
🪛 LanguageTool
packages/disco/README.md

[style] ~135-~135: Try using a descriptive adverb here.
Context: ... | ❌ Totally unopinionated on purpose¹ | | Mutable state support ...

(ON_PURPOSE_DELIBERATELY)


[style] ~140-~140: As an alternative to the over-used intensifier ‘extremely’, consider replacing this phrase.
Context: ... WidgetRef, ConsumerWidget, ... | ✅ Extremely simple | | **Ease of integra...

(EN_WEAK_ADJECTIVE)


[style] ~182-~182: Consider using “incompatible” to avoid wordiness.
Context: ...https://pub.dev/packages/riverpod), are not compatible with this library. ### Development Act...

(NOT_ABLE_PREMIUM)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Cloudflare Pages

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: 0

🧹 Nitpick comments (4)
packages/disco/README.md (4)

20-24: Prefer plural “Table of contents”.

Standard English and most READMEs use “Table of contents”.
Renaming improves polish and perceived quality.

-## Table of content
+## Table of contents

135-136: Tone: drop the filler “Totally” for a crisper statement.

-| ❌ Totally unopinionated on purpose¹  |
+| ❌ Unopinionated by design¹  |

This keeps the row concise without changing meaning.


140-140: Avoid over-used intensifier “Extremely”.

A neutral adjective reads more professional.

-| ✅ Extremely simple                   |
+| ✅ Very simple                        |

182-183: Minor wording: swap “not compatible” → “incompatible”.

-State management solution entirely leveraging or endorsing global state, such as [`riverpod`](https://pub.dev/packages/riverpod), are not compatible with this library.
+State-management solutions that rely entirely on global state, such as [`riverpod`](https://pub.dev/packages/riverpod), are incompatible with this library.

This avoids wordiness and aligns with the preceding “Compatible solutions” section.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 1280795 and d24d613.

📒 Files selected for processing (2)
  • docs/src/content/docs/index.mdx (2 hunks)
  • packages/disco/README.md (3 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • docs/src/content/docs/index.mdx
🧰 Additional context used
🪛 LanguageTool
packages/disco/README.md

[style] ~135-~135: Try using a descriptive adverb here.
Context: ... | ❌ Totally unopinionated on purpose¹ | | Mutable state support ...

(ON_PURPOSE_DELIBERATELY)


[style] ~140-~140: As an alternative to the over-used intensifier ‘extremely’, consider replacing this phrase.
Context: ... WidgetRef, ConsumerWidget, ... | ✅ Extremely simple | | **Ease of integra...

(EN_WEAK_ADJECTIVE)


[style] ~182-~182: Consider using “incompatible” to avoid wordiness.
Context: ...https://pub.dev/packages/riverpod), are not compatible with this library. ### Development Act...

(NOT_ABLE_PREMIUM)

🔇 Additional comments (1)
packages/disco/README.md (1)

8-17: Symlink in root still present?

Past discussion agreed to keep only one README and create a symlink at repository root.
Please verify that the root-level README.md now is a symlink to this file and not a duplicate copy, to prevent the two from drifting apart.

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: 0

🧹 Nitpick comments (3)
packages/disco/README.md (3)

34-38: Add import to make the snippet copy-paste runnable

Beginners following this “simple usage” section will immediately hit an “unknown class Provider” error.
A single-line import keeps the example self-contained and prevents frustration.

 final modelProvider = Provider((context) => Model());
+// add directly above
+import 'package:disco/disco.dart';

140-140: Tone: drop the intensifier “Very”

Over-using “very” weakens technical writing and was flagged by LanguageTool.
Simple already conveys the message.

-| ✅ Very simple
+| ✅ Simple

182-182: Grammar: use “incompatible” instead of the wordy phrase

-State management solution entirely leveraging or endorsing global state, such as [`riverpod`](https://pub.dev/packages/riverpod), are not compatible with this library.
+State-management solutions that rely on global state, such as [`riverpod`](https://pub.dev/packages/riverpod), are incompatible with this library.
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d24d613 and 378880e.

📒 Files selected for processing (1)
  • packages/disco/README.md (3 hunks)
🧰 Additional context used
🪛 LanguageTool
packages/disco/README.md

[style] ~140-~140: As an alternative to the over-used intensifier ‘very’, consider replacing this phrase.
Context: ... WidgetRef, ConsumerWidget, ... | ✅ Very simple | | **Ease of integra...

(EN_WEAK_ADJECTIVE)


[style] ~182-~182: Consider using “incompatible” to avoid wordiness.
Context: ...https://pub.dev/packages/riverpod), are not compatible with this library. ### Contributions ...

(NOT_ABLE_PREMIUM)

🔇 Additional comments (1)
packages/disco/README.md (1)

113-116: Interpolation fix looks good

Using string interpolation eliminates the ?? / + precedence issue reported earlier.
Thanks for addressing it.

@manuel-plavsic manuel-plavsic requested a review from nank1ro July 28, 2025 15:26
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: 0

♻️ Duplicate comments (1)
glimpse-into-other-DI-approaches.md (1)

8-8: Fix malformed link & verb agreement (duplicate of earlier feedback).

The extra ] at the end of the flutter _bloc URL breaks Markdown, and “let you” should be “lets you”.

-The [`Provider`](https://pub.dev/packages/provider) package and libraries built on top of it, such as [Bloc (BlocProvider component)](https://pub.dev/packages/flutter_bloc#blocprovider]), let you scope dependencies using the widget tree.
+The [`Provider`](https://pub.dev/packages/provider) package and libraries built on top of it, such as [Bloc (BlocProvider component)](https://pub.dev/packages/flutter_bloc#blocprovider), lets you scope dependencies using the widget tree.
🧹 Nitpick comments (2)
glimpse-into-other-DI-approaches.md (2)

62-62: Grammar – singular verb and missing pronoun.

Change “allow to access” → “allows you to access”.

-The `ref` is a special object that allow to access providers.
+The `ref` is a special object that allows you to access providers.

79-79: Minor style – simplify “In order to”.

-In order to access a provider, you must use specialized widgets (`ConsumerWidget`, `ConsumerStatefulWidget`) instead of Flutter's native ones.
+To access a provider, you must use specialized widgets (`ConsumerWidget`, `ConsumerStatefulWidget`) instead of Flutter's native ones.
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 378880e and 7ef1eda.

📒 Files selected for processing (1)
  • glimpse-into-other-DI-approaches.md (1 hunks)
🧰 Additional context used
🪛 LanguageTool
glimpse-into-other-DI-approaches.md

[style] ~78-~78: Consider a more concise word here.
Context: ...s not possible to access any provider. In order to access a provider, you must use special...

(IN_ORDER_TO_PREMIUM)


**Disco** draws inspiration from both [Provider](https://pub.dev/packages/provider) and [Riverpod](https://pub.dev/packages/riverpod) — the two most widely used DI libraries in Flutter, both built around the concept of providers — while aiming to overcome their respective limitations. These libraries have significantly shaped how developers manage state and dependencies: **Provider** supports a simple, widget-tree–aligned scoping model, but does not allow multiple providers of the same type. **Riverpod**, by contrast, supports multiple providers of the same type, but relies on a globally structured architecture that breaks away from the widget tree.

If you’d like to explore the pain points of Provider and Riverpod in more detail, see our short article [here](https://github.com/our-creativity/disco/blob/main/glimpse-into-other-DI-approaches.md).
Copy link
Member

Choose a reason for hiding this comment

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

this link doesn't work yet.
Why is this md file in the root and not in the docs?

Copy link
Member Author

Choose a reason for hiding this comment

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

I was a bit in a hurry and didn't think about it

Copy link
Member Author

Choose a reason for hiding this comment

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

It does not work yet because it is not merged in main yet. Once it gets merged, it will work. If you open the link, you can select this branch here instead of main and it will be displayed correctly.

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 (3)
docs/glimpse-into-other-DI-approaches.md (1)

61-61: Grammar nit – “allow → allows”

-The `ref` is a special object that allow to access providers.
+The `ref` is a special object that allows you to access providers.
packages/disco/README.md (2)

134-134: Typo: “architectured” → “architected”

-| **Circular dependencies possible**    | ✅ Never             | ❌ Yes, if the app is not carefully architectured        | ✅ Never   |
+| **Circular dependencies possible**    | ✅ Never             | ❌ Yes, if the app is not carefully architected          | ✅ Never   |

140-140: Tone tweak – drop intensifier

-| **API simplicity**                  | ✅ Simple                             | ⚠️ Requires learning `WidgetRef`, `ConsumerWidget`, ... | ✅ Very simple                   |
+| **API simplicity**                  | ✅ Simple                             | ⚠️ Requires learning `WidgetRef`, `ConsumerWidget`, ... | ✅ Simple                        |
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 7ef1eda and 5149c86.

📒 Files selected for processing (3)
  • docs/glimpse-into-other-DI-approaches.md (1 hunks)
  • docs/src/content/docs/index.mdx (2 hunks)
  • packages/disco/README.md (3 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • docs/src/content/docs/index.mdx
🧰 Additional context used
🪛 LanguageTool
docs/glimpse-into-other-DI-approaches.md

[style] ~77-~77: Consider a more concise word here.
Context: ...s not possible to access any provider. In order to access a provider, you must use special...

(IN_ORDER_TO_PREMIUM)

packages/disco/README.md

[style] ~140-~140: As an alternative to the over-used intensifier ‘very’, consider replacing this phrase.
Context: ... WidgetRef, ConsumerWidget, ... | ✅ Very simple | | **Ease of integra...

(EN_WEAK_ADJECTIVE)


[style] ~182-~182: Consider using “incompatible” to avoid wordiness.
Context: ...https://pub.dev/packages/riverpod), are not compatible with this library. ### Contributions ...

(NOT_ABLE_PREMIUM)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Cloudflare Pages

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: 0

🧹 Nitpick comments (2)
docs/glimpse-into-other-DI-approaches.md (2)

61-62: Grammar tweak for subject-verb agreement

allowallows and clarified the phrase for smoother reading.

-The `ref` is a special object that allow to access providers.
+The `ref` is a special object that allows you to access providers.

76-79: Minor wording simplification

Using “To” instead of “In order to” keeps the sentence concise.

-In order to access a provider, you must use specialized widgets (`ConsumerWidget`, `ConsumerStatefulWidget`) instead of Flutter's native ones.
+To access a provider, you must use specialized widgets (`ConsumerWidget`, `ConsumerStatefulWidget`) instead of Flutter's native ones.
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 5149c86 and f5da06c.

📒 Files selected for processing (1)
  • docs/glimpse-into-other-DI-approaches.md (1 hunks)
🧰 Additional context used
🪛 LanguageTool
docs/glimpse-into-other-DI-approaches.md

[style] ~77-~77: Consider a more concise word here.
Context: ...s not possible to access any provider. In order to access a provider, you must use special...

(IN_ORDER_TO_PREMIUM)

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: 0

🧹 Nitpick comments (4)
docs/glimpse-into-other-DI-approaches.md (2)

63-70: Over-generalisation about top-level ProviderScope in Riverpod

Riverpod does require a ProviderScope at the root, but additional nested scopes are allowed for overriding providers in tests or sub-trees. Consider rephrasing “managed from a single, top-level ProviderScope” to acknowledge that nested scopes are possible, otherwise advanced users may flag the doc as misleading.

-Note that **the state for these providers is not local** — it's managed from a single, top-level `ProviderScope`:
+Note that **provider state is not local by default** — it lives inside the root-level `ProviderScope` (though additional nested scopes can be created for overrides):

76-80: “In order to” → “To”

Minor wording tweak for conciseness and to avoid the LanguageTool flag.

-In order to access a provider, you must use specialised widgets
+To access a provider, you must use specialised widgets
packages/disco/README.md (2)

138-142: Tone tweak – drop the intensifier “Very”

The table cell already conveys simplicity; removing “Very” reads cleaner and avoids the style warning.

-| ✅  Very simple
+| ✅  Simple

182-183: Use “incompatible” instead of “not compatible”

A single word keeps the sentence tight and addresses the LanguageTool hint.

-State management solution entirely leveraging or endorsing global state, such as [`riverpod`](https://pub.dev/packages/riverpod), are not compatible with this library.
+State-management solutions that rely entirely on global state, such as [`riverpod`](https://pub.dev/packages/riverpod), are incompatible with this library.
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f5da06c and c295189.

📒 Files selected for processing (2)
  • docs/glimpse-into-other-DI-approaches.md (1 hunks)
  • packages/disco/README.md (3 hunks)
🧰 Additional context used
🪛 LanguageTool
packages/disco/README.md

[style] ~140-~140: As an alternative to the over-used intensifier ‘very’, consider replacing this phrase.
Context: ... WidgetRef, ConsumerWidget, ... | ✅ Very simple | | **Ease of integra...

(EN_WEAK_ADJECTIVE)


[style] ~182-~182: Consider using “incompatible” to avoid wordiness.
Context: ...https://pub.dev/packages/riverpod), are not compatible with this library. ### Contributions ...

(NOT_ABLE_PREMIUM)

docs/glimpse-into-other-DI-approaches.md

[style] ~77-~77: Consider a more concise word here.
Context: ...s not possible to access any provider. In order to access a provider, you must use special...

(IN_ORDER_TO_PREMIUM)

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: 0

🧹 Nitpick comments (4)
packages/disco/README.md (4)

32-38: Add the import to keep the snippet copy-pasteable

Most newcomers will try to paste the snippet verbatim. Without
import 'package:disco/disco.dart'; it will not compile and the immediate error breaks the “quick start” promise.

 ```dart
+import 'package:disco/disco.dart';
+
 final modelProvider = Provider((context) => Model());

55-64: Make the widget example self-contained

Same concern as above: a single import line removes the need to guess the
package name and lets the snippet compile in isolation.

-class InjectingWidget extends StatelessWidget {
+import 'package:disco/disco.dart';
+
+class InjectingWidget extends StatelessWidget {

95-95: Tone down the “Very simple” wording

The marketing adjective can be dropped without losing meaning and removes the weak intensifier highlighted by LanguageTool.

-| **API simplicity**                  | ✅ Simple                             | ⚠️ Requires learning `WidgetRef`, `ConsumerWidget`, ... | ✅ Very simple                   |
+| **API simplicity**                  | ✅ Simple                             | ⚠️ Requires learning `WidgetRef`, `ConsumerWidget`, ... | ✅ Simple                   |

137-137: Use “incompatible” for conciseness

-State management solution entirely leveraging or endorsing global state, such as [`riverpod`](https://pub.dev/packages/riverpod), are not compatible with this library.
+State-management solutions that rely entirely on global state, such as [`riverpod`](https://pub.dev/packages/riverpod), are incompatible with this library.
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between c295189 and 2a1cef3.

📒 Files selected for processing (4)
  • docs/src/content/docs/index.mdx (2 hunks)
  • docs/src/content/docs/miscellaneous/comparison-with-alternatives.md (0 hunks)
  • docs/src/content/docs/miscellaneous/comparison-with-alternatives.mdx (1 hunks)
  • packages/disco/README.md (3 hunks)
💤 Files with no reviewable changes (1)
  • docs/src/content/docs/miscellaneous/comparison-with-alternatives.md
✅ Files skipped from review due to trivial changes (1)
  • docs/src/content/docs/miscellaneous/comparison-with-alternatives.mdx
🚧 Files skipped from review as they are similar to previous changes (1)
  • docs/src/content/docs/index.mdx
🧰 Additional context used
🪛 LanguageTool
packages/disco/README.md

[style] ~95-~95: As an alternative to the over-used intensifier ‘very’, consider replacing this phrase.
Context: ... WidgetRef, ConsumerWidget, ... | ✅ Very simple | | **Ease of integra...

(EN_WEAK_ADJECTIVE)


[style] ~137-~137: Consider using “incompatible” to avoid wordiness.
Context: ...https://pub.dev/packages/riverpod), are not compatible with this library. ### Contributions ...

(NOT_ABLE_PREMIUM)

🔇 Additional comments (1)
packages/disco/README.md (1)

18-18: External links verified – no broken references found

All external URLs in packages/disco/README.md (lines 18 and 112–117) were checked and return HTTP 200. No broken links detected.

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: 0

🧹 Nitpick comments (4)
docs/src/content/docs/index.mdx (1)

20-21: Indent <Aside> blocks so they remain part of the numbered list
Without the extra four-space indent, each <Aside> starts a new paragraph and the Markdown engine breaks the 1. / 2. / 3. sequence.

-<Aside>The state is never stored globally, directly in the Provider instance; see this provider solely as a type-safe identifier.</Aside>
+    <Aside>The state is never stored globally, directly in the Provider instance; see this provider solely as a type-safe identifier.</Aside>

-<Aside>The actual state for the provider is created and stored inside the `ProviderScope` instance where the provider is referenced.
-This way, when the ProviderScope gets disposed, the state gets disposed — making it ideal for managing **local state**.</Aside>
+    <Aside>The actual state for the provider is created and stored inside the `ProviderScope` instance where the provider is referenced.
+    This way, when the ProviderScope gets disposed, the state gets disposed — making it ideal for managing **local state**.</Aside>

-<Aside>The `ProviderScope` defined in step 2 needs to be an ancestor of this `InjectingWidget` widget.</Aside>
+    <Aside>The `ProviderScope` defined in step 2 needs to be an ancestor of this `InjectingWidget` widget.</Aside>

Also applies to: 31-32, 48-48

packages/disco/README.md (3)

38-38: Keep notes inside list items for correct rendering

Same indentation issue as in the docs page – the un-indented **Note:** paragraphs terminate the list prematurely.

-**Note:** the state is never stored globally, directly in the Provider instance; see this provider solely as a type-safe identifier.
+    **Note:** the state is never stored globally; the provider acts only as a type-safe identifier.

-**Note:** the actual state for the provider is created and stored inside the `ProviderScope` instance where the provider is referenced.
-This way, when the ProviderScope gets disposed, the state gets disposed — making it ideal for managing **local state**.
+    **Note:** the provider’s state is created inside the surrounding `ProviderScope`.  
+    When that scope is disposed, so is the state — perfect for **local state**.

-**Note:** the `ProviderScope` defined in step 2 needs to be an ancestor of this `InjectingWidget` widget.
+    **Note:** the `ProviderScope` from step 2 must be an ancestor of `InjectingWidget`.

Also applies to: 49-50, 67-67


95-95: Tone tweak – avoid “very”

Minor wording polish for the table.

-| **API simplicity**                  | ✅ Simple                             | ⚠️ Requires learning `WidgetRef`, `ConsumerWidget`, ... | ✅ Very simple                   |
+| **API simplicity**                  | ✅ Simple                             | ⚠️ Requires learning `WidgetRef`, `ConsumerWidget`, ... | ✅ Straightforward               |

137-137: Grammar – use “incompatible”

-State management solution entirely leveraging or endorsing global state, such as [`riverpod`](https://pub.dev/packages/riverpod), are not compatible with this library.
+State-management solutions that rely entirely on global state, such as [`riverpod`](https://pub.dev/packages/riverpod), are incompatible with this library.
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between b17729c and 0c5bd53.

📒 Files selected for processing (2)
  • docs/src/content/docs/index.mdx (2 hunks)
  • packages/disco/README.md (3 hunks)
🧰 Additional context used
🪛 LanguageTool
packages/disco/README.md

[style] ~95-~95: As an alternative to the over-used intensifier ‘very’, consider replacing this phrase.
Context: ... WidgetRef, ConsumerWidget, ... | ✅ Very simple | | **Ease of integra...

(EN_WEAK_ADJECTIVE)


[style] ~137-~137: Consider using “incompatible” to avoid wordiness.
Context: ...https://pub.dev/packages/riverpod), are not compatible with this library. ### Contributions ...

(NOT_ABLE_PREMIUM)

🔇 Additional comments (1)
docs/src/content/docs/index.mdx (1)

6-7: Import looks good

Aside is correctly imported from the Starlight component package – no issues spotted.

@manuel-plavsic manuel-plavsic merged commit 1e2dc5e into main Jul 28, 2025
4 checks passed
@manuel-plavsic manuel-plavsic deleted the chore/improve-readme branch July 28, 2025 21:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants