Val Town Newsletter 10
Steve Krouseon
Val Town turns one today! In the last two weeks we shipped Val READMEs, the new val.run Express API, a redesigned Val action menu, a dozen new guides, a RFC for an expanded Vals API, a blog post about Public Key Auth, example pages around NPM packages and APIs, more fetch proxies, and more. I also recorded a new video. A lot has changed since the last one in February!
Val Town turns one year old today 🥳
It’s been a fun year! I’m very grateful to all of you for investing your time and creativity in our nascent platform, and our team and advisors for believing in us and working hard this year.
I am happy with our progress and how we iterate quickly. We have built a elegant product that hundreds of people get value from. We have a small group of passionate users. We have revenue.
We are still in search of explosive product-market-fit growth. We want individual vals to go viral, which would bring new users to Val Town, making their own viral vals, which would get more users… and we’re off to the races! I have faith that if we keep listening to users, grinding on the product, and are thoughtful about facilitating creativity and virality, sparks will fly, magic will happen, and things will go up and to the right.
Our ambition is to be the default place code runs, from hobby projects to production code. We have a long way to go, but a good start, a great team, and a plucky can-do attitude.
Here’s to the next year of Val Town!
Add markdown READMEs to your vals.
In response to a security vulnerability, we moved up the launch of our the new val.run Express API. It is entirely subdomain-based to provide an isolated security model and allow for fully-customizable API paths, as required by some webhook specs, such as ChatGPT plugins. Read more in the announcement post.
Val’s new action menu combines four buttons (Share, Logs, Move, Schedule) into one.
The guides section on docs.val.town has been expanded to include more examples of things you do can with vals like creating web hooks, web scraping, saving form data, generating PDFs, and more including more service-specific guides like setting up chat bots, and fetching and storing data.
We have a RFC open to enable more programmatic use of Val Town, and to support the pioneers who are building tools that currently use our undocumented, unstable, internal API. It’s only open until Sunday, July 9th, so please get your comments https://blog.val.town/_astro/screenshot_2023-07-05_at_1129062x.CpdoQuZ7_Z15UuqV.webppng" loading="lazy" decoding="async" src="/_astro/screenshot_2023-07-05_at_1129062x.CpdoQuZ7_Z15UuqV.webp">
We recently instituted hard 100kb limits on val outputs. Now instead of throwing an error and returning nothing, we truncate the outputs at 100kb and try to “repair” the remaining output to be valid JSON. This is meant to be a strict improvement over showing you nothing, but it’s still not an ideal user experience. We have plans to increase these limits in a more https://blog.val.town/_astro/screenshot_2023-07-05_at_161116.B087BoD9_2qcydj.webp 2023-07-05 at 16.11.16.png" loading="lazy" decoding="async" src="/_astro/screenshot_2023-07-05_at_161116.B087BoD9_2qcydj.webp">
I prototyped a authentication protocol for Val Town users so Val Town users can authenticate themselves when calling each others’ vals. This work paves the way for per-user rate limiting and billing within Val Town.
One of the biggest requests when folks sign up to Val Town is for us to “inspire” them with potential uses of the product. We are experimenting with having you setup your own inspiration emails about what you can use Val Town for — during the onboarding tutorial! We have you schedule a val that will send you an email of an inspiring val or usecase every day. You can set yours up here. Because it’s just a normal val,https://blog.val.town/_astro/screenshot_2023-07-05_at_1221512x.DCpY2RB6_Z1S2gL1.webpalt="Screenshot 2023-07-05 at 12.21.51@2x.png" loading="lazy" decoding="async"https://blog.val.townhttps://blog.val.town/_astro/screenshot_2023-07-05_at_1222262x.CUpp7LkT_Z15yVBm.webp1.webp">

We want Val Town to be the place you go for examples of how to use an NPM package or use an API. Now you (and Google searchers) can explore Val Town from the perspective of APIs and NPM packages.
Or by NPM package:

We proxy all fetch requests so you aren’t affected by the fetching of other Val Town users. Every request comes from a different IP address. However we ushttps://blog.val.town/_astro/screenshot_2023-07-05_at_1230092x.OqyK4YH6_1XUJKk.webpy other limitations. Now we have multiple proxies so we can support many more (hopefully allhttps://blog.val.town/_astro/screenshot_2023-07-05_at_1230002x.DCMAmLKr_1bp7U4.webpat 12.30.09@2x.png" loading="lazy" decoding="async" src="/_astro/screenshot_2023-07-05_at_1230092x.OqyK4YH6_1XUJKk.webp">
Before
Secrets page to let you update existing secrets in-place and check when a secret was last updated.

You can link to a specific val version now, via ?v=version, ie val.town/v/pdebie.publishYoutubeToLemmy?v=25.
Tip: If you share a val URL in a sochttps://blog.val.townhttps://blog.val.town/_astro/untitled-1.CQtr04aQ_ZCBH9o.webp image of the version of your code at that moment in time, but this is a heavily cached image. You can always get the appropriate version of that image by passing a version number.

Now it’s lhttps://blog.val.town/_astro/untitled-2.QQBM9iXJ_ZaH1nG.webpounts as 5 likes, and you need at least one like to show up at all (but you can like your own val).
Get welcomed to Val Town, by Val Town, and
What looked like untitled_E8W8FGY now is now the friendlier untitled_magentaMarmoset
Before

Mostly for Google to see all our pages, but you may find it useful too.

setTimeout is back, but not persistent/durableVal names are now represented as case insensitive (citext)You now can reuse val names after a deletionUser profiles are now nested under /u/handleCmd-enter to submit the feedback formval.town/docs redirects to docs.val.townUnreachable code warningAs always we’re quite responsive to feedback and suggestions, so let us know what you want. We’re planning:
console.smsVals API (to power a VS Code extension & more!)Fork Vals (in a first-class, semantic way where we track this in the database)Autosave unsaved changesSwagNotifications (errors, likes, references, forks, etc)Improvements to embedded valsOAuth Helpers - get auth tokens to your favorite appsPublic foldersVal version pinningComments on valsIntegrated LLMs (have AI write your vals for you)More web-standard and JS compatibilityhttps://twitter.com/stungeye/status/1671241335100297216?s=20
https://twitter.com/stevekrouse/status/1674107868658692098?s=20
https://twitter.com/stevekrouse/status/1674486635860246528?s=20
https://twitter.com/stevekrouse/status/1674100338683412507?s=20
https://twitter.com/stevekrouse/status/1671213704526823428?s=20
https://twitter.com/stevekrouse/status/1671621646673739779?s=20
https://twitter.com/n_moore/status/1673439853294374915?s=20
https://twitter.com/stevekrouse/status/1674109636683653120?s=20
https://twitter.com/wesbos/status/1674428534734069765?s=20
https://twitter.com/stevekrouse/status/1674457831074930688?s=20
https://twitter.com/stevekrouse/status/1672271402672553984?s=20
https://twitter.com/stevekrouse/status/1672000502446292993?s=20
Edit this page
