Skip to content

Add SEO blog posts: what is a database + what is a database index#3028

Open
atharvadeosthale wants to merge 6 commits into
mainfrom
atharva/database-seo-blogs
Open

Add SEO blog posts: what is a database + what is a database index#3028
atharvadeosthale wants to merge 6 commits into
mainfrom
atharva/database-seo-blogs

Conversation

@atharvadeosthale

Copy link
Copy Markdown
Member

Two long-form educational posts targeting top-of-funnel search terms ("what is a database" and "what is a database index"), drafted from SERP + competitor analysis to fill content gaps in top-ranking pages.
Both shipped as unlisted: true for now; covers generated via cover.appwrite.network.

Two long-form educational posts targeting top-of-funnel search terms.
Both currently unlisted; covers generated via cover.appwrite.network.
@appwrite

appwrite Bot commented May 28, 2026

Copy link
Copy Markdown

Appwrite Website

Project ID: 69d7efb00023389e8d27

Sites (1)
Site Status Logs Preview QR
 website
69d7f2670014e24571ca
Failed Failed View Logs Preview URL QR Code

Website (appwrite/website)

Project ID: 684969cb000a2f6c0a02

Sites (1)
Site Status Logs Preview QR
 website
68496a17000f03d62013
Queued Queued View Logs Preview URL QR Code


Tip

Sites auto-generate unique domains with the pattern https://randomstring.appwrite.network

@greptile-apps

greptile-apps Bot commented May 28, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

Adds two new unlisted SEO blog posts targeting top-of-funnel search terms: a primer on what a database is (types, picking one, Appwrite TablesDB) and a guide to database indexes (types, worked example, when to add/avoid them). Both posts are shipped as unlisted: true with cover images in .avif format.

  • what-is-a-database and what-is-a-database-index are complete, well-structured articles with frontmatter, FAQs, and cross-links; code examples use the TablesDB SDK consistently.
  • The .optimize-cache.json entries reference cover.png while the committed assets and frontmatter both use cover.avif, a pre-existing mismatch flagged in prior review threads.
  • One link text in what-is-a-database says "in 2026" but the destination slug is top-6-vector-databases-2025, creating a minor year inconsistency for readers.

Confidence Score: 5/5

Two new unlisted blog posts and their static cover images; no runtime logic, no schema changes, and no API changes are involved.

The change is purely additive content — new markdoc files and image assets behind unlisted: true. The only outstanding issue is a minor link-text/year inconsistency and the previously noted cache-extension mismatch, neither of which affects runtime behavior or user-visible pages.

.optimize-cache.json has mismatched extensions (cover.png vs the actual cover.avif files) that were noted in prior review threads and remain unresolved.

Important Files Changed

Filename Overview
src/routes/blog/post/what-is-a-database/+page.markdoc New long-form educational blog post covering database fundamentals, types, and how to pick one; minor year mismatch in one link text vs its URL slug.
src/routes/blog/post/what-is-a-database-index/+page.markdoc New long-form educational blog post covering database indexes; content and code examples are consistent and accurate.
.optimize-cache.json Cache entries added with .png extension but committed cover images and markdoc frontmatter both reference .avif; this mismatch may cause redundant reprocessing on every build.

Reviews (3): Last reviewed commit: "Merge branch 'main' into atharva/databas..." | Re-trigger Greptile

Comment thread src/routes/blog/post/what-is-a-database-index/+page.markdoc Outdated
Comment thread .optimize-cache.json
Moves TablesDB into its own dedicated category instead of bucketing it
under NoSQL, adds Collections and Documents subsections, simpler
customer/orders example, race-condition explanation, and tilts the
database picker section toward Appwrite.
Avoids confusion with Appwrite's system $createdAt field, which cannot
be used in a manual composite index, by using an unambiguously
user-defined column throughout the worked example.
Comment thread src/routes/blog/post/what-is-a-database-index/+page.markdoc Outdated
Comment thread src/routes/blog/post/what-is-a-database/+page.markdoc Outdated
Co-authored-by: Atharva Deosthale <atharva.deosthale17@gmail.com>

@adityaoberai adityaoberai left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Few changes needed

