79 comments

[ 2.5 ms ] story [ 133 ms ] thread
[flagged]
> Vals are small JavaScript or TypeScript snippets of code, written in the browser and run in our servers.

Took two seconds by going to the home page.

While you describe the technical approach, I think OP was asking "what is it? What does it do? Why would I care?"

I can't really figure out the "Why would I care?" part from their website. I've been hearing them pop up a bunch. Just don't understand what they do.

Their homepage, if you scroll a bit down, has a fairly good explanation:

"""

What is Val Town?

Val Town is a social website to write and run code.

Vals are small JavaScript or TypeScript snippets of code, written in the browser and run in our servers.

Create scheduled functions, email yourself, and persist small pieces of data — all from the browser.

"""

So Val town is basically AWS Lambda. That still doesn't give me a good explanation of a "val". I'm guessing they don't want to use an AWS trademark but when I loaded the page I got a nice big table of prices and no useful definition of a "val".
It always surprises me when a tech company doesn't use the proper MB GB.

It's one thing if they just don't care (screw the pedants, whatever) or don't know (which is scary but whatever), but valueing looks/typeface more than technical details in their technical offering is just bizarre.

You understand it, I understand it, everyone understands it: it's just a purely aesthetic choice.
> You understand it, I understand it

That may be, but...

> it's just a purely aesthetic choice.

SI metric prefixes[0] are case-sensitive; "mb" is not the same as "Mb". Not that computing has ever been rigorous on this point, but the point stands.

[0]: https://en.wikipedia.org/wiki/Metric_prefix#List_of_SI_prefi...

>> Like the numbers they combine with, SI units and unit symbols are never shown in italics.

That's so absurdly specific. I love it!

You can get around that by using text-transform, then you can have the correct one in the DOM and the pretty one on your screen!

Is that not what you meant? :D

Apologies! I've been in a lowercase mood recently
Especially since bandwidth is usually measured in bits, and storage in bytes. Units matter!
Cool product and great execution! I've had the idea to build something like this for a while, but I'd rather use this.
Thanks! Let me know if you have any feedback or suggestions :)
Can someone define "val"? I don't think that I've seen that, before.
Great question! A val is a small snippet of JavaScript/TypeScript that runs on our servers. You can also schedule them.

We're trying to make a new kind of web primitive, like a Tweet or a Github repo, or more pointedly, like a Github Gist, but one that runs.

I feel compelled to tell you that your website explains your product and what I might use it for incredibly well. It's a surprisingly rate trait in a service/product marketing site.
Any word on other language support? I kind of imagine a local hosted version quite similar to this being quite useful, and while this isn't locally run it's also quite cheap, so i wouldn't mind using it instead of local.

With that said, i'd still want to "use my own languages". My specific interest being Rust.

Our strategy is to go extremely deep into one language/ecosystem (JS/TS) and be able to provide extremely good tooling around it. The downside is that there won't be a Rust version any time soon, if ever.

I would make a plug for TypeScript though. It's a pretty fantastic language and while it's not Rust, I learned in my last startup that it's not that much slower than Rust, that much of the time: https://zaplib.com/docs/blog_post_mortem.html

Totally fair, appreciate the thoughts and answer!
I assumed it was a play on "value town"?

I'll add a +1 to praising your (sadly rare) ability to actually explain what your product does on your product's landing page. I got it instantly from your tagline "If GitHub Gists could run And AWS Lambda were fun".

I can see myself using this for one-off scripts and personal stuff. Out of curiosity, is it intended for more than that as well?

Thanks!!

I originally called it eval town and called the units of computation evals, but my friend JP pulled a sean parker on me and told me to drop the 'e', and it became val town! It's short for 'eval' or 'evaluation' or 'value' as in a 'javascript value'. What's value town?

Really appreciate that you understand the value prop!

We want to be used for all sorts of compute one day, but want to start with lighter-weight things (think zapier for programmers or api prototyping) but one day scale to be a real aws or heroku replacement, but that's a long ways off

Will you be adding external triggers to run the vals? Eg. If I create a page in Notion x val should run.

