Northern Shore Insurance
Agency site with a block editor the owner writes in.

Northern Shore Insurance is a GEICO agency in Portland, Maine. The agency wanted to publish its own articles, which meant the writing tool mattered as much as the site. A textarea would have been shipped in a day and abandoned in a week.
- Client publishes articles in a block editor with no developer and no CMS licence
- Posts are attributed to a real, named person tied to the agency
- A database one migration behind can no longer cost a lead
A blog the owner actually writes in.
The editor is a writing canvas: eight block types, drag to reorder, a slash command picker with live filtering, a selection toolbar, undo, and autosave. Posts are stored as validated blocks, with a fallback path that keeps older plain-text posts rendering. It has its own browser test, because an editor that loses a draft is worse than no editor.
Articles that carry real authorship.
Each post's author resolves to the same identity the about page uses for that person, with an employment link back to the agency, so a post by the owner is attributed to the owner rather than to a second person with the same name. Word count and reading time are computed from the post itself, and a cover image is only claimed in the structured data when it clears the size floor search engines require.
Distribution that does not depend on being crawled.
The sitemap is hand-written to be schema-valid with image entries included, uses real row timestamps for its dates, and falls back to the static page list on a query error rather than emitting an empty file that reads as “no pages.” An RSS feed declares its own canonical URL so a mirror is not treated as a second feed. Aggregators and answer engines learn about a new post without waiting for a recrawl.
The lead path assumes something will go wrong.
If a lead insert names a column the live database has not caught up to yet, the whole row is normally rejected and a real customer is lost over an attribution field. Here it retries once without that column, only for that specific error, and reports the downgrade. On top of that sit the same four anti-abuse layers as the sibling builds, plus a quiet honeypot endpoint that identifies scanners without telling them they were seen.
