From the workshopNo. 03

Notes on building this site

Short posts about EmDash, its plugin system, and the features we add here — each one working code you can look at.

emdash-architecture.svg
System diagramA visitor's browser requests a page; the Astro Worker server-renders it and reads content from the D1 database and media from R2; the EmDash admin console writes to both.VISITORBROWSERWORKERASTRO · SSRD1CONTENTR2MEDIAADMINWRITESREQUEST / RESPONSE

All posts

Newest first.

E-Commerce on EmDash article cover: DashCommerce vs Stripe Checkout vs Moksa

EmDash eCommerce: DashCommerce vs Stripe Checkout vs Moksa

Three ways to sell on EmDash, measured side by side: DashCommerce's native shop, the Stripe Checkout bridge, and Moksa's Taiwan-first suite, with install steps, permissions and a clear pick for each store.

Read the article
Letterpress type blocks in a grid, each stamped with a widget symbol, one being placed by hand

Writing with Content Widgets: the blocks I actually use

A field guide to the nineteen blocks the Content Widgets plugin adds: which ones earn a place in a real article, when steps beat tabs, what the product box is honest about, and how AI drafts a widget-heavy post.

Read
A vintage brass mailbox feeding a letter past a rubber stamp marked DELIVERED onto a conveyor of envelopes

Contact forms in EmDash: build, email and spam-proof

The Contact Forms plugin end to end on a live site: install, fields, the page block, the inbox and email log, delivery through the site's own provider, passive anti-spam, and where AI earns its keep.

Read
A vintage printing press feeding out a magazine page, a stack of paper beside it

How the blog on this site works

A posts collection, one Astro route and a hub block. The whole thing took an afternoon, including one redirect bug worth a warning.

Read
A paper mailbox behind a small turnstile gate, letters held at the checkpoint
Featured

Stop contact form spam with Cloudflare Turnstile

The contact form on this site was feeding the inbox junk. Turnstile took it to zero: the real pipeline, the exact fields a bot must fake, verified curl tests, and the cache trap we hit.

Read