01 / Market intelligenceLive

PT property and used-car market intelligence

An institutional-grade read on two of the most opaque markets in Portugal, built for ordinary buyers.

273k
live listings (property + cars)
What it does

A continuously updated index of Portugal's property and used-car markets, around 273,000 live listings (property and cars) refreshed by a self-healing scraping fleet.

On top of the data sits statistical deal-finding that scores every listing against its true comparables, valuation models, rental-yield maths, and a demand-velocity engine that answers what is actually selling, and how fast.

It even spots cross-border import arbitrage: cars that are meaningfully cheaper to buy abroad and bring in.

Why it exists

Buying a home or a car here is guesswork dressed up as a marketplace. I wanted to hand a regular buyer the edge that funds and dealers keep for themselves.

The stack
TypeScriptNodePostgreSQLStatistical modelingScraping fleet
Status
Running continuously

The live dashboards

Open the live thing
imoveis.diogoandrade.com
Screenshots coming soon.

Public product. Open the live dashboard above. A screenshot is coming here.

Next build
Self-healing distributed scraping fleet
02 / Distributed systemsPrivate build

Self-healing distributed scraping fleet

The engine room under the market-intelligence platform: quietly resilient, spread across borders.

3+
countries of meshed nodes
What it does

A mesh of scraper nodes across several countries, wired together over Tailscale, pulling work from a central claim-queue so no two nodes ever step on each other.

Each source gets its own anti-bot strategy (pacing, fingerprints, rotation), and when a node trips a block or falls over, the fleet notices, re-queues the work, and recovers without me touching it.

Why it exists

Scraping at this scale breaks constantly. The only way to keep 227k listings fresh is a system that expects failure and heals around it.

The stack
NodeTailscaleClaim-queueAnti-bot strategiesLinux
Status
Self-healing, 24/7

Architecture and fleet view

private, internal tooling
Screenshots coming soon.

Private infrastructure, best shown as an architecture diagram and node-health captures.

Next build
29-channel automated short-video factory
03 / Media automationPrivate build

29-channel automated short-video factory

A one-person content studio that scripts, voices, renders and publishes while I sleep.

29
channels, publishing daily
What it does

n8n orchestrates the whole pipeline: it sources topics, writes scripts, renders fully designed videos in Remotion, voices them with GPU-accelerated TTS, captions them, and publishes daily across 29 channels.

No timeline, no editor, no render farm rented by the hour. Just a graph that runs itself and a GPU that earns its keep overnight.

Why it exists

I wanted to prove that a serious, multi-channel content operation could run with a team of zero, and learn where automation's ceiling actually is.

The stack
n8nRemotionGPU TTSNodeFFmpeg
Status
Publishing daily

Pipeline and sample output

private, n8n + Remotion
Screenshots coming soon.

Private build, best shown as a short screen-recording of the pipeline and a sample render.

Next build
Ralph, a personal AI assistant
04 / AI assistantPrivate build

Ralph, a personal AI assistant

One calm chat window that quietly runs an entire homelab.

30
services it can reach
What it does

Ralph lives in Telegram. Behind the chat is an MCP tool layer that lets it actually do things: reach into a 30-service homelab, run jobs, fetch data, change state.

It routes intelligently across Claude, Gemini and a local Ollama model depending on the task, the cost and the privacy, so the right brain answers the right question.

Why it exists

I did not want a dashboard for every service I run. I wanted one interface I could text from anywhere, and have it just handle things.

The stack
MCPClaude APIGeminiOllamaTelegramNode
Status
Always on, in my pocket

Ralph in conversation

private, Telegram bot
Screenshots coming soon.

Private assistant, shown as redacted chat captures.

Next build
d1060, an AI web-agency pipeline
05 / AI web agencyLive

d1060, an AI web-agency pipeline

Paste a Google-Maps URL. Get a deployed website, DNS and email before your coffee is cool.

under 3 min
Maps URL to live site
What it does

Drop in a Google-Maps URL for a business. Claude analyses who they are, what they do and how they should look, then the pipeline generates a complete website, deploys it, and configures DNS and email.

End to end, in under three minutes, with no human in the loop.

Why it exists

Small local businesses deserve a real web presence without the agency runaround or the price tag. This collapses weeks of work into minutes.

The stack
Claude APIAstroCloudflareDNS and email automationNode
Status
Live, generating sites

A generated demo site

Open the live thing
oficinaaml.diogoandrade.com

Public product. Load a generated demo below, or open it live.

Next build
Scalp, a market terminal for car dealers
06 / Dealer operator toolPrivate build

Scalp, a market terminal for car dealers

The dealer-facing edge of the market intelligence: what to buy, what sells, and where to import it from.

1:1
built with a real dealer
What it does

A private operator dashboard that turns the raw market into decisions: which models are in demand, how fast they sell, and where a car lands cheaper imported than bought locally.

It is the signal a dealer never had before. Built hand in hand with someone who buys and sells cars for a living, so it answers the questions he actually asks.

Why it exists

