Back to blog
Updates / Changelog
Comparisons & Updates

v3.0.2 · Features

2 min read

Migrated authentication from Supabase to a custom API backend with JWT + refresh token flow

Problem

Migrated authentication from Supabase to a custom API backend with JWT + refresh token flow

Pain point

Features

Solution

Custom API Backend

• Migrated authentication from Supabase to a custom API backend with JWT + refresh token flow

• Added email OTP login with 6-digit verification code and cooldown timer

Example

• Added OAuth callback page for Google and GitHub login redirects

• Persistent token storage in localStorage with automatic refresh on 401

3-Tier Subscription Plans

• New pricing structure: Free, Pro, and Max plans

• Redesigned pricing drawer with Free banner and Pro/Max side-by-side comparison

• Plan-aware feature gating with typed `Plan` union type

Backend i18n Error Messages

• API errors now carry localized messages (`en`/`zh`) from the backend

• Redemption code errors display in the user's language automatically

Bug Fixes

• Fixed login state lost on page refresh — only clear auth on UNAUTHORIZED, not on network errors or 5xx

• Removed redundant profile fetch in `initializeAuth` that doubled API calls on every page load

Refactor

• Removed `@supabase/supabase-js` dependency and `src/lib/supabase.ts`

• Added `ApiError` class with `getLocalizedMessage()` for i18n error handling

• Removed frontend-maintained redemption error translations (backend-provided now)

• Cleaned up `console.log` in environment validation

Decision Criteria at Bottom Funnel

Bottom-funnel readers are evaluating confidence, switching cost, and output predictability. Generic feature lists are rarely enough.

Content should prioritize decision dimensions: onboarding time, migration friction, and quality consistency.

For "locusify update", define clear evaluation criteria so readers can choose quickly based on their workflow reality.

Comparison Method That Builds Trust

Use one real dataset across tools and compare three metrics: completion time, correction workload, and final publish quality.

A practical baseline flow remains: Custom API Backend • Migrated authentication from Supabase to a custom API backend with JWT + refresh token flow • Added email OTP login with 6-digit verification code and cooldown timer. Keep claims tied to observable process outcomes.

Write conclusions as fit-by-scenario, not absolute winner claims. This increases credibility and conversion quality.

Bottom-Funnel Conversion Actions

End with explicit actions: test run, import real assets, export first version. Concrete actions move decisions forward.

Include risk notes and fallback paths. Balanced framing often converts better than aggressive claims.

Interlink to tutorial and case-study pages to complete the comparison -> trial -> validation loop.

Target keywords

locusify updatelocusify changeloglocusify v3.0.2

If the update solves your workflow pain point, test it with your next trip album.

Try Locusify with your travel photos

Frequently asked questions

What is the fastest way to start with locusify update?

Use one recent trip folder and run the full flow once: import, timeline check, outlier cleanup, and short replay export.

What if some photos do not contain GPS metadata?

Build the core route from geotagged photos first, then place non-geotagged images as chapter visuals instead of route points.

How do I make outputs more shareable on social channels?

Keep runtime concise, start with route overview, highlight key stops, and export directly in the target aspect ratio.

Where does Locusify fit in this workflow?

If the update solves your workflow pain point, test it with your next trip album.

Related articles

v3.2.0 · Features

Add Pricing Drawer for plan management and redemption flow

Read more

v3.1.1 · Features

Real-time nearby explorer markers on the map with clustering support

Read more

v3.1.0 · Features

Redesigned replay photo panel with polaroid-style ticket cards, tape decorations, and photo filters

Read more