-
Notifications
You must be signed in to change notification settings - Fork 330
SEO Blogs (CRUD, Database sharading, server-side rendering) #3087
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
Open
aishwaripahwa12
wants to merge
12
commits into
main
Choose a base branch
from
crud-database-sharading-server-side-rendering
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
12 commits
Select commit
Hold shift + click to select a range
b4782f7
latest set of seo blogs
aishwaripahwa12 6963820
Update +page.markdoc
aishwaripahwa12 1462108
Apply suggestion from @adityaoberai
aishwaripahwa12 5f03dfc
Update +page.markdoc
aishwaripahwa12 0f88a98
Update +page.markdoc
aishwaripahwa12 33deffc
Update +page.markdoc
aishwaripahwa12 0034a4d
Apply suggestion from @adityaoberai
aishwaripahwa12 e004df8
Apply suggestion from @adityaoberai
aishwaripahwa12 5e123ec
Update +page.markdoc
aishwaripahwa12 2d0d47a
Update +page.markdoc
aishwaripahwa12 ebbbe1a
Update +page.markdoc
aishwaripahwa12 1aac198
Update +page.markdoc
aishwaripahwa12 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
130 changes: 130 additions & 0 deletions
130
src/routes/blog/post/what-is-crud-explained/+page.markdoc
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,130 @@ | ||
| --- | ||
| layout: post | ||
| title: What is CRUD? Explained | ||
| description: Learn what CRUD means, how create, read, update, and delete map to APIs and databases, and how to build CRUD apps faster with Appwrite. | ||
| date: 2026-07-07 | ||
| cover: /images/blog/what-is-crud-explained/cover.avif | ||
| timeToRead: 5 | ||
| author: aditya-oberai | ||
| category: architecture | ||
| featured: false | ||
| unlisted: true | ||
| faqs: | ||
| - question: What does CRUD stand for? | ||
| answer: CRUD stands for Create, Read, Update, and Delete, the four basic operations for managing stored data in an application. | ||
| - question: What is CRUD in simple terms? | ||
| answer: "CRUD is the set of four things you can do with data: add it (create), view it (read), change it (update), and remove it (delete). Nearly every app does all four." | ||
| - question: Is CRUD the same as REST? | ||
| answer: "No. CRUD is the four data operations, while REST is a style for building web APIs. REST APIs commonly expose CRUD operations, which is why they're often confused, but they're different concepts." | ||
| - question: What is a CRUD app? | ||
| answer: A CRUD app is any application whose main job is to create, read, update, and delete records. To-do lists, blogs, and online stores are all CRUD apps at their core. | ||
| --- | ||
| CRUD stands for Create, Read, Update, and Delete, the four basic operations for managing data in almost any application. Together they cover everything you do with stored data: adding new records, retrieving them, changing them, and removing them. If an app stores information, it's almost certainly doing CRUD. | ||
|
|
||
| Whether you're building a to-do list, a social network, or an enterprise dashboard, the underlying data work comes down to these four actions. This guide explains what CRUD is, what each operation does, how it maps to APIs and databases, and how to build a CRUD app, in plain language. | ||
|
|
||
| # What does CRUD stand for? | ||
|
|
||
| CRUD is an acronym for the four persistent storage operations every data-driven application relies on: | ||
|
|
||
| * **Create:** add a new record. | ||
| * **Read:** retrieve one or more existing records. | ||
| * **Update:** change an existing record. | ||
| * **Delete:** remove a record. | ||
|
|
||
| The term has been around [since the 1980s](https://en.wikipedia.org/wiki/Create,_read,_update_and_delete) and remains one of the most useful mental models in software. Almost any feature you can name, posting a comment, editing a profile, deleting a photo, viewing a feed, is a CRUD operation underneath. | ||
|
|
||
| # The four CRUD operations explained | ||
|
|
||
| Each operation maps to a specific action on your data. | ||
|
|
||
| Create adds something new, such as registering a user or writing a blog post. It's the operation that grows your dataset. | ||
|
|
||
| Read retrieves data without changing it, such as loading a profile page or listing search results. Reads are usually the most frequent operation in an app. | ||
|
|
||
| Update modifies an existing record, such as editing a caption or changing a setting. Updates can replace an entire record or just change specific fields. | ||
|
|
||
| Delete removes a record, such as discarding a draft or closing an account. Many apps use a "soft delete" that hides data instead of erasing it, so it can be recovered later. | ||
|
|
||
| # How does CRUD map to HTTP methods and SQL? | ||
|
|
||
| CRUD isn't tied to one technology. Its real power is that the same four ideas show up consistently across databases and web APIs, which makes systems predictable. | ||
|
|
||
| In a REST API, CRUD maps to [HTTP methods](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods): Create is POST, Read is GET, Update is PUT or PATCH, and Delete is DELETE. | ||
|
|
||
| In a SQL database, CRUD maps to statements: Create is [INSERT](https://www.postgresql.org/docs/current/sql-insert.html), Read is SELECT, Update is UPDATE, and Delete is DELETE. | ||
|
|
||
| So a single "delete a comment" action might travel from a DELETE HTTP request in the browser, through your API, down to a DELETE SQL statement in the database. Recognizing this pattern makes unfamiliar codebases much easier to read. | ||
|
|
||
| # CRUD vs REST: What's the difference? | ||
|
|
||
| CRUD and REST are related but not the same, and mixing them up is common. | ||
|
|
||
| CRUD describes the four operations you perform on data. [REST](https://developer.mozilla.org/en-US/docs/Glossary/REST) is an architectural style for designing web APIs, using resources, URLs, and HTTP methods. REST APIs very often expose CRUD operations, which is why the two get conflated. | ||
|
|
||
| The simplest way to hold them apart: CRUD is what you do to data, and REST is how you might expose those actions over the web. You can do CRUD without REST, for example directly against a database, and a REST API can do more than plain CRUD. | ||
|
|
||
| # Why is CRUD important? | ||
|
|
||
| CRUD matters because it's a shared vocabulary and a reliable structure that shows up everywhere: | ||
|
|
||
| * **A universal pattern.** Once you understand CRUD, you can reason about almost any app's data layer, because they nearly all follow it. | ||
| * **Predictable design.** Structuring an API or database around CRUD makes it consistent and easier for other developers to use. | ||
| * **Faster development.** Many frameworks and platforms scaffold CRUD automatically, so you get standard data operations without writing them from scratch. | ||
| * **A clear foundation.** More advanced features are usually built on top of solid CRUD, so getting it right early pays off. | ||
|
|
||
| # What does a CRUD app look like? | ||
|
|
||
| Almost every app you use is a CRUD app at its core. A to-do list is the clearest example: you create tasks, read your list, update a task when it's done, and delete tasks you no longer need. | ||
|
|
||
| The same holds for bigger products. On a social network, creating is posting, reading is scrolling the feed, updating is editing a post, and deleting is removing it. On an online store, products, orders, and customer records are all created, read, updated, and deleted. Strip away the branding and most software is a well-organized set of CRUD operations with a nice interface on top. | ||
|
|
||
| # How do I build a CRUD app? | ||
|
|
||
| Building CRUD from scratch means setting up a database, writing an API layer with an endpoint for each operation, handling validation and permissions, and connecting a frontend. It's straightforward but repetitive, and every project reinvents much of the same plumbing. | ||
|
|
||
| Alternatively, you can use a backend platform that provides CRUD operations out of the box. Instead of writing your own create, read, update, and delete endpoints, you define your data and call ready-made methods from an SDK. For most teams this removes a large chunk of boilerplate and lets you focus on the parts of your app that are actually unique. | ||
|
|
||
| # Start building CRUD apps with Appwrite | ||
|
|
||
| CRUD stands for Create, Read, Update, and Delete, the four operations at the heart of nearly every application that stores data. The pattern is powerful because it's consistent: the same four ideas map cleanly onto HTTP methods in an API and onto statements in a database, and CRUD stays separate from REST, which is just one common way to expose those operations over the web. The practical takeaway is that once you can spot CRUD, most software becomes easier to understand and build, and you rarely need to write those four operations by hand when a good backend already provides them. | ||
|
|
||
| That's exactly what [Appwrite](/) does: because CRUD is such a universal pattern, it gives you all four operations out of the box. Instead of standing up a database, writing a separate endpoint for each operation, and wiring permissions by hand, you define your data once and call ready-made methods from the SDK. | ||
|
|
||
| Here's the full CRUD lifecycle for the to-do list from earlier, using Appwrite's TablesDB API: | ||
|
|
||
| ```js | ||
| // Create a row | ||
| await tablesDB.createRow({ | ||
| databaseId: DB, | ||
| tableId: TABLE, | ||
| rowId: ID.unique(), | ||
| data: { title: "Buy groceries", completed: false }, | ||
| }); | ||
|
|
||
| // Read all rows | ||
| await tablesDB.listRows({ databaseId: DB, tableId: TABLE }); | ||
|
|
||
| // Update a row | ||
| await tablesDB.updateRow({ | ||
| databaseId: DB, | ||
| tableId: TABLE, | ||
| rowId: taskId, | ||
| data: { completed: true }, | ||
| }); | ||
|
|
||
| // Delete a row | ||
| await tablesDB.deleteRow({ databaseId: DB, tableId: TABLE, rowId: taskId }); | ||
| ``` | ||
|
|
||
| That's every operation from the article, create, read, update, and delete, with no custom backend to build or maintain. Appwrite handles the database, API layer, and validation, while built-in [permissions](/docs/products/databases/permissions) and [queries](/docs/products/databases/queries) cover the parts that usually take the most work to get right. | ||
|
|
||
| Whether you're prototyping an idea or scaling a production app, Appwrite gives you auth, databases, storage, functions, sites and real-time in one place, all open-source. [Sign up for Appwrite Cloud](https://cloud.appwrite.io/) or spin up a self-hosted instance in minutes, and give your next build a real backend to grow on. | ||
|
|
||
| ## Resources | ||
|
|
||
| * [Appwrite Databases docs](/docs/products/databases) | ||
| * [Create and manage documents](/docs/products/databases/documents) | ||
| * [Appwrite quick start guides](/docs/quick-starts) | ||
| * [Appwrite on GitHub](https://github.com/appwrite/appwrite) | ||
| * [Join the Appwrite Discord](https://appwrite.io/discord) | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.