1 minute read

TL;DR: The system now has a real admin layer—secure login, multi-user access, and a working attendee list backed by durable data.

Project page: Settled Field Platform.


Context

Up to this point, the project was a strong front-end funnel:

Landing → Summit → Register → Success → Checkout (stub)

It looked real. It behaved well. But it was missing something critical:

Operational control.

There was no way for Bill (or anyone helping him) to actually see or manage what was happening inside the system.

That changed today.


What Changed

Milestone 3 is now complete.

That includes:

  • Protected admin access
  • Multi-user admin authentication (no shared password)
  • Durable registration storage (real data, not just a form submission)
  • Attendee list view backed by the database
  • A dashboard shell that functions as a control surface

The key shift:

The system moved from collecting data to owning data.

Registrations are no longer ephemeral—they are stored, structured, and visible.

Admins are no longer theoretical—they can log in and operate.


What I Learned

The biggest lesson here wasn’t technical—it was architectural discipline.

I initially tried to build the attendee list first.

That failed for the right reason: the system didn’t actually store attendees yet.

So I had to step back and build the persistence layer first.

That decision:

  • avoided fake UI
  • avoided immediate rework
  • created a foundation for everything that comes next

Another key takeaway:

Authentication doesn’t need to be complex to be correct.

Instead of introducing a full auth system, I implemented:

  • DB-backed users
  • hashed passwords
  • signed session cookies
  • server-side route protection

Simple, controlled, and appropriate for the use case.


What’s Next

Next is Milestone 4: Payment Hardening.

That includes:

  • wiring real Stripe checkout
  • handling webhook events
  • linking registration to payment state
  • ensuring the system reflects who has actually paid

Right now: we can see who registered.

Next: we need to know who committed.


Closing Thought

This is the milestone where the project stopped being a site and became a system.

Before:

  • pages
  • forms
  • flow

Now:

  • data
  • control
  • operators

That is the difference between something that looks complete and something that can actually run an event.

Updated: