Search
sapphireThrush
@iamseeley
A handler to serve JSON Resume
Script
export default async function handler(req: Request): Promise<Response> {
const resumeDetails = {"basics":{"name":"James Thomas Seeley","label":"Web Developer","image":"","email":"hello@tseeley.com","phone":"","url":"https://tseeley.com","summary":"","location":{"address":"","postalCode":"","city":"","countryCode":"","region":""},"profiles":[{"network":"GitHub","username":"iamseeley","url":""},{"network":"LinkedIn","username":"James Thomas Seeley","url":""}]},"work":[{"name":"Wando","position":"Web Developer","url":"","startDate":"2022","endDate":"present","summary":"","highlights":["Crafted an event management platform with secure authentication and full CRUD capabilities, streamlining client operations","Created an interactive public website to display events and menu items, incorporating a user-friendly interface for online inquiries","Developed a responsive and accessibility-focused website for a law firm, resulting in a 20% increase in client inquiries"]},{"name":"Mindpool","position":"Business Strategy Intern","url":"","startDate":"2022","endDate":"2022","summary":"","highlights":["Built a category defining, business to business growth strategy focused on ESG"]}],"volunteer":[],"education":[{"institution":"Tickle College of Engineering - University of Tennessee, Knoxville","url":"","area":"Computer Science","studyType":"M.S.","startDate":"","endDate":"2025","score":"","courses":[]},{"institution":"Haslam College of Business - University of Tennessee, Knoxville","url":"","area":"Business Administration","studyType":"B.S.","startDate":"","endDate":"2023","score":"cum laude","courses":[]},{"institution":"Danish Institute for Study Abroad","url":"","area":"Innovation and Entrepreneurship in Europe","studyType":"","startDate":"","endDate":"2022","score":"","courses":[]}],"awards":[],"publications":[],"skills":[{"name":"Web Development","level":"","keywords":["HTML5","CSS","Tailwind CSS","React","Next.js","Vite"]},{"name":"Programming","level":"","keywords":["JavaScript","TypeScript","Python","Go"]},{"name":"Tools & Software","level":"","keywords":["Git","Docker","Figma","Adobe Suite","Excel"]}],"languages":[],"interests":[],"references":[],"projects":[{"name":"wando-ui","startDate":"","endDate":"2023","description":"Component collection and CLI application written in TypeScript","highlights":["Designed and implemented composable styles using Tailwind CSS, clsx, and class-variance-authority, enhancing modularity and scalability","Developed a publicly available CLI tool leveraging Node.js for efficient package management and script execution, allowing users to import components easily into their own projects"],"url":"https://github.com/iamseeley/wando-ui"},{"name":"go-forth","startDate":"","endDate":"2023","description":"Static site generator written in Go","highlights":["Engineered a static site generator featuring Markdown-to-HTML conversion, YAML front matter parsing, automated build processes, and efficient content caching, optimizing performance"],"url":"https://github.com/iamseeley/go-forth2.0"}],"certificates":[{"name":"BootDev, JavaScript, Python, Algorithms","date":"2023","issuer":"","url":""},{"name":"SuperHi, Foundation, HTML, CSS + Javascript","date":"2022","issuer":"","url":""}]};
return new Response(JSON.stringify(resumeDetails), {
righteousCopperWildcat
@SamuelAffran
An interactive, runnable TypeScript val by SamuelAffran
HTTP
export default async function (req: Request): Promise<Response> {
return Response.json({ ok: true })

orangeMite
@pomdtr
https://pomdtr-orangemite.web.val.run
HTTP
export default function(req) {
return new Response(req.referrer, {
status: 200,
healthCheck
@toowired
@jsxImportSource https://esm.sh/react@18.2.0
Script
import { createRoot } from "https://esm.sh/react-dom@18.2.0/client";
function App() {
const [health, setHealth] = useState(null);
</div>
function client() {
createRoot(document.getElementById("root")).render(<App />);
if (typeof document !== "undefined") { client(); }
export default async function server(request: Request): Promise<Response> {
const url = new URL(request.url);
valle_tmp_33233416150321853525734847298241
@janpaul123
// This val responds with an HTML form styled with CSS, allowing the user to input their name and receive a greeting upon submission
HTTP
// This val responds with an HTML form styled with CSS, allowing the user to input their name and receive a greeting upon submission
export default async function(req: Request): Promise<Response> {
if (req.method === "POST") {
const formData = new URLSearchParams(await req.text());
show_keyword_cloud
@vip
@jsxImportSource https://esm.sh/react
HTTP
import { createRoot } from "https://esm.sh/react-dom/client";
function App() {
const [keywords, setKeywords] = useState({});
</div>
function client() {
createRoot(document.getElementById("root")).render(<App />);
client();
export default async function server(request: Request): Promise<Response> {
const { blob } = await import("https://esm.town/v/std/blob");

REACT_MINIFIED
@liamdanielduffy
// set by liamdanielduffy.buildReactMinified at 2023-06-01T12:15:21.371Z
Script
// set by liamdanielduffy.buildReactMinified at 2023-06-01T12:15:21.371Z
export let REACT_MINIFIED = "/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n(function(){'use strict';(function(c,x){\"object\"===typeof exports&&\"undefined\"!==typeof module?x(exports):\"function\"===typeof define&&define.amd?define([\"exports\"],x):(c=c||self,x(c.React={}))})(this,function(c){function x(a){if(null===a||\"object\"!==typeof a)return null;a=V&&a[V]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function w(a,b,e){this.props=a;this.context=b;this.refs=W;this.updater=e||X}function Y(){}function K(a,b,e){this.props=a;this.context=b;this.refs=W;this.updater=e||X}function Z(a,b,\ne){var m,d={},c=null,h=null;if(null!=b)for(m in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(c=\"\"+b.key),b)aa.call(b,m)&&!ba.hasOwnProperty(m)&&(d[m]=b[m]);var l=arguments.length-2;if(1===l)d.children=e;else if(1<l){for(var f=Array(l),k=0;k<l;k++)f[k]=arguments[k+2];d.children=f}if(a&&a.defaultProps)for(m in l=a.defaultProps,l)void 0===d[m]&&(d[m]=l[m]);return{$$typeof:y,type:a,key:c,ref:h,props:d,_owner:L.current}}function na(a,b){return{$$typeof:y,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}\nfunction M(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===y}function oa(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}function N(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?oa(\"\"+a.key):b.toString(36)}function B(a,b,e,m,d){var c=typeof a;if(\"undefined\"===c||\"boolean\"===c)a=null;var h=!1;if(null===a)h=!0;else switch(c){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case y:case pa:h=!0}}if(h)return h=a,d=d(h),a=\"\"===m?\".\"+\nN(h,0):m,ca(d)?(e=\"\",null!=a&&(e=a.replace(da,\"$&/\")+\"/\"),B(d,b,e,\"\",function(a){return a})):null!=d&&(M(d)&&(d=na(d,e+(!d.key||h&&h.key===d.key?\"\":(\"\"+d.key).replace(da,\"$&/\")+\"/\")+a)),b.push(d)),1;h=0;m=\"\"===m?\".\":m+\":\";if(ca(a))for(var l=0;l<a.length;l++){c=a[l];var f=m+N(c,l);h+=B(c,b,e,f,d)}else if(f=x(a),\"function\"===typeof f)for(a=f.call(a),l=0;!(c=a.next()).done;)c=c.value,f=m+N(c,l++),h+=B(c,b,e,f,d);else if(\"object\"===c)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+\n(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return h}function C(a,b,e){if(null==a)return a;var c=[],d=0;B(a,c,\"\",\"\",function(a){return b.call(e,a,d++)});return c}function qa(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=\n0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}function O(a,b){var e=a.length;a.push(b);a:for(;0<e;){var c=e-1>>>1,d=a[c];if(0<D(d,b))a[c]=b,a[e]=d,e=c;else break a}}function p(a){return 0===a.length?null:a[0]}function E(a){if(0===a.length)return null;var b=a[0],e=a.pop();if(e!==b){a[0]=e;a:for(var c=0,d=a.length,k=d>>>1;c<k;){var h=2*(c+1)-1,l=a[h],f=h+1,g=a[f];if(0>D(l,e))f<d&&0>D(g,l)?(a[c]=g,a[f]=e,c=f):(a[c]=l,a[h]=e,c=h);else if(f<d&&0>D(g,e))a[c]=g,a[f]=e,c=f;else break a}}return b}\nfunction D(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}function P(a){for(var b=p(r);null!==b;){if(null===b.callback)E(r);else if(b.startTime<=a)E(r),b.sortIndex=b.expirationTime,O(q,b);else break;b=p(r)}}function Q(a){z=!1;P(a);if(!u)if(null!==p(q))u=!0,R(S);else{var b=p(r);null!==b&&T(Q,b.startTime-a)}}function S(a,b){u=!1;z&&(z=!1,ea(A),A=-1);F=!0;var c=k;try{P(b);for(n=p(q);null!==n&&(!(n.expirationTime>b)||a&&!fa());){var m=n.callback;if(\"function\"===typeof m){n.callback=null;\nk=n.priorityLevel;var d=m(n.expirationTime<=b);b=v();\"function\"===typeof d?n.callback=d:n===p(q)&&E(q);P(b)}else E(q);n=p(q)}if(null!==n)var g=!0;else{var h=p(r);null!==h&&T(Q,h.startTime-b);g=!1}return g}finally{n=null,k=c,F=!1}}function fa(){return v()-ha<ia?!1:!0}function R(a){G=a;H||(H=!0,I())}function T(a,b){A=ja(function(){a(v())},b)}var y=Symbol.for(\"react.element\"),pa=Symbol.for(\"react.portal\"),ra=Symbol.for(\"react.fragment\"),sa=Symbol.for(\"react.strict_mode\"),ta=Symbol.for(\"react.profiler\"),\nua=Symbol.for(\"react.provider\"),va=Symbol.for(\"react.context\"),wa=Symbol.for(\"react.forward_ref\"),xa=Symbol.for(\"react.suspense\"),ya=Symbol.for(\"react.memo\"),za=Symbol.for(\"react.lazy\"),V=Symbol.iterator,X={isMounted:function(a){return!1},enqueueForceUpdate:function(a,b,c){},enqueueReplaceState:function(a,b,c,m){},enqueueSetState:function(a,b,c,m){}},ka=Object.assign,W={};w.prototype.isReactComponent={};w.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");\nthis.updater.enqueueSetState(this,a,b,\"setState\")};w.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};Y.prototype=w.prototype;var t=K.prototype=new Y;t.constructor=K;ka(t,w.prototype);t.isPureReactComponent=!0;var ca=Array.isArray,aa=Object.prototype.hasOwnProperty,L={current:null},ba={key:!0,ref:!0,__self:!0,__source:!0},da=/\\/+/g,g={current:null},J={transition:null};if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var Aa=performance;\nvar v=function(){return Aa.now()}}else{var la=Date,Ba=la.now();v=function(){return la.now()-Ba}}var q=[],r=[],Ca=1,n=null,k=3,F=!1,u=!1,z=!1,ja=\"function\"===typeof setTimeout?setTimeout:null,ea=\"function\"===typeof clearTimeout?clearTimeout:null,ma=\"undefined\"!==typeof setImmediate?setImmediate:null;\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var H=!1,G=null,A=-1,ia=5,ha=\n-1,U=function(){if(null!==G){var a=v();ha=a;var b=!0;try{b=G(!0,a)}finally{b?I():(H=!1,G=null)}}else H=!1};if(\"function\"===typeof ma)var I=function(){ma(U)};else if(\"undefined\"!==typeof MessageChannel){t=new MessageChannel;var Da=t.port2;t.port1.onmessage=U;I=function(){Da.postMessage(null)}}else I=function(){ja(U,0)};t={ReactCurrentDispatcher:g,ReactCurrentOwner:L,ReactCurrentBatchConfig:J,Scheduler:{__proto__:null,unstable_ImmediatePriority:1,unstable_UserBlockingPriority:2,unstable_NormalPriority:3,\nunstable_IdlePriority:5,unstable_LowPriority:4,unstable_runWithPriority:function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=k;k=a;try{return b()}finally{k=c}},unstable_next:function(a){switch(k){case 1:case 2:case 3:var b=3;break;default:b=k}var c=k;k=b;try{return a()}finally{k=c}},unstable_scheduleCallback:function(a,b,c){var e=v();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?e+c:e):c=e;switch(a){case 1:var d=-1;break;case 2:d=250;break;case 5:d=\n1073741823;break;case 4:d=1E4;break;default:d=5E3}d=c+d;a={id:Ca++,callback:b,priorityLevel:a,startTime:c,expirationTime:d,sortIndex:-1};c>e?(a.sortIndex=c,O(r,a),null===p(q)&&a===p(r)&&(z?(ea(A),A=-1):z=!0,T(Q,c-e))):(a.sortIndex=d,O(q,a),u||F||(u=!0,R(S)));return a},unstable_cancelCallback:function(a){a.callback=null},unstable_wrapCallback:function(a){var b=k;return function(){var c=k;k=b;try{return a.apply(this,arguments)}finally{k=c}}},unstable_getCurrentPriorityLevel:function(){return k},unstable_shouldYield:fa,\nunstable_requestPaint:function(){},unstable_continueExecution:function(){u||F||(u=!0,R(S))},unstable_pauseExecution:function(){},unstable_getFirstCallbackNode:function(){return p(q)},get unstable_now(){return v},unstable_forceFrameRate:function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):ia=0<a?Math.floor(1E3/a):5},unstable_Profiling:null}};c.Children={map:C,forEach:function(a,b,c){C(a,function(){b.apply(this,\narguments)},c)},count:function(a){var b=0;C(a,function(){b++});return b},toArray:function(a){return C(a,function(a){return a})||[]},only:function(a){if(!M(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};c.Component=w;c.Fragment=ra;c.Profiler=ta;c.PureComponent=K;c.StrictMode=sa;c.Suspense=xa;c.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=t;c.cloneElement=function(a,b,c){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+\na+\".\");var e=ka({},a.props),d=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=L.current);void 0!==b.key&&(d=\"\"+b.key);if(a.type&&a.type.defaultProps)var l=a.type.defaultProps;for(f in b)aa.call(b,f)&&!ba.hasOwnProperty(f)&&(e[f]=void 0===b[f]&&void 0!==l?l[f]:b[f])}var f=arguments.length-2;if(1===f)e.children=c;else if(1<f){l=Array(f);for(var g=0;g<f;g++)l[g]=arguments[g+2];e.children=l}return{$$typeof:y,type:a.type,key:d,ref:k,props:e,_owner:h}};c.createContext=function(a){a={$$typeof:va,\n_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:ua,_context:a};return a.Consumer=a};c.createElement=Z;c.createFactory=function(a){var b=Z.bind(null,a);b.type=a;return b};c.createRef=function(){return{current:null}};c.forwardRef=function(a){return{$$typeof:wa,render:a}};c.isValidElement=M;c.lazy=function(a){return{$$typeof:za,_payload:{_status:-1,_result:a},_init:qa}};c.memo=function(a,b){return{$$typeof:ya,type:a,\ncompare:void 0===b?null:b}};c.startTransition=function(a,b){b=J.transition;J.transition={};try{a()}finally{J.transition=b}};c.unstable_act=function(a){throw Error(\"act(...) is not supported in production builds of React.\");};c.useCallback=function(a,b){return g.current.useCallback(a,b)};c.useContext=function(a){return g.current.useContext(a)};c.useDebugValue=function(a,b){};c.useDeferredValue=function(a){return g.current.useDeferredValue(a)};c.useEffect=function(a,b){return g.current.useEffect(a,\nb)};c.useId=function(){return g.current.useId()};c.useImperativeHandle=function(a,b,c){return g.current.useImperativeHandle(a,b,c)};c.useInsertionEffect=function(a,b){return g.current.useInsertionEffect(a,b)};c.useLayoutEffect=function(a,b){return g.current.useLayoutEffect(a,b)};c.useMemo=function(a,b){return g.current.useMemo(a,b)};c.useReducer=function(a,b,c){return g.current.useReducer(a,b,c)};c.useRef=function(a){return g.current.useRef(a)};c.useState=function(a){return g.current.useState(a)};\nc.useSyncExternalStore=function(a,b,c){return g.current.useSyncExternalStore(a,b,c)};c.useTransition=function(){return g.current.useTransition()};c.version=\"18.2.0\"});\n})();\n";
AMBOTHAHAHAHAHA
@yuaaangabaa
Hello!!! Feel free to mess around with this val and make it your own :). Just click on "Fork" in the top right. You can change the phrases that show up as you click no, you can change the firstImg and secondImg, maybe even add more images. And you can also change the colors and any of the text on the screen! Have fun with it and hopefully your crush says yes hehe.
HTTP
"Dili na taka tudloan sa math do",
function App() {
const [noClicks, setNoClicks] = useState(0);
</div>
function client() {
createRoot(document.getElementById("root")).render(<App />);
if (typeof document !== "undefined") { client(); }
export default async function server(request: Request): Promise<Response> {
return new Response(
Joke
@slothfuldreams
// Fetches a random joke.
Script
import { email } from "https://esm.town/v/std/email?v=9";
// Fetches a random joke.
async function fetchRandomJoke() {
const response = await fetch(
"https://official-joke-api.appspot.com/random_joke",

emailSummaryHandler
@stevekrouse
Email Summary Service This val is an email handler replies to emails it recieves with an LLM-generated summary. To use, forward an email to paulkinlan.emailSummaryHandler@valtown.email Blog post: https://paul.kinlan.me/projects/email-summary-service/
Email
import { email } from "https://esm.town/v/std/email";
import { OpenAI } from "https://esm.town/v/std/openai";
import { extractValInfo } from "https://esm.town/v/stevekrouse/extractValInfo";
function stripHtmlBackticks(html: string): string {
return html.replace(/^```html\n?/, "").replace(/\n?```$/, "");
export default async function(e: Email) {
console.log(e.from, e.subject);
const openai = new OpenAI();
const summary = await openai.chat.completions.create({
messages: [
resyBot
@maxm
Resy bot This bot books restaurant reservations via Resy. Use it to snipe reservations at your favorite restaurant! How to use it Set up a scheduled val to call it like this: import { resyBot } from "https://esm.town/v/stevekrouse/resyBot?v=2";
import { email } from "https://esm.town/v/std/email?v=13";
export default async function (interval: Interval) {
const bookingInfo = await resyBot( {
slug: 'amaro-bar',
city: 'ldn',
day: '2023-07-05',
start: '19:00',
end: '21:00',
partySize: 2,
// Use https://www.val.town/settings/secrets for these!
email: Deno.env.get("resyEmail"),
password: Deno.env.get("resyPassword"),
})
// If the val doesn't error, it successfully made a booking!
// Send yourself an email like this:
await email({ text: bookingInfo, subject: 'resy bot made a booking for you!' })
} How it works This val makes the same requests that your browser would make when you reserve a slot on Resy (that's why it needs your login info – to request an auth token). When there isn't a matching slot, this val errors and nothing else happens. When a booking is available, this val books it and returns a description of the booking so you can email it to yourself (Resy will also email you). This val will then stop attempting bookings for you until you change one of the arguments you're passing (it concats the non-sensitive arguments and uses this as a key). Credit to @rlesser and @alp for their existing Resy vals (search for resy on here).
Script
import { email } from "https://esm.town/v/std/email?v=13";
export default async function (interval: Interval) {
const bookingInfo = await resyBot( {
valle_tmp_0849921550869434716277180134862967
@janpaul123
// Import the required modules
HTTP
import { blob } from "https://esm.town/v/std/blob";
// Fetch all stories or initialize an empty array if no data exists yet
export default async function main(req: Request): Promise<Response> {
let stories = await blob.getJSON("hackerNewsStories") || [];
// Check the request method to determine the action
importProjectFile
@maxm
Simple wrapper to download project static files. import { importProjectFile } from "https://esm.town/v/maxm/importProjectFile";
const styleCss = await importProjectFile(import.meta.url, "../public/style.css")
Script
export async function importProjectFile(moduleUrl: string, path: string) {
const url = new URL(path, moduleUrl);
const resp = await fetch(url, { method: "GET", headers: { "Authorization": `Bearer ${Deno.env.get("valtown")}` } });
UserLinks
@iamseeley
An interactive, runnable TypeScript val by iamseeley
Script
/** @jsxFrag Fragment */
import { jsx, Fragment } from 'https://deno.land/x/hono/middleware.ts'
export default function UserLinks({ username, links }) {
return (
<div className="flex flex-row gap-2 flex-wrap sortable">
onlineGamesAPK
@nauss21
@jsxImportSource https://esm.sh/react@18.2.0
HTTP
icon: "🃏"
function GameCard({ game }) {
return (
</div>
function App() {
return (
</div>
function client() {
createRoot(document.getElementById("root")).render(<App />);
if (typeof document !== "undefined") { client(); }
export default async function server(request: Request): Promise<Response> {
return new Response(`