1Migrated from folder: sats_api/snsFromInscription
30```
31
32Finally, you may be wondering why I queue up feedback in `@stevekrouse.docsFeedback`, a private JSON val, and then process it via [`@stevekrouse.formFeedbackAlert`](https://www.val.town/v/stevekrouse.formFeedbackAlert) instead of sending it along to Discord directly in this val. I [tried that originally](https://www.val.town/v/stevekrouse.docFeedbackForm?v=61) but it felt too slow to wait for the API call to Discord before returning the "Thanks for your feedback" message. This is where the `context.waitUntil` method (that Cloudflare workers and Vercel Edge Functions support) would really come in handy – those allow you to return a Response, and then continue to compute. Currently Val Town requires you to stop all compute with the returning of your Response, so the only way to compute afterwards is to queue it up for another val to take over, and that's what I'm doing here.
33
34
1# Hono
2
3Here's an example using the [Hono](https://hono.dev/) server library with the [Web API](https://docs.val.town/api/web). It works great!
1Programmatically get the API URLs for the val that calls this val. For example:
2
3```typescript
1Migrated from folder: docs/api/runPostExample
1Migrated from folder: docs/api/runGetExample
1Migrated from folder: docs/api/run
6
7
81. Make sure you have your Val Town API Token saved in your secrets. See more about [authentication](https://docs.val.town/api/authentication) to understand how to generate a token.
91. Make sure you've [set up your turso database](https://www.val.town/v/std.turso)
101. **[👆Fork this val](https://www.val.town/v/neverstew.migration)**
1Migrated from folder: docs/api/aliasValExample
1Migrated from folder: docs/api/aliasExample