Day 18: Free First. Why I Am Launching FinancePulse Without a Paywall.
Day 18 since I incorporated Northvane LLC and started the Build Wright public clock. Today is Friday, May 8, 2026. Three weeks ago none of this existed. This week shipped a lot, and the shape of the next 4 weeks is now clear enough that I can stop guessing and start sequencing.
Quick honest framing before I get into it: nothing I describe below is "validated" in the revenue sense yet. The Quick Start Guide has a handful of buyers. FinancePulse has zero subscribers because the signup form was live for 36 hours. PatentScan is still on the napkin. So this is a build-in-public update, not a victory lap.
What shipped this week
Three things landed.
Two open source repos. I had been carrying a Stripe webhook signature verifier and a Supabase RLS cookbook around in my own head for weeks. Both are the kind of thing every solo SaaS founder reinvents badly the first time. So I extracted them into standalone repos and pushed them to GitHub. The webhook verifier is a tiny zero-dependency npm package that does one thing well: validates the Stripe-Signature header against a raw request body and rejects replay attempts past the SDK's default 5-minute tolerance window. The RLS cookbook is a long-form documentation repo with copy-pasteable patterns for the four ways I have personally screwed up Supabase row-level security and then had to debug at midnight. Neither will go viral. Both will help me show up on AI-search answers when somebody types "how do I verify stripe webhook signature" into Claude or ChatGPT or Perplexity, which is most of how I expect to get found in the next 12 months.
FinancePulse free digest pipeline. The bigger lift. I rewrote financepulse.app around a free utility instead of a paid report. The pivot is documented in the previous article. What landed this week:
- A SEC EDGAR scraper that pulls the recent Form 4 filings feed every weekday after market close, parses each filing's ownership document XML, and stores the open-market purchases in Postgres.
- A cluster detector that flags two patterns: 3 or more distinct insiders buying the same ticker inside a 5-day window, and isolated single buys above $500K.
- A daily digest email rendered per subscriber, with HMAC-signed unsubscribe links and a Tuesday-first cadence that respects the no-spam rule.
- The whole subscribe and unsubscribe flow including welcome email, with a free signup form at financepulse.app.
The first real digest sends next week, Tuesday May 12, after I have one full data-collection cycle to confirm the pipeline produces something worth reading. Until then it is plumbing.
Why free first
The original FinancePulse plan was three paid PDF reports at $29 to $49 each, fulfillable on demand. That plan died for the same reason a lot of cold-launch paid-report ideas die: you have to spend audience to get audience, and I do not have audience yet.
So the question is: what do I have time and code to give away that is good enough to pull people back tomorrow? The answer turned out to be the daily insider buying digest. The data is public, the work is in the aggregation and the writeup, and the reader gets actual signal in their inbox before they have to decide if they like me. That is the free-utility-first calculus. If the digest is good and the open rate stays above 25 percent at week 4, the paid tier becomes a much easier conversation. If it does not, I learned that the audience does not actually want this, which is also worth knowing before I spend 8 weeks building a paid product on top.
The paid tier is still coming. Not in two months. Tuesday Day 22, May 12. A $29 deep-dive report on a single ticker, plus a $9 per month Pro subscription with a 10-symbol watchlist and SMS alerts on the same cluster patterns. Both ride on infrastructure that is already built. The free digest is the front door, and the paid tier is the answer to "OK this is useful, can I have more of it specifically about my portfolio."
The multi-brand architecture decisions I am locking in
I am running three brands now: BuildEngine, FinancePulse, and a third (PatentScan) that launches later this month. Three different niches, three different audiences, one operator. The infrastructure choices below have come up in every brand and I am settling them once so I do not relitigate them per project.
Separate Supabase project per brand. This was tempting to consolidate. One database, schema-namespaced tables, row-level security as the tenant boundary. I tried that mentally for an afternoon and then walked away. The blast radius of a bad migration on a shared cluster is too high, the cost of a separate project is twenty-five dollars per month, and the mental separation when I am writing migrations at 11pm is worth more than the savings. So: financepulse-prod, buildengine-prod, patentscan-prod, full isolation, zero cross-brand queries. If I ever need a portfolio dashboard, I will do it via per-brand HTTP queries from a coordinator, not via a shared schema.
Shared Resend account, multi-domain verified senders. Resend handles the cross-brand send volume cleanly because it lets a single account verify multiple sender domains. So hello@buildengine.tech, hello@financepulse.tech, and hello@patentscan.io all live in one account, with separate API keys per brand and separate audiences for unsubscribe segregation. This is the opposite of the database decision and it is also right for the same underlying reason: deliverability reputation is built per-domain regardless of account, and consolidating accounts does not pollute reputations. Centralized control, isolated trust.
One Stripe account, metadata-tagged products. Stripe is the inverse of Supabase. There is real value in having all revenue in one place for accounting (Northvane LLC is the legal merchant for everything), and the per-product metadata.brand tag is enough to filter reports per brand. The customer sees the brand statement descriptor on their card, the IRS sees Northvane LLC.
The pattern I am settling on across all three: isolate where mistakes are expensive, consolidate where mistakes are cheap. Database migrations are expensive. Sender reputation is expensive. Accounting is cheap.
What broke and what I learned
EDGAR Form 4 detection. First fix used the type field in SEC's directory JSON to identify the primary Form 4 XML. Reasonable assumption. Wrong. The type field in the production payload turned out to be display-class labels like text.gif, not form codes. So my filter rejected every real filing on the first cron run. The corrected version matches by filename pattern (ownership.xml, primary_doc.xml, and a few legacy variants), then verifies by parsing and checking the <documentType> element. Lesson: if you are integrating with a government API, do not trust your assumption about a field's semantics until you have seen the actual payload from production. I had three synthetic fixtures, all wrong about that field.
Vercel apex vs www domain redirect. Spent an hour on a 308 redirect loop between financepulse.app and www.financepulse.app. The fix was to set the apex as the canonical and let Vercel handle the www-to-apex redirect at the platform level instead of trying to do it in a middleware. Boring, but I had not hit it before because all my other domains had been www-only from the start.
Hashnode AutoMod silent removals. Two of the four platforms I am syndicating to (Bluesky, Mastodon, Dev.to, Hashnode) are reliable. Hashnode is the one I cannot fully trust yet. Twice now an article has shown a successful API response, then quietly disappeared from the feed within an hour. The article is technically live at the canonical URL, just delisted from discovery. No notification, no email. I am keeping the syndication for SEO link equity but I have stopped counting Hashnode reach in any metric that matters.
What is coming the next two weeks
- Tuesday Day 22, May 12. First real FinancePulse digest sends. Same day, paid tier opens: $29 per-ticker report + $9 per month Pro subscription with watchlist and SMS alerts.
- Friday Day 25, May 15. PatentScan landing page goes up. Free weekly USPTO grant digest in the same shape as FinancePulse, with a paid weekly deep-dive at $19 per report.
- Day 28, May 18. Quick Start Guide v1.3, with a section on the multi-brand operator architecture I just described above.
Three brands, one operator, three different "what is the daily reason to come back" questions answered. If two of the three free digests retain readers at week 4, the playbook is real. If one of them does, I have a winner and two lessons. Either is fine. What is not fine is launching a fourth thing before I see what these do.
If you want the free digest, it is at financepulse.app. One tap, no card, unsubscribe at the bottom of every email.
If you want the operator playbook in long form, the BuildEngine Quick Start Guide is $49 and has been the cleanest signal so far that the writing is doing its job. Buyers have come from articles, not ads.
Build Wright
Top comments (0)