Likes
87

stevekrouse
svelteStarter
Svelte Starter This val shows how to compile and run a Svelte app in Val Town. The clever part of this app is that we serve /App.svelte by dynamically compiling the Svelte code to JS. If you are looking for server-side rendering, check out svelteSSRStarter . Thanks Rich Harris for getting this working!
HTTP

vawogbemi
lhc
Let Him Cook Query database (instantdb) with natural langauge in email. This just a demo sometimes can be inconsistent. Email: vawogbemi.lhc@valtown.email const _schema = i.schema({
entities: {
$users: i.entity({
email: i.string().unique().indexed(),
}),
goals: i.entity({
title: i.string(),
}),
todos: i.entity({
title: i.string(),
}),
},
links: {
goalsTodos: {
forward: {
on: "goals",
has: "many",
label: "todos",
},
reverse: {
on: "todos",
has: "many",
label: "goals",
},
},
},
})
Email
prashamtrivedi
valreadmegenerator
Val Town README Generator Welcome to the Val Town README Generator ! π Get ready to effortlessly generate elegant and informative README files for your Val Projects. This tool leverages AI to create well-structured and insightful documentation for your Val code. Features Theme Awareness: ππ Automatically adjusts to your system's dark/light mode preference. Responsive Layout: π±π₯οΈ Built with a beautiful and modern UI using React and TailwindCSS, ensuring a pleasant experience across devices. Live Preview and Copy: π Instantly view the generated README and easily copy it with just a click. Direct Readme Link: π Shareable link for each generated README for quick access. How It Works Follow these simple steps to generate a README: Enter Details: Provide your Val username and the Val name you want to generate a README for. Generate: Click on 'Generate README' and watch as the application swiftly fetches and processes the Val code to create a Markdown README. Copy and Share: Use the 'Copy' button to copy the README for your use, or share the link directly with peers. Technologies Used React: For building the interactive user interface. React DOM: To render components efficiently. TailwindCSS: For styling the application. Deno: The server-side environment. ValTown SDK: Integrated to fetch Val details. OpenAI GPT-4: To generate natural language README content. JavaScript Modules (ESM): For seamless module imports. Getting Started This project is actively deployed and accessible via the browser. Simply navigate to the running instance, input your details, and let the tool handle the rest. Enjoy generating READMEs without the need for local setup. Contributing While the project is not currently set up for local development, your interest and feedback are highly valued. Feel free to explore the code and suggest enhancements or improvements via pull requests or through the issue tracker. Contributions If you've made a substantial contribution to the project, feel free to add your name here! For any questions or guidance, join the discussions in our project repository. License MIT License. Feel free to use, modify, and distribute this application as per the terms of the license. We hope you find the Val Town README Generator a valuable tool in your development workflow. Happy Documenting! π
HTTP

stevekrouse
dns_record_debugger
Proxied Web Browser β DNS Debugger Proxied web browser for debugging new DNS records It's difficult to verify new DNS records. If you check too early, the old records may get cached on your computer, browser, or local network. This tool uses a proxied fetch so you can always view your web page uncached. Uses @std/fetch on the backend to ensure the DNS records of the request are from new places every request. Version 4 of this val also showed DNS records, pulled on the server,
but I removed that featured, because those records are likely
subject to caching. It'd be an improvement to this tool if we
could add an uncached DNS check in here. In a couple min I wasn't
able to find a free DNS checker API. Pull requests welcome!
HTTP

stevekrouse
openai_structured_output_demo
OpenAI Structured Output Demo Ensure responses follow JSON Schema for structured outputs The following demo uses zod to describe and parse the response to JSON. Learn more in the OpenAI Structured outputs
docs .
Script

