Val Town Code SearchReturn to Val Town

API Access

You can access search results via JSON API by adding format=json to your query:

https://codesearch.val.run/?q=api&page=14&format=json

For typeahead suggestions, use the /typeahead endpoint:

https://codesearch.val.run/typeahead?q=api

Returns an array of strings in format "username" or "username/projectName"

Found 18960 results for "api"(1314ms)

geolocation_api_demo1 file match

@stevekrouse•Updated 1 year ago

API_URL2 file matches

@pomdtr•Updated 1 year ago

api1 file match

@nws•Updated 1 year ago

gameIdeaApi2 file matches

@xkonti•Updated 1 year ago

gptApiTemplate2 file matches

@xkonti•Updated 1 year ago

gptApiFramework2 file matches

@xkonti•Updated 1 year ago

spotifyAPI1 file match

@HuskyChicken•Updated 1 year ago

memoryApiPolicy2 file matches

@xkonti•Updated 1 year ago

gptApiSchemaBuilder2 file matches

@xkonti•Updated 1 year ago

openapi_email1 file match

@pomdtr•Updated 1 year ago

honeydewmain.tsx6 matches

@legal•Updated 58 mins ago
91 <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Honeydew</title>
92 <style>
93 @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@600&family=Inter:wght@400&display=swap');
94 @keyframes fadeIn{from{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}:root{--sidebar-bg:#2C3E50;--main-bg:#FFFFFF;--text-light:#F7FAFC;--text-dark:#2C3E50;--accent:#B4DB7C;--accent-gradient:linear-gradient(135deg, #DDF5C8, #B4DB7C);--accent-light:#DDF5C8;--secondary-accent:#48C9B0;--border-color:#E2E8F0;--shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);--sidebar-width:240px;--sidebar-collapsed-width:60px;--transition:all .3s ease}body{font-family:'Inter', sans-serif;margin:0;background-color:var(--main-bg);color:var(--text-dark);display:flex;height:100vh;overflow:hidden}#app-container{display:flex;width:100%;height:100%}.sidebar{width:var(--sidebar-width);background:var(--sidebar-bg);color:var(--text-light);display:flex;flex-direction:column;position:fixed;height:100%;transition:width var(--transition);z-index:100}.sidebar.collapsed{width:var(--sidebar-collapsed-width)}.sidebar-header{padding:16px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.sidebar-header h1{font-family:'Poppins', sans-serif;font-weight:600;font-size:1.5rem;margin:0;color:var(--accent);white-space:nowrap;overflow:hidden}.sidebar.collapsed .sidebar-header h1{display:none}.sidebar-toggle{background:0 0;border:none;color:var(--text-light);cursor:pointer;padding:8px}.nav-list,.project-list{list-style:none;padding:0;margin:0 12px}.nav-list li,.project-list li{display:flex;align-items:center;padding:12px 10px;margin-bottom:4px;border-radius:6px;cursor:pointer;white-space:nowrap;overflow:hidden;transition:background .2s ease, color .2s ease}.sidebar.collapsed .nav-list span,.sidebar.collapsed .project-list span{display:none}.nav-list li svg,.project-list li svg{flex-shrink:0;margin-right:12px;transition: color .2s ease;}.sidebar.collapsed .nav-list li svg,.sidebar.collapsed .project-list li svg{margin-right:0}.nav-list li:hover,.project-list li:hover{background-color:#4a5568}.nav-list li.active,.project-list li.active{background:var(--accent-gradient);color:var(--text-dark);font-weight:600}.nav-list li.active svg, .project-list li.active svg {color: var(--text-dark)}.project-list-container{flex-grow:1;overflow-y:auto;overflow-x:hidden}.sidebar-footer{padding:16px;flex-shrink:0;white-space:nowrap;overflow:hidden}.sidebar.collapsed .sidebar-footer{padding:16px 0;text-align:center}.main-content{margin-left:var(--sidebar-width);width:calc(100% - var(--sidebar-width));height:100%;display:flex;flex-direction:column;transition:margin-left var(--transition)}.sidebar.collapsed+.main-content{margin-left:var(--sidebar-collapsed-width);width:calc(100% - var(--sidebar-collapsed-width))}.content-header{padding:24px 32px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border-color);flex-shrink:0}.content-header h2{margin:0;font-family:'Poppins', sans-serif;font-weight:600;font-size:1.8rem}.task-list-container{flex-grow:1;overflow-y:auto;padding:24px 32px}.task-item{display:flex;align-items:center;padding:12px;background:#fff;border-radius:8px;margin-bottom:12px;box-shadow:var(--shadow);transition:box-shadow .2s ease,transform .2s ease}.task-item:hover{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.task-item.completed .task-content{text-decoration:line-through;color:#a0aec0}.task-checkbox{margin-right:12px;width:18px;height:18px;accent-color:var(--accent);flex-shrink:0}.task-content{flex-grow:1;cursor:pointer}.task-actions button{background:0 0;border:none;cursor:pointer;color:#718096;opacity:0;transition:opacity .2s}.task-item:hover .task-actions button{opacity:1}.task-actions button:hover{color:var(--text-dark)}.quick-add-form{padding:16px 32px;border-top:1px solid var(--border-color);display:flex;gap:8px;flex-shrink:0}.quick-add-form input{flex-grow:1;padding:12px;border:1px solid #cbd5e0;border-radius:6px;font-size:1rem}.btn{padding:12px 16px;border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition: all .2s ease;font-family:'Inter', sans-serif;}.btn-primary{background:var(--accent-gradient);color:var(--text-dark)}.btn-primary:hover{transform:scale(1.03); box-shadow: 0 4px 15px rgba(0,0,0,0.1)}.btn-secondary{background-color:var(--secondary-accent);color:#fff}.btn-secondary:hover{background-color:#3DAA94}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:200;opacity:0;pointer-events:none;transition:opacity .3s ease}.modal-overlay.visible{opacity:1;pointer-events:auto}.modal-content{background:#fff;padding:24px;border-radius:8px;width:90%;max-width:500px;animation:fadeIn .3s ease forwards;box-shadow:var(--shadow)}.modal-content h3{margin-top:0;margin-bottom:20px; font-family:'Poppins', sans-serif; font-weight: 600;}.modal-content label{display:block;margin-bottom:6px;font-weight:600;font-size:.9rem;color:#4a5568}.modal-content input,.modal-content select,.modal-content textarea{width:calc(100% - 24px);padding:10px 12px;border:1px solid #cbd5e0;border-radius:6px;font-size:1rem;margin-bottom:16px;font-family:inherit}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.loader{width:20px;height:20px;border:3px solid hsla(44, 100%, 25%, .2);border-top-color:var(--text-dark);border-radius:50%;animation:spin .6s linear infinite;display:none}.btn.loading .loader{display:block}.btn.loading .btn-text{display:none}
95 #open-chat-btn{flex-shrink:0;width:48px;padding:10px;font-size:1.5rem;background-color:#e2e8f0;color:var(--text-dark)}.open-chat-btn:hover{background-color:#cbd5e0}
108 <script>
109 (function() {
110 const API_URL = '${sourceUrl}';
111 const STORE_KEYS = { projects: 'honeydew_projects_v1', tasks: 'honeydew_tasks_v1' };
112 let projects = [], tasks = [], activeView = 'today', conversationHistory = [];
310
311 try {
312 const res = await fetch(\`\${API_URL}?action=chat\`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ messages: conversationHistory.slice(0, -1), tasks, projects }) });
313 const data = await res.json();
314 if (!res.ok || data.error) throw new Error(data.error || 'Server error');
396 toggleLoading(btn, true);
397 try {
398 const res = await fetch(\`\${API_URL}?action=synthesizeProject\`, { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ goal }) });
399 const data = await res.json();
400 if (!res.ok || data.error) throw new Error(data.error || "Server error");
414 toggleLoading(btn, true);
415 try {
416 const res = await fetch(\`\${API_URL}?action=dailyRebalance\`, { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ tasks: todayTasks }) });
417 const data = await res.json();
418 if (!res.ok || data.error) throw new Error(data.error || "Server error");
624 }
625 } catch (error) {
626 console.error("AI API Error:", error);
627 return new Response(
628 JSON.stringify({ error: error.message || "An unknown error occurred with the AI service." }),

cardamonval-town.mdc9 matches

@connnolly•Updated 1 hour ago
18- Generate code in TypeScript or TSX
19- Add appropriate TypeScript types and interfaces for all data structures
20- Prefer official SDKs or libraries than writing API calls directly
21- Ask the user to supply API or library documentation if you are at all unsure about it
22- **Never bake in secrets into the code** - always use environment variables
23- Include comments explaining complex logic (avoid commenting obvious operations)
28### 1. HTTP Trigger
29
30- Create web APIs and endpoints
31- Handle HTTP requests and responses
32- Example structure:
163- **AI Image:** To inline generate an AI image use: `<img src="https://maxm-imggenurl.web.val.run/the-description-of-your-image" />`
164- **Storage:** DO NOT use the Deno KV module for storage
165- **Browser APIs:** DO NOT use the `alert()`, `prompt()`, or `confirm()` methods
166- **Weather Data:** Use open-meteo for weather data (doesn't require API keys) unless otherwise specified
167- **Error Debugging:** Add `<script src="https://esm.town/v/std/catch"></script>` to HTML to capture client-side errors
168- **Error Handling:** Only use try...catch when there's a clear local resolution; Avoid catches that merely log or return 500s. Let errors bubble up with full context
169- **Environment Variables:** Use `Deno.env.get('keyname')` when you need to, but generally prefer APIs that don't require keys
170- **Imports:** Use `https://esm.sh` for npm and Deno dependencies to ensure compatibility on server and browser
171- **Storage Strategy:** Only use backend storage if explicitly required; prefer simple static client-side sites
205### Backend (Hono) Best Practices
206
207- Hono is the recommended API framework
208- Main entry point should be `backend/index.ts`
209- Do NOT use Hono serveStatic middleware
230 });
231 ```
232- Create RESTful API routes for CRUD operations
233- Always include this snippet at the top-level Hono app to re-throwing errors to see full stack traces:
234 ```ts
267 - For files in the project, use `readFile` helpers
268
2695. **API Design:**
270 - `fetch` handler is the entry point for HTTP vals
271 - Run the Hono app with `export default app.fetch // This is the entry point for HTTP vals`
apiry
snartapi