A dealer I spoke to bought purely on price and brand, with no read on demand. The gap was obvious: give him the same market edge the platform gives buyers.

The stack
TypeScriptDemand velocityImport arbitrageCloudflare Access
Status
Private operator tool

The operator terminal

private, operator only
Screenshots coming soon.

Private build, shown as redacted terminal captures.

Next build
SPL Brindes, a promotional-products store
07 / E-commerce migrationLive

SPL Brindes, a promotional-products store

A full promotional-products catalogue, taken off WooCommerce and rebuilt from scratch.

0
WordPress left behind
What it does

A complete promotional-products catalogue, migrated off WordPress and WooCommerce and rebuilt as a fast static Astro storefront backed by a FastAPI and SQLite service.

It imports the supplier catalogue natively (Makito), runs a quote-request flow and an admin behind Cloudflare Access, and ships a Discord bot, all security-hardened (CSP, XSS fixes, a Turnstile-gated form).

Why it exists

A real business was stuck on a slow, fragile WooCommerce stack. I moved it to something fast, cheap to run, and fully under control.

The stack
AstroFastAPISQLiteCloudflare PagesMakito import
Status
Live, self-hosted

The storefront

Open the live thing
splbrindes.diogoandrade.com
Screenshots coming soon.

Public product. Open the live store above. A screenshot is coming here.

Next build
Portugal Bets, a self-running community
08 / Monetized communityPrivate build

Portugal Bets, a self-running community

A Discord community that provisions itself, gates premium content, and bills through Stripe.

auto
provisions itself
What it does

A Discord bot that builds its own community: one setup command provisions the whole server, a honeypot, and per-bet-type premium channels.

It is fed by my football model, posts picks on a schedule, and sells premium access through Stripe, granting the role automatically on payment.

Why it exists

I wanted to watch a content product run end to end with zero manual ops: provisioning, posting, paywall and billing, all automated.

The stack
Nodediscord.jsStripeFootball model
Status
Live, monetized

The bot in the server

private, Discord
Screenshots coming soon.

Private community, shown as redacted server captures.

Next build
A license-plate decoder
09 / Auto toolingLive

A license-plate decoder

Type a Portuguese plate, get the car: make, VIN and what can be decoded, for a dealership.

instant
plate to vehicle
What it does

A plate lookup for a car dealership: enter a Portuguese registration and it resolves the make, the VIN where available, and what it can decode about the vehicle.

Built honestly around the limited public sources: it surfaces what exists and is clear about what it cannot get without paid VIN data.

Why it exists

A dealer kept looking plates up by hand. This turns a repetitive chore into one box and a button.

The stack
FastAPIAstroPlate and VIN sources
Status
Live

The lookup

Open the live thing
matriculas.diogoandrade.com
Screenshots coming soon.

Public tool. Open it live above. A screenshot is coming here.

Next build
A world radio player
10 / Web appLive

A world radio player

Thirty thousand radio stations from around the world, with now-playing and lyrics.

30k+
stations worldwide
What it does

A clean player over the Radio Garden catalogue: browse by place, hit play, and see now-playing plus auto-fetched lyrics.

It even hooks into Lidarr, so a track you like can be queued straight to your own music library.

Why it exists

A small, joyful build. Sometimes you make a thing just because it would be nice to have.

The stack
AstroRadio Garden APIlyrics.ovhLidarr
Status
Live

The player

Open the live thing
radio.d1060.com
Screenshots coming soon.

Public. Open it live above. A screenshot is coming here.

Next build
GPV, a community association site
11 / Community, non-profitLive

GPV, a community association site

A warm, fast site for the community association my mother founded, taken off WordPress.

20
pages, hand-migrated
What it does

A 20-page site for Grupo Partilha de Vivencias, a Portuguese community association, moved off a slow WordPress install to a static Astro site on Cloudflare Pages.

Donation tiers, projects, events and contact, with bot-protected forms, rebuilt to load instantly and cost almost nothing to run.

Why it exists

My mother is a social worker who founded GPVPT, and I have helped build and run it alongside her for years. This is part of that.

The stack
AstroCloudflare PagesTurnstile
Status
Live, non-profit

The site

Open the live thing
gpvpt.pages.dev
Screenshots coming soon.

Public, non-profit. Open it live above. A screenshot is coming here.

Next build
The homelab
12 / InfrastructurePrivate build

The homelab

Serious infrastructure, run from home, with zero open doors to the internet.

30
Docker services, 0 inbound ports
What it does

A Proxmox host running around 30 Docker services, exposed to the world through Cloudflare Tunnels across three zones, with not a single inbound port open. Tailscale handles the private side.

It is also where my custom Claude MCP servers live, giving every other project a secure, tunnelled home.

Why it exists

I wanted production-grade infrastructure on my own terms, private, secure, and mine, for roughly the cost of electricity.

The stack
ProxmoxDockerCloudflare TunnelsTailscaleCustom MCP servers
Status
Running on my own metal

Topology and service map

private, self-hosted
Screenshots coming soon.

Private infrastructure, shown as a topology diagram and a service overview.

Next build
PT property and used-car market intelligence