-
Notifications
You must be signed in to change notification settings - Fork 328
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
2
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
2 commits
Select commit
Hold shift + click to select a range
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
106 changes: 106 additions & 0 deletions
106
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,106 @@ | ||||||||||||||
| --- | ||||||||||||||
| 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. | ||||||||||||||
|
|
||||||||||||||
| # Conclusion | ||||||||||||||
|
|
||||||||||||||
| 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, which makes systems predictable and easier to build. CRUD is separate from REST, which is 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. | ||||||||||||||
|
|
||||||||||||||
| # Start building CRUD apps with Appwrite | ||||||||||||||
|
|
||||||||||||||
| Appwrite Cloud gives developers a fully managed backend so you can ship fast without provisioning or maintaining any infrastructure. You get storage, auth, databases, functions, and real-time out of the box, with file storage that scales automatically as your app grows. Its Databases product gives you full CRUD out of the box through a clean API and SDKs for every major platform, so you can create, read, update, and delete records without writing and maintaining your own endpoints. Built-in permissions and queries mean the hard parts are handled for you. | ||||||||||||||
|
|
||||||||||||||
| Whether you're prototyping your next idea or scaling a production app, Appwrite gives you auth, databases, storage, functions, 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](https://appwrite.io/docs/products/databases) | ||||||||||||||
| * [Create and manage documents](https://appwrite.io/docs/products/databases/documents) | ||||||||||||||
| * [Appwrite quick start guides](https://appwrite.io/docs/quick-starts) | ||||||||||||||
|
Comment on lines
+102
to
+104
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||
| * [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.
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.
We should have simple code examples here