Comment on lines +14 to +25
- question: "What is a database index in simple words?"
answer: "A database index is a sorted, lookup-optimized copy of one or more columns from a table, with pointers back to the rows. It lets the database find matching rows quickly instead of reading every row to check. The analogy is the index at the back of a book: you find the topic in a sorted list and jump to the right page, instead of reading the whole book."
- question: "Why do databases use indexes?"
answer: "Without an index, the database has to perform a full table scan, checking every row to see whether it matches the query. Even on modest tables that becomes slow as data grows. An index reduces the work from \"check every row\" to \"jump to the matching range\", which is the difference between a query that takes seconds and one that takes milliseconds."
- question: "What are the main types of database indexes?"
answer: "The common ones are single-column indexes for filtering and sorting on one column, composite indexes covering several columns together, unique indexes that enforce no duplicates, full-text indexes for searching text content, spatial indexes for geographic data, hash indexes for exact-match key lookups, and vector indexes for similarity search in AI applications."
- question: "Does adding more indexes always make a database faster?"
answer: "No. Indexes speed up reads but slow down writes. Every insert, update, or delete has to update every index on the table. A table with too many redundant indexes pays a heavy write cost without a matching read benefit. Add indexes for queries you do run, and drop ones that no query uses."
- question: "What is the difference between a primary key and an index?"
answer: "A primary key uniquely identifies a row in a table and is almost always backed by an index automatically. An index is the underlying data structure that makes lookups fast. So a primary key is one specific use of an index, but you can also create plenty of additional indexes on non-key columns to speed up other queries."
- question: "When should I create a composite index?"
answer: "Create a composite index when your queries consistently filter or sort on the same combination of columns. For example, if you regularly query posts by status and authorId together, a composite index on (status, authorId) is more efficient than two separate single-column indexes. The order of columns matters: a (status, authorId) index helps filtering on status alone or status plus authorId, but not authorId alone."

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Let's add Appwrite-specific FAQs too


Add a composite index on `(status, publishedAt)` (descending), and the database can walk directly to the published rows in `publishedAt` order and stop after ten. The same query goes from seconds to milliseconds, with no change to the application code.

That is the whole pitch of indexes in one example. The query did not change. The work the database had to do did.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Sentences like these are a little too AI

Comment on lines +14 to +25
- question: "What is a database in simple words?"
answer: "A database is an organized place where an application stores information so it can be searched, updated, and shared later. Think of it as a digital filing system designed for fast lookups instead of paper folders and drawers."
- question: "What are the main types of databases?"
answer: "The most common types developers work with are relational databases like PostgreSQL and MySQL, document databases like MongoDB and CouchDB, key-value stores like Redis and DynamoDB, and vector databases used for AI and semantic search. Appwrite TablesDB sits alongside these as a managed, relational-style API layer that gives you tables, rows, and columns through every Appwrite SDK without running a database server."
- question: "What is the difference between a database and a spreadsheet?"
answer: "A spreadsheet is a single file optimized for one person to view and edit data manually. A database is a service that supports many users and apps reading and writing the same data at once, enforces structure, runs efficient queries on millions of rows, and protects data with permissions and transactions."
- question: "What is the difference between SQL and NoSQL databases?"
answer: "SQL databases store data in strict tables with predefined columns and use SQL to query them. NoSQL databases relax that structure: documents can have different fields, key-value stores hold one value per key, and so on. SQL is a strong default when relationships matter. NoSQL is a strong default when the shape of your data changes often or you need to scale writes horizontally."
- question: "Which database should I use for my app?"
answer: "Start from your data shape and your query patterns. If your data has clear relationships and you need joins, pick a relational database. If you store flexible JSON-like records, pick a document database. If you need millisecond lookups by a single key, pick a key-value store. If you are building an AI feature that searches by meaning, add a vector database. If you want one managed platform that handles auth, storage, functions, and a relational-style database together, Appwrite TablesDB is built for that."
- question: "Do I need to know SQL to use a database?"
answer: "Not always. SQL is still the most widely used query language, and learning the basics is worth the time. But many modern databases, including Appwrite TablesDB, expose a higher-level query API in your SDK of choice, so you can read and write rows without writing raw SQL strings."

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Let's add Appwrite-specific FAQs too (questions, not just answers)

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants