RSSAmplifier

Blog

Roy Portas - Writing

Articles on microfrontend architecture, frontend platform engineering, and scaling frontend teams.

royportas.comRSS feed ↗23 posts

Latest posts

My Testing Strategy: Unit, E2E, Load, and Chaos Testing Explained

A practical breakdown of the four test types I use on every production app, with tools and trade-offs for each.

Coolify Reference Notes

A reference for getting Coolify running and configuring apps: server setup, swap, OrbStack local dev, and deploying via volumes or ports.

Setting up Drizzle ORM with Bun SQLite

How I wired up Drizzle ORM with Bun's native SQLite driver.

Automated deployments to a VPS with GitHub Actions and Docker Compose

How I set up automated deployments to a VPS without a public IP address, using a self-hosted GitHub Actions runner.

An opinionated TanStack Start project structure

The directory structure I use for TanStack Start apps, with explanations of each convention and why the routing layer is laid out the way it is.

Homebrew Cheatsheet

Common commands for interacting with Homebrew, the macOS package manager

Manual @font-face rules for variable fonts

Why I replaced fontsource's auto-injected @font-face rules with manual declarations to trim unnecessary @font-face rules and load Latin-only subsets.

PostHog analytics in TanStack Start

How I set up PostHog in a statically prerendered TanStack Start site, covering SSR-safe initialisation, SPA pageview tracking, and proxying through Vercel.

Custom sitemaps in TanStack Start

How I replaced the auto-generated sitemap in TanStack Start with a hand-rolled server route to get real lastmod dates and per-URL priority control.

Load testing TanStack Start with k6 and Prometheus

How I built a realistic SSR load test rig for TanStack Start, wired up prom-client for Prometheus metrics, and what the results looked like under load.

Deploying a static TanStack Start app to Vercel

How to configure TanStack Start's static prerender target and deploy it correctly to Vercel, including the non-obvious vercel.json settings that make routing work.

Markdown in Next.js

A deep dive into the options for handling Markdown content in Next.js applications

Using GitHub Models with ai-sdk

A quick guide on how to use GitHub Models with the AI SDK

Mac Dev Setup

My current macOS development setup guide, covering installing apps and configuring system settings

2025 Portfolio Redesign

Every couple years I like to redesign my portfolio using the trending technologies in the web development community. This year I wanted to try out Next.js with App Router, Tailwind CSS and Content Collections.

Next.js Forms and Server Actions

I've recently been working with Next.js and React Server Components, which provides a nice way to build fullstack web applications quickly. One of the trickiest parts was working with forms and server actions, these are my notes on what I figured out.

Setting up a Nomad dev environment on macOS

I found some tricks with getting a Nomad dev environment working reliably on Mac, particularly a Apple Silicon Mac.

Simple GitOps with Nomad

I was looking at a simple way to do GitOps with Nomad for my Homelab. Unlike the Kubernetes ecosystem, there doesn't seem to be many examples of GitOps workflows in Nomad.

Building webapps fast with Next.js app router

Setting up webapps can be time consuming, particularly when the goal is to build a quick proof of concept of something

Easily switch dark mode on macOS

I like to change my color theme based on the environment I'm working in, this guide outlines how to setup single-click dark mode switching on macOS.

Devcontainers for frontend development

My notes on using devcontainers for frontend development

Installing Linux on an External HDD

I wanted to install Linux on a portable SSD I had and make it bootable from my Macbook, so it needed UEFI support. I didn't find a nice method of doing it online, so I found my own way.

Setting up CORS with Python

CORS (Cross Origin Resource Sharing) allows access to resources from other domains, a good use case for this is a web app trying to fetch data from an API on another domain. These are my notes on setting up CORS with Python.