Rails Flutter Server Health Check 4 Issues

Rails + Flutter App Server Health Check: 4 Issues Found and Fixed at Once

After uploading a test build of the app and running it myself, 4 things broke simultaneously. Google login failure, AI itinerary generation returning wrong results, app crash on tapping the notification button, and the popular destinations section completely empty. Here is the process of finding and fixing each cause. 1. Google SSO Fails While Apple Login Succeeds Symptoms Apple Sign-In works normally but Google Sign-In returns a 500 error. The client only shows a login failure toast. ...

2025-10-15 · 6 min read · Seunghan
Multi Landing Page Netlify Workflow

Managing 8 App Landing Pages from a Single Repository

When you are building multiple apps simultaneously, each one eventually needs its own landing page. The naive solution — creating eight separate repositories — multiplies management overhead by eight. The opposite extreme — one monolithic repository with a single Netlify deployment — creates a different problem: every change to any single page triggers a full redeployment, and one mistake can break all the others. The approach I settled on sits between these two extremes: a single repository with N independent Netlify sites, each deployed to its own subdirectory via the Netlify CLI. This post documents the structure, the reasoning behind each decision, and the patterns that make this maintainable at scale. ...

2025-10-11 · 9 min read · Seunghan
Hugo Blog Multi Site Management

Managing 3 Hugo Blogs from a Single Folder

I run 3 Hugo blogs for different purposes. Dev blog — Development debugging logs, technical documentation (this blog) [App] Homepage — App introduction + update blog, multilingual (ko/en) Personal blog — Non-development writing They serve different roles, so they are separated. But I wanted to manage them all from one place. I initially split them into separate repositories, but eventually settled on grouping them under a single directory. This post documents that structure and the configuration choices for each blog. ...

2025-10-08 · 10 min read · Seunghan
Flutter Sync Queue Aggressive Error Handling

Fixing Unnecessary Error Exposure in Flutter Sync Queue

While implementing a Transactional Outbox pattern for offline sync in a mobile app, I discovered that “sync failed” errors were repeatedly shown to users even though synchronization had actually completed successfully. Symptoms The app repeatedly threw the following error: AppException: Failed to push changes: AppException: Push completed with failures; retry count: 2, pending changes remain in queue. Checking server logs confirmed that sync pull was working normally and the data was already synchronized. ...

2025-10-04 · 5 min read · Seunghan
Flutter Rails Auth Session Persistence Debugging

Flutter + Rails Auth Session Keeps Dropping - 3 Causes and Solutions

Login sessions keep dropping in a Flutter BLoC app. Tokens are stored in SecureStorage, automatic renewal on 401 is implemented via Dio interceptors – so why? Starting from server logs, I found 3 causes and fixed all of them. Here is the full process. Tech Stack Mobile: Flutter + BLoC pattern + Dio HTTP + SecureStorage Server: Rails 8 API + ActionCable WebSocket Auth: SHA-256 digest-based access token + JTI refresh token (90 days) Real-time: ActionCable WebSocket (token-based auth) Symptoms Works fine right after login API requests start failing with 401 after some time Token refresh seems to work, but WebSocket disconnects App eventually transitions to unauthenticated state Cause 1: Ghost of Legacy Code - Residual DTA Methods Discovery Server logs showed intermittent user.tokens-related errors during token refresh. The project had migrated from devise_token_auth (DTA) to a custom token system, but token_refresh_service.rb still had DTA-era code. ...

2025-09-27 · 5 min read · Seunghan
Flutter Glassappbar Tabbar Overflow Colors White Lightmode

Flutter UI Full Audit — GlassAppBar TabBar Overflow and Colors.white Light Mode Bug

When you build a Flutter app long enough, there are two bugs you inevitably encounter at least once. One is the bottom overflowed by N pixels error, the other is text becoming invisible against the background in light mode. Both have simple causes, but until you do a full audit of all screens, it’s easy to just think “something’s off on a few screens.” It wasn’t until I swept through all 50 pages of the app that the pattern became clear. ...

2025-09-24 · 4 min read · Seunghan
Flutter Bloc Infinite Scroll Pagination

Flutter BLoC Infinite Scroll Without infinite_scroll_pagination — Clean Layer Design

Loading the entire list upfront is slow. I needed infinite scroll that naturally loads the next batch of data as the user scrolls. Packages like infinite_scroll_pagination exist, but fitting them into an existing BLoC structure sometimes means redesigning your state to match the package’s approach, which can actually make things more complex. Since it’s perfectly achievable with just ScrollController and no external dependencies, I went that route. Why Offset-Based There are two pagination approaches. ...

2025-09-20 · 6 min read · Seunghan
Domain Projects Dev Guide

Multi-Domain Static Site Operations Development Guide

Overview A guide documenting the structure and deployment workflow for managing multiple static sites (landing pages and blogs) from a single directory. This covers practical problems that arise when operating sites with different characteristics — a personal tech blog, per-app landing pages, and multilingual blogs — along with concrete solutions for each. Static sites have no server overhead, deploy fast, and benefit from highly efficient CDN caching, making them ideal for small personal projects and app marketing pages. However, running multiple sites simultaneously makes it easy to create confusion when each site has a different deployment strategy. This guide clearly separates the deployment approach for each site type and explains how to automate repetitive tasks. ...

2025-09-13 · 9 min read · Seunghan
Ios Sso Entitlements Testflight Errors

iOS TestFlight Deployment Debugging: From SSO Errors to Entitlements Mismatch

Here are the errors repeatedly encountered while uploading multiple Flutter apps to TestFlight. 1. Apple Sign-In Error 1000 SignInWithAppleAuthorizationException(AuthorizationErrorCode.unknown, The operation couldn't be completed. (com.apple.AuthenticationServices.AuthorizationError error 1000.)) Cause This occurs because the Sign in with Apple capability is missing from Runner.entitlements. Solution Both places must be configured. 1. ios/Runner/Runner.entitlements <key>com.apple.developer.applesignin</key> <array> <string>Default</string> </array> 2. Apple Developer Console developer.apple.com -> Identifiers -> Select app Bundle ID -> Check Sign in with Apple -> Save ...

2025-08-30 · 4 min read · Seunghan
Flutter Deprecated Api Mass Fix

Flutter Deprecated API Mass Fix - withOpacity, DropdownButtonFormField, Switch, and More

If you maintain a Flutter project long enough, the day comes when flutter analyze spits out hundreds of deprecated warnings. Everything works fine functionally, but when warnings pile up, real problems get buried. Here are the patterns that emerged from cleaning up 200+ deprecated warnings in one session. Leaving deprecated warnings unaddressed eventually leads to three concrete problems. First, when the next major Flutter upgrade lands, deprecations become removals and the build breaks. Second, real bugs and type errors get lost in the noise of info-level warnings, making code review less effective. Third, when a new team member joins and asks “why are there so many warnings?”, the answer requires explaining accumulated technical debt. A single cleanup session dramatically lowers the ongoing maintenance cost. ...

2025-07-20 · 8 min read · Seunghan
Privacy Policy Terms Disclaimer Contact