| 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:
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.
---pt---
Antes do Val.town, fazer deploy de um simples cron job significava: criar um repositório, escrever um Dockerfile ou configuração serverless, configurar CI, definir variáveis de ambiente, fazer deploy para AWS Lambda ou um VPS, configurar CloudWatch ou cron-job.org para o disparar... Já percebeste.
Para projectos pessoais e experiências, esse overhead mata o momentum.
O Val.town inverte isto completamente. Um cron job é apenas uma função TypeScript:
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 acima de 50k!", text: `Preço: ${data.price}` });
}
}
Define o agendamento, guarda. Corre. É tudo.
- Alertas de preços de cripto — notifica-me quando BTC ou ETH sobem ou descem mais de 5% numa hora
- Tracker de imóveis — faz scraping de listagens de imóveis portugueses para critérios de pesquisa específicos
- Pipeline de dados de futebol — ingere dados de partidas do fbref, enriquece com IA, expõe uma REST API
- Este portfolio — servido como um HTTP val
O Val.town tem limites — tempo de execução, armazenamento e egress. Para cargas de produção, não substitui infraestrutura própria adequada. Mas para 80% das necessidades de projectos pessoais? É imbatível.
Se ainda não experimentaste, passa 10 minutos em val.town. Os teus projectos de fim-de-semana vão agradecer-te.