Sign in

Fränz Friederes

@fraenz.frieder.es
63 followers 94 following 91 posts

Solo Software Engineer at wierk.lu building a SaaS for DMARC monitoring dmarced.eu, deciphering Enigma cryptograms, and chasing sneaker drops, he/him 🏳️‍🌈

PostsRepliesMedia
Fränz Friederes @fraenz.frieder.es · 15/01/2026
Building an email monitoring SaaS, I need uncached, fresh DNS data using Node.js. Over time, I realize that the entire approach is flawed.
Screenshot of a DNS record detail view, showing the TXT DMARC record value, the exact TTL, DNSSEC validation status, and the time range during which the record was observed.
151
Fränz Friederes @fraenz.frieder.es · 02/10/2025
👋 from @nordicjs.com
The audience and stage of the Nordic.js conference, in blue/pink mood
010
Fränz Friederes @fraenz.frieder.es · 14/07/2025
Yes, #serverless still runs on servers. The difference? They’re not mine to worry about.
Diagram titled “My responsibilities with a serverless stack” showing a vertical stack of labeled boxes. Only “Application code” is left unmarked, indicating it’s the developer’s responsibility. The other layers “Operating system,” “Virtualization,” “Physical hardware,” and “Data center access control” are each crossed out, illustrating that these are not managed by the developer when using a serverless setup.
110
Fränz Friederes @fraenz.frieder.es · 11/07/2025
This is Rocky a.k.a. Klenge Miiss
A black-gray British Shorthair sitting on a wooden deck chaire outside in the garden.
010
Fränz Friederes @fraenz.frieder.es · 11/07/2025
7,500 women helped end WWII at Bletchley Park. Pamela Downing was one of them. I wanted her name on the wall.
Pamela Downing 20 years © morganfourman.com
252
Fränz Friederes @fraenz.frieder.es · 10/07/2025
Sequential IDs are faster. UUIDs are safer. I wanted both speed and security, so I picked both.
Screenshot of a database table showing team data with two ID columns: privateId, a sequential number, and id, a prefixed Nano ID like tm_imswzl4d93om used externally. The table includes names like Alice, Bob, and Wierk, and is ordered by privateId.
110
Fränz Friederes @fraenz.frieder.es · 09/07/2025
After a year of building my SaaS, I finally integrated Stripe for self-service subscriptions. I almost overengineered billing before ever charging anyone.
Screenshot of Stripe’s product metadata editor, showing plan limits such as data retention days, max active domains, and email volume for a SaaS subscription.
100
Fränz Friederes @fraenz.frieder.es · 08/07/2025
My SaaS frontend, built on Next.js, never gets to see a session token. No shared cookies, headers, or credentials. Just a clean API boundary — on purpose.
Diagram showing a strict API boundary between a frontend (Next.js on Vercel) and a backend (AWS SAM on Lambda), connected via a REST API. The frontend moves fast, focuses on UI iteration, has abstracted infrastructure, no access to session cookies, uses push-to-deploy, and acts as just another API consumer. The backend moves slower, is more deliberate, fully controlled, manages HTTP-only session cookies, and uses manual deployments.
120
Fränz Friederes @fraenz.frieder.es · 07/07/2025
IP addresses are not for humans. But DMARC reports are full of them, leaving users staring at logs instead of insights. So I enrich them with metadata like country and network owner (ASN) from IPinfo's free dataset, without compromising privacy.
Postgres database table showing enriched IP address ranges with metadata including country code, ASN, and network owner name. Used to provide human-readable IP context in DMARC reports.
100
Fränz Friederes @fraenz.frieder.es · 05/07/2025
The best #macOS screensaver is already installed on your device. Look for "Macintosh".
macOS lock screen showing the retro Macintosh screensaver with a pixelated purple design
012
Fränz Friederes @fraenz.frieder.es · 04/07/2025
Most of my incoming email traffic hits all at once: around midnight and noon. I needed a system that could absorb the spikes and survive broken code when I ship it. Here’s the architecture I landed on.
A diagram showing the architecture of a DMARC processing pipeline built with AWS components: A component labeled “DmarcSesReceiptRule” represents an SES rule that receives email. It connects to an “S3 bucket” labeled “DmarcInboxBucket” where raw email is stored. This inbox bucket triggers a “Lambda function” labeled “DmarcProcessingFunction” to process each email. Processed reports are written to a final “S3 bucket” labeled “DmarcDataLakeBucket” for long-term storage.
100
Fränz Friederes @fraenz.frieder.es · 03/07/2025
Just shipped a tiny feature that made a huge difference: sparklines. These tiny charts now show trends in email volume inside each table cell: spikes, drops, and suspicious patterns. At a glance, they say more than words and numbers ever could.
Table showing four rows of email traffic data. Each row includes a sparkline visualizing the trend of email volume over time, along with total volume numbers and colored indicators showing recent increases or decreases.
140
Fränz Friederes @fraenz.frieder.es · 05/02/2025
I got this in my inbox 🤗 #nordicjs #js
Nordic.js logo: Cute computer icon
000
Fränz Friederes @fraenz.frieder.es · 01/12/2024
What is 0? What is 10? The number of friends I likely am recommending them to? #feedback #emailtemplate
Screenshot of a Trade Republic email asking how likely I am to recommend Trade Republic to a friend or colleague listing buttons labelled 0 to 10 below it.
000
Fränz Friederes @fraenz.frieder.es · 27/11/2024
In today's dmarced refactor, I moved all messages to a separate #Monorepo package called "intl". It relies on Format.js while email rendering depends on react-email and react-intl. It's amazing that I can hand over i18n logic from non-React library code to TSX. #React #TypeScript #BuildInPublic
A screenshot of Visual Studio Code with the file "en-IE.json" open. It contains hierarchical objects with keys and English messages for "domainReport" and "loginVerification" emails.
160
Fränz Friederes @fraenz.frieder.es · 20/11/2024
Rethinking #email traffic: How source categorization helps you make your #DMARC insights actionable. A #BuildInPublic thread 🧵 1/10
Screenshot of dmarced’s email traffic categories in action. The report is split into three sections: ‘Delivered and fully verified,’ ‘Delivered after being forwarded,’ and ‘Delivered but lacking verification.’ Each section includes a table listing email sources, the number of emails, and trends compared to the previous reporting period, such as increases or decreases in email volume.
110