9const STARTER_PROMPTS = [
10 "todo list app persisted in local storage",
11 "weather app using open-meteo API",
12 "interactive markdown editor with live preview",
13 "pomodoro timer with sound notifications",
268 <meta name="viewport" content="width=device-width, initial-scale=1.0">
269 <title>BestTime2Post</title>
270 <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap" rel="stylesheet">
271 <style>${css}</style>
272 </head>
123export default async function server(request: Request): Promise<Response> {
124 const { sqlite } = await import("https://esm.town/v/stevekrouse/sqlite");
125 const KEY = "captivatingPurpleTapir";
126 const SCHEMA_VERSION = 3; // Increment schema version
127
4
51. Sign up for [Cerebras](https://cloud.cerebras.ai/)
62. Get a Cerebras API Key
73. Save it in a [Val Town environment variable](https://www.val.town/settings/environment-variables) called `CEREBRAS_API_KEY`
8### Custom domains
9* Use [cloudflare email workers](https://developers.cloudflare.com/email-routing/email-workers/) or a similiar service to create a custom email domain and route any incoming emails to this val.
10* Use any email api set up with that domain to send emails ie. Sendgrid, Resend, Postmark.
11
12### Toolings
76}
77
78const endpointURL = "https://mjweaver01-sermongptapi.web.val.run";
79
80function App() {
642 <title>Sermon Generator</title>
643 <style>
644 @import url('https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@300;400;500&display=swap');
645 body {
646 font-family: 'Roboto', sans-serif;
9const STARTER_PROMPTS = [
10 "todo list app persisted in local storage",
11 "weather app using open-meteo API",
12 "interactive markdown editor with live preview",
13 "pomodoro timer with sound notifications",
4
51. Sign up for [Cerebras](https://cloud.cerebras.ai/)
62. Get a Cerebras API Key
73. Save it in a [Val Town environment variable](https://www.val.town/settings/environment-variables) called `CEREBRAS_API_KEY`
9
10const stripe = new Stripe(Deno.env.get("stripe_sk_customer_readonly") as string, {
11 apiVersion: "2020-08-27",
12});
13
2
3export default async function server(request: Request): Promise<Response> {
4 // Retrieve Notion API token from environment variable
5 const notionToken = Deno.env.get("NOTION_API_TOKEN");
6 const databaseId = Deno.env.get("NOTION_DATABASE_ID");
7
8 if (!notionToken || !databaseId) {
9 return new Response("Notion API token or database ID not configured", { status: 500 });
10 }
11