What would be amazing is if i could also connect my Notion account to somebody else’s val so they could run the val using my credentials.

In a first-class way? Probably some day!

Today the way you can do it is either 1) polling for new things (scheduled vals make this really easy) or 2) creating a webhook with val town (also super easy if the service you want has webhooks).

Happy to help with either of these: email me at steve@val.town if you want to pair program or something :)

Yeah, that’s a feasible work-around.

I’m thinking the val author could require a Notion auth in order to run the val. Once I’m logged-in, the val can use my creds to make requests to Notion API on my behalf.

What would also be a amazing is to be able to configure custom inputs and show a UI to add/overwrite these input params before I run a val. I’m thinking similar to the forms feature in Google Colab

Our use case: we have some TypeScript scripts that we want to expose to our non-technical folks. Currently we share the scripts via GitHub and let them run them with Deno as CLI.

Thanks for your kind offer, btw.! We don’t have a urge right now, but will be more than happy to migrate our scripts to val, once there is a way to work around the points above!

Really love what you’re doing with val. We are big fans already and will be watching closely!

Great ideas! I am particularly enamored by the google colab forms - thanks so much for that pointer!

Yeah, I'd love to win that usecase away from github scripts + locally running via deno! One day!

One more thing: just tried the editor and one thing i’m already missing is GitHub co-pilot. Maybe there is a way to integrate co-pilot into val? Zed editor just did same very recently
Value town is when you make a chunky bet on the river with a fairly obvious hand and get that call from a decent 2nd best hand!
Friendly feedback this background info is strangely missing from your "about" content.
Hmm, those sound unappealing to me. With Tweet it's controlled by the guy who's RTing disinfo, with GitHub it's stolen by Copilot.

A better "web primitive" would be something portable/federated.

The code by itself is portable by definition. This is just a container to run it. Otherwise, just put it in a github gist.
From the website: "Vals are small JavaScript or TypeScript snippets of code, written in the browser and run in our servers. Create scheduled functions, email yourself, and persist small pieces of data — all from the browser."
These use cases confuse me. If I needed to schedule an email to myself, why wouldn't I just run a simple local node server with my JS function on my home computer?

I'm sure it's a failure of my imagination but I'd just love to have more salient "ah ha!" example use cases of this platform.

I'd guess that not everyone has a device that runs 24/7 and is online all the time.
It looks like a "Function as a Service" offering, comparable to AWS Lambda, Cloudflare Workers, Netlify Functions, GCP Cloud Functions, and so on.
I think the unit of runs/minute is wrong. Shouldn't it be a bare quantity, not a number of milliseconds?
Great catch, thanks! Pushing a fix now...
(comment deleted)
Something similar I’ve been using is RunKit. It’s easy to quickly test something out and forget about. Will keep Val in mind though!
Reminds me of Auth0 webtasks (R.I.P), which was a stellar product
What runtime do the vals run on? Deno?

What are the limitations?

Yes, it's Deno. What other limitations are you curious about besides the ones listed on the pricing page?
Hi,

I love this idea of interdependent scripts that everyone can build powerful things on top of.

If only more companies were automatable such as groceries, Amazon shopping, pizza/food delivery, automatic webhosting (upload an tgz file and host a static site)

Many of the static webhosting sites can pull from GitHub. That seems pretty automatable.
I'm having a hard time understanding the pricing model.

As far as I can tell the pro plan gets you (max) 432,000 CPU seconds a month. Let's assume this is about equivalent to a 1GB lambda instance. That amount of CPU time and requests costs around $8/mo, and if you use less you pay less. I guess Val lets you run low-CPU tasks in the background for waiting on web requests, etc., but you can also do this with low-memory lambda instances.

With lambda you also know that Amazon will stand behind the pricing structure, and the service won't disappear/10x pricing in a few years when it's time to juice the stats.

It is nice to see competition in this space, but the pitch would be improved by offering a clearer value prop over existing offerings like Lambda.

Such great feedback! Thank you!

