Conversation
Greptile SummaryThis PR adds a new tutorial blog post walking readers through building a SaaS waitlist landing page with React, Vite, and Appwrite's TablesDB API, along with the associated cover and screenshot images.
Confidence Score: 4/5Safe to merge after correcting the event path; all code examples and API usage are otherwise accurate. One P1 factual error: the Appwrite Function event path is missing the src/routes/blog/post/build-saas-waitlist/+page.markdoc — incorrect event path near line 274. Important Files Changed
Reviews (1): Last reviewed commit: "init saas waitlist article" | Re-trigger Greptile |
| # Where to go from here | ||
|
|
||
| You now have a functioning waitlist with proper deduplication, scoped permissions, and a clean separation between your UI and your backend. There are a few natural next steps depending on where you want to take it. | ||
|
|
There was a problem hiding this comment.
Incorrect event path for TablesDB row creation
The event pattern databases.*.rows.*.create is wrong for the TablesDB API. According to the Appwrite events documentation, the path for TablesDB includes a tables segment between databases and rows. A function configured with the pattern shown here will never fire.
| Create an [Appwrite Function](/docs/products/functions) that listens for the `databases.*.tables.*.rows.*.create` event on your `entries` table and sends a transactional email through your provider of choice. The user never has to wait for it on the form. |
There was a problem hiding this comment.
Acknowledged, will be fixing this
|
|
||
| You now have a functioning waitlist with proper deduplication, scoped permissions, and a clean separation between your UI and your backend. There are a few natural next steps depending on where you want to take it. | ||
|
|
||
| - **Send a welcome email.** Create an [Appwrite Function](/docs/products/functions) that listens for the `databases.*.rows.*.create` event on your `entries` table and sends a transactional email through your provider of choice. The user never has to wait for it on the form. |
No description provided.