DEV Community

GraceSoft
GraceSoft

Posted on

Day 3 — Smoothing Auth, Shipping Email Verification, and Making the UI Feel Real

After getting the core timeline and billing foundations in place, Day 3 was about tightening the experience — especially around authentication, UI consistency, and the little things that make the product feel alive instead of stitched together.

A lot of this day was less about “new features” and more about removing friction.


🔐 Fixing Auth Friction (The Invisible Work That Matters Most)

Auth is one of those areas where small issues feel huge to users.

Today’s focus:

  • Prevent users from getting stuck on submit buttons
  • Avoid registration hanging during email verification
  • Ensure protected routes behave properly

Key fixes:

  • Deferred sending verification emails to avoid blocking registration
  • Fixed edge cases where submit buttons could get stuck
  • Properly gated app shell routes behind login

👉 Result:
Auth now feels instant, not fragile.


✉️ Email Verification That Actually Feels Designed

Instead of treating email verification as an afterthought, I gave it proper UI attention.

Updates:

  • Introduced a Sky-600 branded email canvas
  • Designed a clean outer container for verification emails
  • Updated logo usage for consistency

This is one of those subtle trust builders:

If your emails look polished, your product feels more legitimate.


🎨 UI Standardisation (Design System in Motion)

Things started drifting visually, so I pulled everything back into alignment.

Improvements:

  • Standardised primary CTAs with Sky styling
  • Aligned sidebar layout and GitHub connect controls
  • Refined UI surfaces across the workspace

Also introduced:

  • A reusable Lucide icon system for notes-style UI

👉 Result:
The app now feels like a system, not a collection of pages.


⚡ Timeline & Interaction Upgrades

The timeline is the heart of GraceSoft Story, so I focused on making it faster and more interactive.

Enhancements:

  • Added lazy-loaded fragments
  • Introduced optimistic UI for label interactions
  • Implemented mobile-first filters with preserved query state

👉 Result:
Snappier interactions and better mobile usability.


🧱 Refactoring Toward Reusability

Some earlier pages were getting messy, so I started consolidating patterns.

Refactors:

  • Converted story pages into a reusable notes-style shell
  • Cleaned up UI state handling across views

👉 Result:
Easier to scale features without duplicating logic.


📊 Chapter & Dev Workflow Improvements

Not everything is user-facing — some of the biggest wins were internal.

Additions:

  • “Changes” section in the chapter inspector
  • Research doc for GitHub sync improvements
  • TODO maintenance tracker

👉 Result:
Better visibility into both product and dev workflow.


🧠 Takeaway

Day 3 wasn’t about flashy features.

It was about:

  • Removing friction
  • Making interactions feel reliable
  • Bringing consistency across the product

This is the kind of work users don’t notice explicitly —
but they feel it immediately.


🚀 What’s Next

With auth and UI stabilised, next steps are likely:

  • Deepening GitHub sync reliability
  • Expanding chapter intelligence
  • Continuing to refine the story experience

Top comments (0)