1# Send an email via [resend](https://resend.com)
2
3Requires a [resend](https://resend.com) API key, which you can get for free.
4
5## Usage
11 subject: "Hello World",
12 html: "Congrats on sending your first email!",
13 apiKey: @stevekrouse.secrets.resend,
14});
15```
1# Dev Null
2
3A JS function and API inspired by `/dev/null` that will throw away whatever you send it and return `null`.
4
5## Function usage
9```
10
11## API Usage
12
13https://api.val.town/v1/run/stevekrouse.devNull?args=[%22useless%20data%22]
14
15## Why?
21## Usage
22
23You can call this function via the [@stevekrouse.runValAPIAuth](/v/stevekrouse.runValAPIAuth) helper:
24
25```js
26@stevekrouse.runValAPIAuth({
27 val: "@stevekrouse.dm",
28 args: ["hi steve!"],
1Migrated from folder: Bitly/callPrivateAPI
1Migrated from folder: Bitly/bitlyAPI
1Migrated from folder: External_APIs/telegram/telegramValTownBot
50## How it works
51
52Telegram has a lovely API.
53
541. I created a @ValTownBot via [Bot Father](https://t.me/botfather).
552. I created a [webhook](https://www.val.town/v/stevekrouse.telegramValTownBotWebhook) and [registered it with telegram](https://www.val.town/v/stevekrouse.telegramValTownBotWebhookSetup)
563. Whenever someone new messages @ValTownBot, I generate a secret and save it along with their Chat Id in @stevekrouse/telegramValTownBotSecrets (a private val), and message it back to them
574. Now whenever you call this val, it calls [`telegramValTownAPI`](https://www.val.town/v/stevekrouse.telegramValTownAPI), which looks up your Chat Id via your secret and sends you a message
58
59## Telegram Resources
71
72- [ ] Store user data in Val Town SQLite
73- [ ] Parse user data on the API side using Zod
74
75Migrated from folder: External_APIs/telegram/telegram
1A wrapper for OpenAI's DALLE API. See the API reference here: https://platform.openai.com/docs/api-reference/images/create?lang=curl
1A quick method to derive the ATProto PLC from a domain using Cloudflare's 1.1.1.1 service.
2
3Use as an API with val.town's usual URL structure: eg. https://api.val.town/v1/run/byjp.atproto?args=%5B%22byjp.me%22%5D
4
5Migrated from folder: ATProto/atproto
5Using these two vals, you can put an interactive guestbook on any website.
6
7`valUser` and `valName` are used to build the Express API URL for your forked version of [`@vtdocs.guestbook`](https://www.val.town/v/vtdocs.guestbook).