Commit 2

# Polishing ;Prompt-it in Its New Environment

## UX Pass After Migration

After getting ;Prompt-it fully off Replit, today wasn’t about building something new.

It was about making what already exists feel intentional.

The app is live, functional, and running on its own domain — but once it reached that point, the smaller issues became more visible. Spacing felt slightly off, headers weren’t consistent, and certain screens behaved differently than expected on mobile.

Nothing was broken, but it wasn’t comfortable yet.

### Mobile Spacing + Bottom Navigation

The first issue I focused on was how each screen sat above the bottom navigation bar.

Some screens had:

  • too much empty space
  • content pushed too high
  • or content sitting too close to (or under) the nav

Affected screens:

  • Home
  • Feed
  • Messages
  • Profile
  • Shop
  • Explore

The goal wasn’t just “fix padding” — it was making each screen land correctly in the visible space.

#### What I Learned

Mobile spacing isn’t just padding.

It’s:

  • navigation height
  • scroll containers
  • safe areas
  • viewport behavior

A screen can technically be responsive and still feel wrong if the content doesn’t sit naturally where the user expects it.

### Header + Sticky Layout Behavior

Next was cleaning up header positioning across the app.

I wanted the ;Prompt-it header/logo to:

  • sit higher
  • feel anchored
  • stay consistent across screens

This wasn’t a single fix.

Some screens responded well to shared layout adjustments, while others needed targeted changes. The Profile screen especially had a different structure, since its header and actions need to stay fixed while content scrolls underneath.

#### What I Learned

There’s no such thing as a perfect universal layout fix.

Even if screens look similar, they’re often built differently underneath. Trying to force one solution across everything can create more problems than it solves.

Sometimes the correct move is:

Smaller, screen-specific fixes instead of one global override.

### Feed Card Height Debugging

The Feed ended up being the most sensitive part of the app.

The issue:

  • cards weren’t filling the screen correctly
  • sometimes left empty space
  • sometimes slipped under the nav bar

I traced it through the layout variables:

  • TAB_BAR_HEIGHT
  • CARD_HEIGHT
  • useWindowDimensions
  • listHeight
  • snapToInterval
  • getItemLayout

The fix wasn’t adding more calculations — it was aligning card height with the actual visible space, not an assumed value.

Screenshot A (left) & Screenshot B (right): Before and after of the feed card layout. 

#### What I Learned

Full-screen feeds are fragile.

Everything has to agree:

  • card height
  • scroll height
  • snap interval
  • navigation height

If one value is even slightly off, the whole experience feels broken — even if nothing technically crashes.

### Shop Screen JSX Break

While working on sticky headers, the Shop screen threw a wall of TypeScript errors.

It looked like dozens of issues.

It wasn’t.

The problem was a single broken JSX return structure — one misplaced closing tag that cascaded into everything else.

Once that was fixed, the rest of the errors cleared up.

#### What I learned

A large error list doesn’t always mean a large problem.

Sometimes:

One structural issue makes the entire file look invalid.

Fix the first real break → re-run → then evaluate what’s actually left.

## Closing

By the end of this pass, ;Prompt-it feels a lot closer to a real mobile web app — not just something that was successfully migrated.

The foundation is now:

  • stable
  • readable
  • predictable

Next, I’m moving out of layout polish and into product hardening:

  • protected message threads
  • ownership gating
  • monetization systems
  • account safety

That’s where the app stops being a project and starts becoming a product.

Comments