-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
blog: the database app #55
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
WalkthroughThis pull request introduces a new blog post titled "What are database apps? and why SynthQL?" authored by Fernando Hurtado. The post explores the functionalities and components of database applications, critiques existing solutions, and presents SynthQL as a proposed tool for simplifying database app development. Additionally, the author's image URL in the Changes
Possibly related PRs
Poem
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
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)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this 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
🧹 Outside diff range and nitpick comments (3)
packages/docs/blog/2024-10-09-the-database-app/index.md (3)
8-66
: Improve grammar and style in the introductionThe introduction and concept explanation are informative and well-structured. However, there are some areas for improvement:
- Line 12: Use "an" instead of "a" before "interesting pattern".
- Line 37: "believe" should be "belief".
- Line 44: Change "its" to "it's" in "backend it's full of".
- Consider removing some instances of "very" to strengthen the writing (e.g., lines 34 and 59).
Here's a diff with suggested changes:
-In my +12y journey as a software developer, I've "re-discovered" a interesting pattern: +In my +12y journey as a software developer, I've "re-discovered" an interesting pattern: -It is also my believe that Postgres has solved the database problem. +It is also my belief that Postgres has solved the database problem. -If you look at the typical backend its full of "data fetching" code +If you look at the typical backend it's full of "data fetching" code -but it's a very good abstraction for building complex UIs. +but it's an excellent abstraction for building complex UIs. -A very big and important layer that often gets neglected, +A crucial layer that often gets neglected,🧰 Tools
🪛 LanguageTool
[misspelling] ~12-~12: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’.
Context: ...oftware developer, I've "re-discovered" a interesting pattern: a surprising numbe...(EN_A_VS_AN)
[formatting] ~14-~14: If the ‘because’ clause is essential to the meaning, do not use a comma before the clause.
Context: ...nipulate that data. I say re-discovered, because it's hardly a discovery at all. We've k...(COMMA_BEFORE_BECAUSE)
[uncategorized] ~16-~16: Possible missing comma found.
Context: ...ried to solve this pattern in a generic way such as Airtable, Notion, Retool, and o...(AI_HYDRA_LEO_MISSING_COMMA)
[typographical] ~16-~16: Consider adding a comma here.
Context: ...c way such as Airtable, Notion, Retool, and of course the venerable Excel. I call these **"...(OF_COURSE_COMMA)
[uncategorized] ~20-~20: Use a comma before ‘so’ if it connects two independent clauses (unless they are closely connected and short).
Context: ... me build database apps ontop of my data so I can build a custom (and hopefully gre...(COMMA_COMPOUND_SENTENCE)
[style] ~34-~34: As an alternative to the over-used intensifier ‘very’, consider replacing this phrase.
Context: ...t's not that React is perfect, but it's a very good abstraction for building complex UIs. T...(EN_WEAK_ADJECTIVE)
[grammar] ~37-~37: The word ‘believe’ is a verb. Did you mean the noun “belief”?
Context: ...iences. ### The database It is also my believe that Postgres has solved the database p...(PREPOSITION_VERB)
[uncategorized] ~40-~40: Possible missing comma found.
Context: ...t data from the DB into the UI. In most environments the DB doesn't fit in the client, so th...(AI_HYDRA_LEO_MISSING_COMMA)
[typographical] ~40-~40: Consider adding a comma after ‘Usually’ for more clarity.
Context: ...client, so the data needs to be synced. Usually this is done with a REST API. The prob...(RB_LY_COMMA)
[uncategorized] ~44-~44: Possible missing comma found.
Context: ...generic way. If you look at the typical backend its full of "data fetching" code that c...(AI_HYDRA_LEO_MISSING_COMMA)
[uncategorized] ~44-~44: “its” (belonging to it) seems less likely than “it’s” (it is)
Context: ...way. If you look at the typical backend its full of "data fetching" code that conve...(AI_HYDRA_LEO_CPT_ITS_ITIS)
[misspelling] ~46-~46: This word is normally spelled as one.
Context: ...that this data fetching is usually very sub-optimal. Two important problems arise: Over-fet...(EN_COMPOUNDS_SUB_OPTIMAL)
[uncategorized] ~47-~47: Possible missing comma found.
Context: ...ching becomes less and less performant. Suddenly when you callGET /users/123
you're a...(AI_HYDRA_LEO_MISSING_COMMA)
[uncategorized] ~51-~51: Possible missing comma found.
Context: ... fetching dependency tree: to fetch the user you first need to fetch the address. Th...(AI_HYDRA_LEO_MISSING_COMMA)
[uncategorized] ~51-~51: Possible missing comma found.
Context: ...address. This can get quite complicated easily to the point where you often have 3-4 l...(AI_HYDRA_LEO_MISSING_COMMA)
[typographical] ~51-~51: If specifying a range, consider using an en dash instead of a hyphen.
Context: ...asily to the point where you often have 3-4 levels of dependencies. Now let's ass...(HYPHEN_TO_EN)
[uncategorized] ~55-~55: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...ons get made implicitly by the developer and they result in non-optimal fetching tre...(COMMA_COMPOUND_SENTENCE)
[style] ~59-~59: As an alternative to the over-used intensifier ‘very’, consider replacing this phrase.
Context: ... the puzzle is the authorization layer. A very big and important layer that often gets neg...(EN_WEAK_ADJECTIVE)
[style] ~63-~63: To elevate your writing, try using a synonym here.
Context: ...ross the codebase. This makes it really hard to audit and reason about. Even in a sm...(HARD_TO)
[uncategorized] ~63-~63: Possible missing comma found.
Context: ...audit and reason about. Even in a small app it's impossible to ask a basic question...(AI_HYDRA_LEO_MISSING_COMMA)
🪛 Markdownlint
16-16: Expected: 0 or 2; Actual: 1
Trailing spaces(MD009, no-trailing-spaces)
20-20: Expected: 0 or 2; Actual: 1
Trailing spaces(MD009, no-trailing-spaces)
49-49: Expected: 0 or 2; Actual: 1
Trailing spaces(MD009, no-trailing-spaces)
51-51: Expected: 0 or 2; Actual: 1
Trailing spaces(MD009, no-trailing-spaces)
61-61: Expected: 0 or 2; Actual: 1
Trailing spaces(MD009, no-trailing-spaces)
12-12: Expected: 250; Actual: 335
Line length(MD013, line-length)
14-14: Expected: 250; Actual: 360
Line length(MD013, line-length)
34-34: Expected: 250; Actual: 437
Line length(MD013, line-length)
37-37: Expected: 250; Actual: 351
Line length(MD013, line-length)
42-42: Expected: 250; Actual: 442
Line length(MD013, line-length)
44-44: Expected: 250; Actual: 287
Line length(MD013, line-length)
47-47: Expected: 250; Actual: 285
Line length(MD013, line-length)
53-53: Expected: 250; Actual: 293
Line length(MD013, line-length)
61-61: Expected: 250; Actual: 281
Line length(MD013, line-length)
63-63: Expected: 250; Actual: 339
Line length(MD013, line-length)
65-65: Expected: 250; Actual: 398
Line length(MD013, line-length)
33-33: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines(MD022, blanks-around-headings)
36-36: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines(MD022, blanks-around-headings)
39-39: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines(MD022, blanks-around-headings)
8-8: null
Multiple top-level headings in the same document(MD025, single-title, single-h1)
28-28: Expected: 2; Actual: 1
Spaces after list markers(MD030, list-marker-space)
29-29: Expected: 2; Actual: 1
Spaces after list markers(MD030, list-marker-space)
30-30: Expected: 2; Actual: 1
Spaces after list markers(MD030, list-marker-space)
31-31: Expected: 2; Actual: 1
Spaces after list markers(MD030, list-marker-space)
47-47: Expected: 2; Actual: 1
Spaces after list markers(MD030, list-marker-space)
49-49: Expected: 2; Actual: 1
Spaces after list markers(MD030, list-marker-space)
47-47: null
Lists should be surrounded by blank lines(MD032, blanks-around-lists)
68-147
: Fix grammatical error and LGTM on code examplesThe SynthQL explanation and code examples are clear and effective. However, there's a small grammatical error to fix:
Line 107: "you can built" should be "you can build".
Here's the suggested change:
-This means you can built mini-endpoints that are tightly coupled to the frontend, +This means you can build mini-endpoints that are tightly coupled to the frontend,The code examples are well-formatted and effectively illustrate SynthQL's usage.
🧰 Tools
🪛 LanguageTool
[style] ~71-~71: To elevate your writing, try using a synonym here.
Context: ...bout any of this complexity. I find it hard to come up with a catchy name for it, b...(HARD_TO)
[typographical] ~71-~71: Consider adding a comma after ‘lately’ for more clarity.
Context: ... come up with a catchy name for it, but lately I've been thinking of SynthQL as a secu...(RB_LY_COMMA)
[uncategorized] ~107-~107: Possible missing comma found.
Context: ...example above, ### Frontend ORM With SynthQL you can fetch data from your database d...(AI_HYDRA_LEO_MISSING_COMMA)
[grammar] ~107-~107: The modal verb ‘can’ requires the verb’s base form.
Context: ...ur React components. This means you can built mini-endpoints that are tightly coupled...(MD_BASEFORM)
[uncategorized] ~139-~139: This expression is usually spelled with a hyphen.
Context: ...features that set it apart: Declarative role based access controls and query whitelisting....(BASED_HYPHEN)
[typographical] ~141-~141: The conjunction “so that” does not require a comma.
Context: ... to whitelist the query with the backend, so that the backend can check that the user has...(SO_THAT_UNNECESSARY_COMMA)
🪛 Markdownlint
103-103: Expected: 0 or 2; Actual: 1
Trailing spaces(MD009, no-trailing-spaces)
143-143: Expected: 0 or 2; Actual: 1
Trailing spaces(MD009, no-trailing-spaces)
98-98: Expected: 1; Actual: 2
Multiple consecutive blank lines(MD012, no-multiple-blanks)
149-157
: Clean up formatting issuesThere are some minor formatting issues to address:
- Remove the multiple consecutive blank lines at the end of the file (lines 149-157).
- Consider breaking long lines (e.g., lines 12, 14, 34, 37, 42) to improve readability.
- Remove trailing spaces (e.g., lines 16, 20, 49, 51, 61, 103, 143).
You can use a markdown linter or editor with formatting capabilities to automatically fix these issues.
🧰 Tools
🪛 Markdownlint
149-149: Expected: 1; Actual: 2
Multiple consecutive blank lines(MD012, no-multiple-blanks)
150-150: Expected: 1; Actual: 3
Multiple consecutive blank lines(MD012, no-multiple-blanks)
151-151: Expected: 1; Actual: 4
Multiple consecutive blank lines(MD012, no-multiple-blanks)
152-152: Expected: 1; Actual: 5
Multiple consecutive blank lines(MD012, no-multiple-blanks)
153-153: Expected: 1; Actual: 6
Multiple consecutive blank lines(MD012, no-multiple-blanks)
154-154: Expected: 1; Actual: 7
Multiple consecutive blank lines(MD012, no-multiple-blanks)
155-155: Expected: 1; Actual: 8
Multiple consecutive blank lines(MD012, no-multiple-blanks)
156-156: Expected: 1; Actual: 9
Multiple consecutive blank lines(MD012, no-multiple-blanks)
157-157: Expected: 1; Actual: 10
Multiple consecutive blank lines(MD012, no-multiple-blanks)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
📒 Files selected for processing (2)
- packages/docs/blog/2024-10-09-the-database-app/index.md (1 hunks)
- packages/docs/blog/authors.yml (1 hunks)
✅ Files skipped from review due to trivial changes (1)
- packages/docs/blog/authors.yml
🧰 Additional context used
🪛 LanguageTool
packages/docs/blog/2024-10-09-the-database-app/index.md
[misspelling] ~12-~12: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’.
Context: ...oftware developer, I've "re-discovered" a interesting pattern: a surprising numbe...(EN_A_VS_AN)
[formatting] ~14-~14: If the ‘because’ clause is essential to the meaning, do not use a comma before the clause.
Context: ...nipulate that data. I say re-discovered, because it's hardly a discovery at all. We've k...(COMMA_BEFORE_BECAUSE)
[uncategorized] ~16-~16: Possible missing comma found.
Context: ...ried to solve this pattern in a generic way such as Airtable, Notion, Retool, and o...(AI_HYDRA_LEO_MISSING_COMMA)
[typographical] ~16-~16: Consider adding a comma here.
Context: ...c way such as Airtable, Notion, Retool, and of course the venerable Excel. I call these **"...(OF_COURSE_COMMA)
[uncategorized] ~20-~20: Use a comma before ‘so’ if it connects two independent clauses (unless they are closely connected and short).
Context: ... me build database apps ontop of my data so I can build a custom (and hopefully gre...(COMMA_COMPOUND_SENTENCE)
[style] ~34-~34: As an alternative to the over-used intensifier ‘very’, consider replacing this phrase.
Context: ...t's not that React is perfect, but it's a very good abstraction for building complex UIs. T...(EN_WEAK_ADJECTIVE)
[grammar] ~37-~37: The word ‘believe’ is a verb. Did you mean the noun “belief”?
Context: ...iences. ### The database It is also my believe that Postgres has solved the database p...(PREPOSITION_VERB)
[uncategorized] ~40-~40: Possible missing comma found.
Context: ...t data from the DB into the UI. In most environments the DB doesn't fit in the client, so th...(AI_HYDRA_LEO_MISSING_COMMA)
[typographical] ~40-~40: Consider adding a comma after ‘Usually’ for more clarity.
Context: ...client, so the data needs to be synced. Usually this is done with a REST API. The prob...(RB_LY_COMMA)
[uncategorized] ~44-~44: Possible missing comma found.
Context: ...generic way. If you look at the typical backend its full of "data fetching" code that c...(AI_HYDRA_LEO_MISSING_COMMA)
[uncategorized] ~44-~44: “its” (belonging to it) seems less likely than “it’s” (it is)
Context: ...way. If you look at the typical backend its full of "data fetching" code that conve...(AI_HYDRA_LEO_CPT_ITS_ITIS)
[misspelling] ~46-~46: This word is normally spelled as one.
Context: ...that this data fetching is usually very sub-optimal. Two important problems arise: Over-fet...(EN_COMPOUNDS_SUB_OPTIMAL)
[uncategorized] ~47-~47: Possible missing comma found.
Context: ...ching becomes less and less performant. Suddenly when you callGET /users/123
you're a...(AI_HYDRA_LEO_MISSING_COMMA)
[uncategorized] ~51-~51: Possible missing comma found.
Context: ... fetching dependency tree: to fetch the user you first need to fetch the address. Th...(AI_HYDRA_LEO_MISSING_COMMA)
[uncategorized] ~51-~51: Possible missing comma found.
Context: ...address. This can get quite complicated easily to the point where you often have 3-4 l...(AI_HYDRA_LEO_MISSING_COMMA)
[typographical] ~51-~51: If specifying a range, consider using an en dash instead of a hyphen.
Context: ...asily to the point where you often have 3-4 levels of dependencies. Now let's ass...(HYPHEN_TO_EN)
[uncategorized] ~55-~55: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...ons get made implicitly by the developer and they result in non-optimal fetching tre...(COMMA_COMPOUND_SENTENCE)
[style] ~59-~59: As an alternative to the over-used intensifier ‘very’, consider replacing this phrase.
Context: ... the puzzle is the authorization layer. A very big and important layer that often gets neg...(EN_WEAK_ADJECTIVE)
[style] ~63-~63: To elevate your writing, try using a synonym here.
Context: ...ross the codebase. This makes it really hard to audit and reason about. Even in a sm...(HARD_TO)
[uncategorized] ~63-~63: Possible missing comma found.
Context: ...audit and reason about. Even in a small app it's impossible to ask a basic question...(AI_HYDRA_LEO_MISSING_COMMA)
[style] ~71-~71: To elevate your writing, try using a synonym here.
Context: ...bout any of this complexity. I find it hard to come up with a catchy name for it, b...(HARD_TO)
[typographical] ~71-~71: Consider adding a comma after ‘lately’ for more clarity.
Context: ... come up with a catchy name for it, but lately I've been thinking of SynthQL as a secu...(RB_LY_COMMA)
[uncategorized] ~107-~107: Possible missing comma found.
Context: ...example above, ### Frontend ORM With SynthQL you can fetch data from your database d...(AI_HYDRA_LEO_MISSING_COMMA)
[grammar] ~107-~107: The modal verb ‘can’ requires the verb’s base form.
Context: ...ur React components. This means you can built mini-endpoints that are tightly coupled...(MD_BASEFORM)
[uncategorized] ~139-~139: This expression is usually spelled with a hyphen.
Context: ...features that set it apart: Declarative role based access controls and query whitelisting....(BASED_HYPHEN)
[typographical] ~141-~141: The conjunction “so that” does not require a comma.
Context: ... to whitelist the query with the backend, so that the backend can check that the user has...(SO_THAT_UNNECESSARY_COMMA)
🪛 Markdownlint
packages/docs/blog/2024-10-09-the-database-app/index.md
16-16: Expected: 0 or 2; Actual: 1
Trailing spaces(MD009, no-trailing-spaces)
20-20: Expected: 0 or 2; Actual: 1
Trailing spaces(MD009, no-trailing-spaces)
49-49: Expected: 0 or 2; Actual: 1
Trailing spaces(MD009, no-trailing-spaces)
51-51: Expected: 0 or 2; Actual: 1
Trailing spaces(MD009, no-trailing-spaces)
61-61: Expected: 0 or 2; Actual: 1
Trailing spaces(MD009, no-trailing-spaces)
103-103: Expected: 0 or 2; Actual: 1
Trailing spaces(MD009, no-trailing-spaces)
143-143: Expected: 0 or 2; Actual: 1
Trailing spaces(MD009, no-trailing-spaces)
98-98: Expected: 1; Actual: 2
Multiple consecutive blank lines(MD012, no-multiple-blanks)
149-149: Expected: 1; Actual: 2
Multiple consecutive blank lines(MD012, no-multiple-blanks)
150-150: Expected: 1; Actual: 3
Multiple consecutive blank lines(MD012, no-multiple-blanks)
151-151: Expected: 1; Actual: 4
Multiple consecutive blank lines(MD012, no-multiple-blanks)
152-152: Expected: 1; Actual: 5
Multiple consecutive blank lines(MD012, no-multiple-blanks)
153-153: Expected: 1; Actual: 6
Multiple consecutive blank lines(MD012, no-multiple-blanks)
154-154: Expected: 1; Actual: 7
Multiple consecutive blank lines(MD012, no-multiple-blanks)
155-155: Expected: 1; Actual: 8
Multiple consecutive blank lines(MD012, no-multiple-blanks)
156-156: Expected: 1; Actual: 9
Multiple consecutive blank lines(MD012, no-multiple-blanks)
157-157: Expected: 1; Actual: 10
Multiple consecutive blank lines(MD012, no-multiple-blanks)
12-12: Expected: 250; Actual: 335
Line length(MD013, line-length)
14-14: Expected: 250; Actual: 360
Line length(MD013, line-length)
34-34: Expected: 250; Actual: 437
Line length(MD013, line-length)
37-37: Expected: 250; Actual: 351
Line length(MD013, line-length)
42-42: Expected: 250; Actual: 442
Line length(MD013, line-length)
44-44: Expected: 250; Actual: 287
Line length(MD013, line-length)
47-47: Expected: 250; Actual: 285
Line length(MD013, line-length)
53-53: Expected: 250; Actual: 293
Line length(MD013, line-length)
61-61: Expected: 250; Actual: 281
Line length(MD013, line-length)
63-63: Expected: 250; Actual: 339
Line length(MD013, line-length)
65-65: Expected: 250; Actual: 398
Line length(MD013, line-length)
33-33: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines(MD022, blanks-around-headings)
36-36: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines(MD022, blanks-around-headings)
39-39: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines(MD022, blanks-around-headings)
8-8: null
Multiple top-level headings in the same document(MD025, single-title, single-h1)
28-28: Expected: 2; Actual: 1
Spaces after list markers(MD030, list-marker-space)
29-29: Expected: 2; Actual: 1
Spaces after list markers(MD030, list-marker-space)
30-30: Expected: 2; Actual: 1
Spaces after list markers(MD030, list-marker-space)
31-31: Expected: 2; Actual: 1
Spaces after list markers(MD030, list-marker-space)
47-47: Expected: 2; Actual: 1
Spaces after list markers(MD030, list-marker-space)
49-49: Expected: 2; Actual: 1
Spaces after list markers(MD030, list-marker-space)
47-47: null
Lists should be surrounded by blank lines(MD032, blanks-around-lists)
🔇 Additional comments (2)
packages/docs/blog/2024-10-09-the-database-app/index.md (2)
1-6
: LGTM: Frontmatter is well-structuredThe frontmatter section is correctly formatted and contains all the necessary metadata for the blog post.
1-157
: Overall: Informative and well-structured blog post with minor improvements neededThis blog post effectively introduces the concept of database apps and SynthQL. The content is informative, well-structured, and provides clear explanations with illustrative code examples. The minor grammatical and formatting issues identified can be easily addressed to enhance the overall quality of the post.
Key strengths:
- Clear explanation of database apps and their components
- Effective introduction of SynthQL and its features
- Well-formatted code examples
Areas for improvement:
- Minor grammatical and style issues
- Some formatting inconsistencies
Once these minor issues are addressed, the blog post will be an excellent addition to the documentation.
🧰 Tools
🪛 LanguageTool
[misspelling] ~12-~12: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’.
Context: ...oftware developer, I've "re-discovered" a interesting pattern: a surprising numbe...(EN_A_VS_AN)
[formatting] ~14-~14: If the ‘because’ clause is essential to the meaning, do not use a comma before the clause.
Context: ...nipulate that data. I say re-discovered, because it's hardly a discovery at all. We've k...(COMMA_BEFORE_BECAUSE)
[uncategorized] ~16-~16: Possible missing comma found.
Context: ...ried to solve this pattern in a generic way such as Airtable, Notion, Retool, and o...(AI_HYDRA_LEO_MISSING_COMMA)
[typographical] ~16-~16: Consider adding a comma here.
Context: ...c way such as Airtable, Notion, Retool, and of course the venerable Excel. I call these **"...(OF_COURSE_COMMA)
[uncategorized] ~20-~20: Use a comma before ‘so’ if it connects two independent clauses (unless they are closely connected and short).
Context: ... me build database apps ontop of my data so I can build a custom (and hopefully gre...(COMMA_COMPOUND_SENTENCE)
[style] ~34-~34: As an alternative to the over-used intensifier ‘very’, consider replacing this phrase.
Context: ...t's not that React is perfect, but it's a very good abstraction for building complex UIs. T...(EN_WEAK_ADJECTIVE)
[grammar] ~37-~37: The word ‘believe’ is a verb. Did you mean the noun “belief”?
Context: ...iences. ### The database It is also my believe that Postgres has solved the database p...(PREPOSITION_VERB)
[uncategorized] ~40-~40: Possible missing comma found.
Context: ...t data from the DB into the UI. In most environments the DB doesn't fit in the client, so th...(AI_HYDRA_LEO_MISSING_COMMA)
[typographical] ~40-~40: Consider adding a comma after ‘Usually’ for more clarity.
Context: ...client, so the data needs to be synced. Usually this is done with a REST API. The prob...(RB_LY_COMMA)
[uncategorized] ~44-~44: Possible missing comma found.
Context: ...generic way. If you look at the typical backend its full of "data fetching" code that c...(AI_HYDRA_LEO_MISSING_COMMA)
[uncategorized] ~44-~44: “its” (belonging to it) seems less likely than “it’s” (it is)
Context: ...way. If you look at the typical backend its full of "data fetching" code that conve...(AI_HYDRA_LEO_CPT_ITS_ITIS)
[misspelling] ~46-~46: This word is normally spelled as one.
Context: ...that this data fetching is usually very sub-optimal. Two important problems arise: Over-fet...(EN_COMPOUNDS_SUB_OPTIMAL)
[uncategorized] ~47-~47: Possible missing comma found.
Context: ...ching becomes less and less performant. Suddenly when you callGET /users/123
you're a...(AI_HYDRA_LEO_MISSING_COMMA)
[uncategorized] ~51-~51: Possible missing comma found.
Context: ... fetching dependency tree: to fetch the user you first need to fetch the address. Th...(AI_HYDRA_LEO_MISSING_COMMA)
[uncategorized] ~51-~51: Possible missing comma found.
Context: ...address. This can get quite complicated easily to the point where you often have 3-4 l...(AI_HYDRA_LEO_MISSING_COMMA)
[typographical] ~51-~51: If specifying a range, consider using an en dash instead of a hyphen.
Context: ...asily to the point where you often have 3-4 levels of dependencies. Now let's ass...(HYPHEN_TO_EN)
[uncategorized] ~55-~55: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...ons get made implicitly by the developer and they result in non-optimal fetching tre...(COMMA_COMPOUND_SENTENCE)
[style] ~59-~59: As an alternative to the over-used intensifier ‘very’, consider replacing this phrase.
Context: ... the puzzle is the authorization layer. A very big and important layer that often gets neg...(EN_WEAK_ADJECTIVE)
[style] ~63-~63: To elevate your writing, try using a synonym here.
Context: ...ross the codebase. This makes it really hard to audit and reason about. Even in a sm...(HARD_TO)
[uncategorized] ~63-~63: Possible missing comma found.
Context: ...audit and reason about. Even in a small app it's impossible to ask a basic question...(AI_HYDRA_LEO_MISSING_COMMA)
[style] ~71-~71: To elevate your writing, try using a synonym here.
Context: ...bout any of this complexity. I find it hard to come up with a catchy name for it, b...(HARD_TO)
[typographical] ~71-~71: Consider adding a comma after ‘lately’ for more clarity.
Context: ... come up with a catchy name for it, but lately I've been thinking of SynthQL as a secu...(RB_LY_COMMA)
[uncategorized] ~107-~107: Possible missing comma found.
Context: ...example above, ### Frontend ORM With SynthQL you can fetch data from your database d...(AI_HYDRA_LEO_MISSING_COMMA)
[grammar] ~107-~107: The modal verb ‘can’ requires the verb’s base form.
Context: ...ur React components. This means you can built mini-endpoints that are tightly coupled...(MD_BASEFORM)
[uncategorized] ~139-~139: This expression is usually spelled with a hyphen.
Context: ...features that set it apart: Declarative role based access controls and query whitelisting....(BASED_HYPHEN)
[typographical] ~141-~141: The conjunction “so that” does not require a comma.
Context: ... to whitelist the query with the backend, so that the backend can check that the user has...(SO_THAT_UNNECESSARY_COMMA)
🪛 Markdownlint
16-16: Expected: 0 or 2; Actual: 1
Trailing spaces(MD009, no-trailing-spaces)
20-20: Expected: 0 or 2; Actual: 1
Trailing spaces(MD009, no-trailing-spaces)
49-49: Expected: 0 or 2; Actual: 1
Trailing spaces(MD009, no-trailing-spaces)
51-51: Expected: 0 or 2; Actual: 1
Trailing spaces(MD009, no-trailing-spaces)
61-61: Expected: 0 or 2; Actual: 1
Trailing spaces(MD009, no-trailing-spaces)
103-103: Expected: 0 or 2; Actual: 1
Trailing spaces(MD009, no-trailing-spaces)
143-143: Expected: 0 or 2; Actual: 1
Trailing spaces(MD009, no-trailing-spaces)
98-98: Expected: 1; Actual: 2
Multiple consecutive blank lines(MD012, no-multiple-blanks)
149-149: Expected: 1; Actual: 2
Multiple consecutive blank lines(MD012, no-multiple-blanks)
150-150: Expected: 1; Actual: 3
Multiple consecutive blank lines(MD012, no-multiple-blanks)
151-151: Expected: 1; Actual: 4
Multiple consecutive blank lines(MD012, no-multiple-blanks)
152-152: Expected: 1; Actual: 5
Multiple consecutive blank lines(MD012, no-multiple-blanks)
153-153: Expected: 1; Actual: 6
Multiple consecutive blank lines(MD012, no-multiple-blanks)
154-154: Expected: 1; Actual: 7
Multiple consecutive blank lines(MD012, no-multiple-blanks)
155-155: Expected: 1; Actual: 8
Multiple consecutive blank lines(MD012, no-multiple-blanks)
156-156: Expected: 1; Actual: 9
Multiple consecutive blank lines(MD012, no-multiple-blanks)
157-157: Expected: 1; Actual: 10
Multiple consecutive blank lines(MD012, no-multiple-blanks)
12-12: Expected: 250; Actual: 335
Line length(MD013, line-length)
14-14: Expected: 250; Actual: 360
Line length(MD013, line-length)
34-34: Expected: 250; Actual: 437
Line length(MD013, line-length)
37-37: Expected: 250; Actual: 351
Line length(MD013, line-length)
42-42: Expected: 250; Actual: 442
Line length(MD013, line-length)
44-44: Expected: 250; Actual: 287
Line length(MD013, line-length)
47-47: Expected: 250; Actual: 285
Line length(MD013, line-length)
53-53: Expected: 250; Actual: 293
Line length(MD013, line-length)
61-61: Expected: 250; Actual: 281
Line length(MD013, line-length)
63-63: Expected: 250; Actual: 339
Line length(MD013, line-length)
65-65: Expected: 250; Actual: 398
Line length(MD013, line-length)
33-33: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines(MD022, blanks-around-headings)
36-36: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines(MD022, blanks-around-headings)
39-39: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines(MD022, blanks-around-headings)
8-8: null
Multiple top-level headings in the same document(MD025, single-title, single-h1)
28-28: Expected: 2; Actual: 1
Spaces after list markers(MD030, list-marker-space)
29-29: Expected: 2; Actual: 1
Spaces after list markers(MD030, list-marker-space)
30-30: Expected: 2; Actual: 1
Spaces after list markers(MD030, list-marker-space)
31-31: Expected: 2; Actual: 1
Spaces after list markers(MD030, list-marker-space)
47-47: Expected: 2; Actual: 1
Spaces after list markers(MD030, list-marker-space)
49-49: Expected: 2; Actual: 1
Spaces after list markers(MD030, list-marker-space)
47-47: null
Lists should be surrounded by blank lines(MD032, blanks-around-lists)
SynthQL pull request template
Why
Motivation an context for the change.
What changed
Brief summary of the changes.
Important
Mention important points that require special attention or that might surprise
reviewers.
Summary by CodeRabbit