pomdtr
webdavServer
Webdav Manage your vals from a webdav client (ex: https://cyberduck.io/) β οΈ some webdav operations are not supported, so support can vary between clients. Installation Click "Create Val" on the code block, and change it's type to http. import { basicAuth } from "https://esm.town/v/pomdtr/basicAuth";
import { verifyToken } from "https://esm.town/v/pomdtr/verifyToken";
import { serveVals } from "https://esm.town/v/pomdtr/webdavServer";
export default basicAuth(serveVals, {
verifyUser: (user) => {
return verifyToken(user);
},
}); Use a val town token as the username, and keep the password blank to authenticate.
Script
iamseeley
valTownUser
π€ valTownUser The valTownUser object provides a convenient interface to interact with Val Town's API and access user-specific information and functionalities. User Information getUserInfo() Fetches and caches the user's information. Use case: Retrieving all user details at once. import { valTownUser } from "https://esm.town/v/iamseeley/valTownUser";
export const getUserInfo = () => valTownUser.getUserInfo();
// Example usage:
const userInfo = await getUserInfo();
console.log('User Information:', userInfo);
// You can also destructure specific properties you need:
const { username, id, email, tier } = await getUserInfo();
console.log(`Username: ${username}`);
console.log(`User ID: ${id}`);
console.log(`Email: ${email}`);
console.log(`Account Tier: ${tier}`); getUsername() Retrieves the user's username. Use case: Displaying the current user's name in a val. import { valTownUser } from "https://esm.town/v/iamseeley/valTownUser";
export const getUsername = () => valTownUser.getUsername();
// Example usage:
const username = await getUsername();
console.log(`Current user: ${username}`); getId() Retrieves the user's ID. Use case: Using the user ID for database queries or API calls. import { valTownUser } from "https://esm.town/v/iamseeley/valTownUser";
export const getId = () => valTownUser.getId();
// Example usage:
const userId = await getId();
console.log(`User ID: ${userId}`); getBio() Retrieves the user's biography. Use case: Displaying the user's bio on a profile page. import { valTownUser } from "https://esm.town/v/iamseeley/valTownUser";
export const getBio = () => valTownUser.getBio();
// Example usage:
const bio = await getBio();
console.log(`User bio: ${bio || 'Not set'}`); getProfileImageUrl() Retrieves the URL of the user's profile image. Use case: Showing the user's avatar in a val. import { valTownUser } from "https://esm.town/v/iamseeley/valTownUser";
export const getProfileImageUrl = () => valTownUser.getProfileImageUrl();
// Example usage:
const profileImageUrl = await getProfileImageUrl();
console.log(`Profile image URL: ${profileImageUrl || 'Not set'}`); getEmail() Retrieves the user's email address. Use case: Sending notifications or verifications. import { valTownUser } from "https://esm.town/v/iamseeley/valTownUser";
export const getEmail = () => valTownUser.getEmail();
// Example usage:
const email = await getEmail();
console.log(`User email: ${email}`); getTier() Retrieves the user's account tier. Use case: Implementing tier-specific features. import { valTownUser } from "https://esm.town/v/iamseeley/valTownUser";
export const getTier = () => valTownUser.getTier();
// Example usage:
const tier = await getTier();
console.log(`User tier: ${tier}`); URL Generation getEndpointUrl(valName) Generates the endpoint URL for a specified val. Use case: Creating links to val endpoints in your application. import { valTownUser } from "https://esm.town/v/iamseeley/valTownUser";
export const getEndpointUrl = (valName: string) => valTownUser.getEndpointUrl(valName);
// Example usage:
const endpointUrl = await getEndpointUrl('mySitesServer');
console.log(`Endpoint URL: ${endpointUrl}`); getValUrl(valName) Generates the Val Town URL for a specified val. Use case: Creating links to val pages in Val Town. import { valTownUser } from "https://esm.town/v/iamseeley/valTownUser";
export const getValUrl = (valName: string) => valTownUser.getValUrl(valName);
// Example usage:
const valUrl = await getValUrl('myVal');
console.log(`Val URL: ${valUrl}`); User Activity getLikedVals(options) Retrieves the vals liked by the user. Use case: Displaying a list of the user's favorite vals. import { valTownUser } from "https://esm.town/v/iamseeley/valTownUser";
export const getLikedVals = (options = {}) => valTownUser.getLikedVals(options);
// Example usage:
const likedVals = await getLikedVals({ limit: 5 });
console.log('Liked vals:', likedVals.data); getComments(options) Retrieves comments related to the user. Use case: Showing a user's comment history. import { valTownUser } from "https://esm.town/v/iamseeley/valTownUser";
export const getComments = (options = {}) => valTownUser.getComments(options);
// Example usage:
const comments = await getComments({ limit: 10, relationship: 'given' });
console.log('User comments:', comments.data); getReferences(options) Retrieves references to the user's vals. Use case: Tracking how often a user's vals are used by others. import { valTownUser } from "https://esm.town/v/iamseeley/valTownUser";
export const getReferences = (options = {}) => valTownUser.getReferences(options);
// Example usage:
const references = await getReferences({ limit: 5 });
console.log('Val references:', references.data); Blob Management listBlobs(prefix) Lists the user's blobs. Use case: Displaying a file manager for the user's stored data. import { valTownUser } from "https://esm.town/v/iamseeley/valTownUser";
export const listBlobs = (prefix?: string) => valTownUser.listBlobs(prefix);
// Example usage:
const blobs = await listBlobs();
console.log('User blobs:', blobs); storeBlob(key, data) Stores a new blob or updates an existing one. Use case: Uploading user files or storing large datasets. import { valTownUser } from "https://esm.town/v/iamseeley/valTownUser";
export const storeBlob = (key: string, data: any) => valTownUser.storeBlob(key, data);
// Example usage:
await storeBlob('myFile.txt', 'Hello, World!');
console.log('Blob stored successfully'); getBlob(key) Retrieves a specific blob. Use case: Downloading a user's stored file. import { valTownUser } from "https://esm.town/v/iamseeley/valTownUser";
export const getBlob = async (key: string) => {
const blobData = await valTownUser.getBlob(key);
return new TextDecoder().decode(new Uint8Array(blobData));
};
// Example usage:
const blobContent = await getBlob('myFile.txt');
console.log('Blob content:', blobContent); deleteBlob(key) Deletes a specific blob. Use case: Removing old or unnecessary files. import { valTownUser } from "https://esm.town/v/iamseeley/valTownUser";
export const deleteBlob = (key: string) => valTownUser.deleteBlob(key);
// Example usage:
await deleteBlob('myFile.txt');
console.log('Blob deleted successfully'); Val Management listVals(options) Lists the user's vals. Use case: Displaying a dashboard of the user's created vals. import { valTownUser } from "https://esm.town/v/iamseeley/valTownUser";
export const listVals = (options = {}) => valTownUser.listVals(options);
// Example usage:
const userVals = await listVals({ limit: 5 });
console.log('User vals:', userVals.data); createVal(valInfo) Creates a new val. Use case: Programmatically creating vals based on user input. import { valTownUser } from "https://esm.town/v/iamseeley/valTownUser";
export const createVal = (valInfo: any) => valTownUser.createVal(valInfo);
// Example usage:
const newVal = await createVal({ name: 'myNewVal', code: 'console.log("Hello, World!");' });
console.log('Created val:', newVal); updateVal(valId, updates) Updates an existing val. Use case: Implementing an "edit val" feature in your application. deleteVal(valId) Deletes a specific val. Use case: Allowing users to remove their vals through your interface. SQLite Database Operations executeSqlite(statement) Executes a SQLite statement. Use case: Running custom queries on the user's database. listTables() Lists all tables in the user's SQLite database. Use case: Displaying the structure of a user's database. getTableSchema(tableName) Retrieves the schema of a specific table. Use case: Showing the structure of a particular table. getTableContent(tableName, limit) Retrieves the content of a specific table. Use case: Displaying the data stored in a user's table.
Script
all
townGen
townGen [[https://www.val.town/v/all/promptGen]] [[https://www.val.town/v/stevekrouse/valwriter]] Note : It looks like openai enhancement was dropped at some point when adding all the gizmos;
HTTP

pomdtr
neverthrow
Usage import { Failure, Success } from "https://esm.town/v/pomdtr/neverthrow?v=5";
const demoFunction = () => {
const result = Math.random();
if (result > 0.5) {
return Failure(
"Math. random produced too high a number",
);
}
return Success(result);
};
const res = demoFunction();
if (res.ok) {
console.log(res.value);
} else {
console.error(res.error);
}
Script
dthyresson
bedtimeStoryMaker
Bedtime Story Maker Inspired from a RedwoodJS demo I mde last year, this adds generative art powered by Fal to the bedtime story maker. Start writing a story by picking a style (spooky, colofrol, adventurous an animal (penguin, mouse, unicorn, whale ...) a color for the animal and activity (befriends aliens, goes to the doctor, rides a rollercoaster, bakes a cake for friends) It uses OpenAI to write a children's bedtime story title summary story for a "fantastical story about a green whale who rides the bus" or the "spooky story about the tomato fox who explores a cave". Then using the summary, OpenAI geenrates another prompt to describe the instructions to geneate a childrens story book image. That's sent to Fal to generate an image. Stories get saved to bedtime_stories in SQLite for viewing, searching and maybe sharing. You then get a bedtime story to enjoy!
HTTP