Val Town Pro is priced around "developer productivity" more than low-level compute costs. Ideally you start as a free user and find the platform so useful that when you bump against the limitations, you're happy to pay $10/month for more resources.

I'll have to agree with you here. There's no way you can compete with AWS on price per compute cycle. Just compete on the experience and simplicity. That's what's compelling about this.
Looks really compelling, Steve! Fingers crossed for your success with it. Looking forward to play around with Val Town when time permits.
I feel like this is begging for an open source version that just runs as Github Actions.
I think it would be cool if you eventually provided an app to facilitate people who want an easy way to get notifications on mobile devices. There are services which will already do this, but would be nice to have one bundled with the paid plan which wasn't liable to go away.
I've started using NetNewsWire for this recently - it can poll RSS/Atom feeds and show notifications.

It's not real-time though. For real-time notifications I've had good results from using either Slack or Discord with bots publishing to channels via webhooks.

Great idea! Right now we recommend https://ntfy.sh/ but you're right, we probably should do it bundled into the service
There is also web notifications api!
You used to be able to do something very similar with Perl, right? A bunch of independent scripts that were basically web endpoints? I forget the name of those little scripts...

edit: CGI ?

Not very similar at all
As a val.town user and former cgi-bin user, I'd say it's a bit similar in terms of how I use it. If webhooks were a thing in the cgi-bin days and I needed a one-off script to run every time a webhook fired, I would have put a script in cgi-bin. Now I'd create a val.
...how is it not similar? A perl script sits on a always-on server, ready to execute. You call it. It executes.
This looks really useful. Simple pitch and lots of potential applications. Say hi to Dan!
I bet Nostr[1] integration in scripts will unlock tons of value for this. A totally open messaging and posting protocol that is maximally simple.

[1]: https://github.com/nbd-wtf/nostr-tools

(comment deleted)
I was disappointed (though not really surprised) to find that the Deno on val.town is slightly locked down, to the point that it can't run Pyodide.

I was hoping to get a Python script running there via Deno + WebAssembly + Pyodide, mainly because it would have been an entertaining hack!

I tried to get a version of this running there: https://til.simonwillison.net/deno/pyodide-sandbox

I love the product. Very creative simple and useful.

From about page you said you raise 1.5mm in pre seed funding. congratulations.

Your about says you're not hiring, so what are you planning on doing with the money? That struck me as an astronomical amount esp for a pre seed

Thanks! We're a team of four and that's about as big as you can get on 1.5m on full-time rates these days :shrug:
Thanks for answering. I guess you guys are paying yourselves competitively. I thought most startups pay maybe 150k + equity with maybe a one year runway. Which would mean you would be able to support a team of 10.

https://kruzeconsulting.com/do-founders-of-startups-that-hav...

Maybe not everyone wants to cut it so fine? Makes sense to be conservative in this kind of climate. Never know how long until you can raise again
Presumably:

- the cost of an employee is not just their salary, but health insurance, taxes, a computer setup

- it costs something to run the service

So they may well be paying 4 people 150K each, and they have a year of runway.

Right, but presumably with some insurance and other benefits, total yearly run cost per employee are a bit higher.
This is really neat. I don't have much trouble deploying a Netlify function, but I like the idea of being able to schedule your cloud functions like Chron jobs. I might just use this for a future project.
Could I use this to host Playwright test examples on my blog?

I would like to make all of these code examples interactive

https://ray.run/blog/tips-for-writing-efficient-playwright-t...

This requires running Chrome on the VM though

Does this work with Val?

I would love to help you with that, but you're right Val Town can't run Chrome... Is there a hosted-playwright api service we could use?
Congrats Steve and Andre! Product has come a long way since I got a demo 9 months ago, and definitely see the applications and applicability of the product now :)

Looking forwards to what you guys are able to continue building in the future--and will likely be using Valtown for scripts of my own!

What does it mean for a Val to be private? Private to whose eyes? And how do you verify that a private Val was executed properly?
This is rad! Its so simple to use and I love the idea of making things composable and building off everyone else's code, I'm still trying to wrap my brain around the different ways to use this. Keep up the good work!