What’s new
Changelog.
Every release that lands on the dashboard, the ad-server, or the marketing site. Reverse chronological. Date stamped to the day, not the sprint.
- Brand
Brutalism theme + new palette.
- Visual identity reset: off-white field (#FAF9F6) + near-black ink (#1A1A1A), with coral (#FF7B6B) as the 'here, now' spotlight and sage (#7DBF6C) on focus rings. Lufga everywhere.
- Zero radius site-wide, 2px ink borders on cards, hard offset shadows (no blur), uppercase h1, inverse-fill table heads. Primary buttons get a 'physical key' press effect — shadow retracts on hover, translates 2px.
- Homepage rebuilt: split-grid hero with dashboard mockup + perspective tilt, tag-snippet card under the publisher earnings figure, SiteScan audit card under the advertiser invoice, marketplace preview replaces the old 'why we win' comparison rows.
- Infrastructure
Transactional email pipeline live.
- Resend (eu-west-1, GDPR-aligned) wired for signup verification (and the 'resend' button) plus creative-review approve/reject notifications.
- All sends from [email protected] — subdomain kept clean to isolate sender reputation from inbound Proton mail on the apex.
- React Email templates for password reset and payout disbursement also shipped; their trigger routes land in the next release.
- Feature
Blog launched + marketplace fully gated.
- /blog is live with three launch posts: 'Why we built Nyhilism', 'Inside SiteScan', and 'The honest comparison'.
- Marketplace inventory is now sign-in-only: the public /sites directory and /p/[domain] per-site reports redirect to /login.
- Marketing top nav gains a Blog link; footer updated to surface /blog instead of /sites.
- Feature
Underwriter policy pack + cookie consent.
- Dedicated /refunds, /chargebacks, /acceptable-use, and /merchant-info pages — designed for processor underwriting review.
- First-party cookie consent banner with DNT/GPC auto-decline and a 'Cookie preferences' link in the footer.
- PostHog (EU region) analytics provider scaffolded — gated on explicit accept, no third-party network ad trackers.
- Feature
Public transparency layer.
- /stats now shows live network impressions, revenue, and active org counts to anyone — no login.
- /sites is the public publisher directory; /p/[domain] is the per-site SiteScan report, also no login.
- Status page now exposes lifetime + last-24h impression totals on the same surface.
- Feature
Dashboard buildout complete.
- Earnings, Spend, Reports, Bookings, Settings, Help, Command center, Payouts, Fraud — all live, role-aware, and reading from real data.
- Sidebar gained an identity block (org + user name) and Earnings/Spend nav entries.
- Balance pill in the top nav routes to the right destination per org type.
- Infrastructure
SiteScan fingerprints seeded.
- 42 patterns across adult networks (JuicyAds, ExoClick, TrafficJunky, etc.), mainstream networks (AdSense, Taboola, Outbrain), and red-flag scripts (cryptojacking).
- Idempotent seed script at packages/db/scripts/seed-fingerprints.ts.
- Feature
Legal pages.
- /dmca with takedown form (signed 17 U.S.C. § 512(c)(3) affirmations), /2257 statement, /privacy, /terms, /status.
- Shared sticky-TOC layout with IntersectionObserver scroll-spy.
- Feature
Ad-server hot path.
- /api/serve runs the v1 first-price auction (booking > auction > house).
- HMAC-signed event tokens for impression + click endpoints.
- tag.js enforces viewability + tab-focus before firing the impression pixel.
- Feature
Onboarding flow.
- Signup captures name, organization, country, date of birth (18+).
- Three-step onboarding: account → site → zone (last two skippable).
- First scan kicks off automatically when a site is registered.
- Brand
Brand identity locked.
- Brushy ring mark + Lufga lowercase wordmark.
- Charcoal #2B2727 on cream #F8F5F0 — no orange.
- Single mark across every size; recoloring via CSS mask.
Want a heads-up on releases? Email [email protected] and we’ll add you to the release-notes mailing list.