| slug: | valtown-scratchpad |
|---|---|
| date: | Feb 22, 2026 |
| readTime_en: | 4 min read |
| readTime_pt: | 4 min leitura |
| title_en: | Val.town is the scratchpad I always wanted |
| title_pt: | Val.town é o bloco de notas que sempre quis |
| excerpt_en: | Deploying a cron job used to take 20 minutes of boilerplate. Now it's 30 seconds. A quick tour of how I use Val.town for side projects. |
| excerpt_pt: | Deploy de um cron job costumava levar 20 minutos de boilerplate. Agora são 30 segundos. Uma visita rápida ao meu uso do Val.town. |
| tags: | Val.town, TypeScript, Automation |
Before Val.town, deploying a simple cron job meant: create a repo, write a Dockerfile or serverless config, set up CI, configure environment variables, deploy to AWS Lambda or a VPS, set up CloudWatch or cron-job.org to trigger it... You get the idea.
For side projects and experiments, that overhead kills momentum.
Val.town flips this completely. A cron job is just a TypeScript function:
```ts export default async function() { const res = await fetch("https://api.example.com/prices"); const data = await res.json(); if (data.price > 50000) { await email({ subject: "BTC above 50k!", text: `Price: ${data.price}` }); } } ```
Set the schedule, hit save. It runs. That's it.
- Crypto price alerts — pings me when BTC or ETH move more than 5% in an hour
- Imóveis tracker — scrapes Portuguese real estate listings for specific search criteria
- Football data pipeline — ingests fbref match data, enriches with AI, exposes a REST API
- This portfolio — served as an HTTP val
Val.town has limits — execution time, storage, and egress. For production workloads, it's not a replacement for proper infrastructure. But for the 80% of side project needs? It's unbeatable.
If you haven't tried it, spend 10 minutes on val.town. Your weekend projects will thank you.