Skip to main content
This page is the documentation changelog for KilatKoding inside the docs portal. It focuses on changes that matter to boilerplate users, especially changes that affect setup, environment variables, routes, testing, and feature behavior.

How to read this changelog

  • This changelog focuses on changes that affect how you run, configure, or customize KilatKoding.
  • This page is different from the public /changelog route inside the KilatKoding app. The app route is better for end-user product updates, while this docs page is meant for boilerplate buyers, operators, and developers.
  • If an update also changes the docs, we link directly to the affected docs pages.

March 28, 2026

Fallback notices are now safer for customer-facing screens

Auth and feature fallback states no longer show overly developer-centric setup instructions in customer-facing UI. What changed:
  • auth notices now use more general copy when login, signup, session, or dashboard access is unavailable
  • fallback notices on pages such as Contact, Checkout, and Waitlist no longer expose raw env-variable instructions inside the browser UI
  • detailed environment diagnostics still remain available through npm run env:check, so developers still have a clear troubleshooting path without leaking setup details to end users
Practical impact:
  • safer when the app is demoed or reviewed by customers before every backend integration is fully configured
  • end users now see cleaner feature-status messaging that fits production use better
  • setup details remain in the developer workflow and command-line path instead of the customer UI
Related docs:

Docs showcase and demo components are now more hydration-safe

Demo components used in the docs route and dashboard showcase now rely on deterministic mock data. What changed:
  • demo data is no longer generated from combinations of Math.random() and timestamps that change on each render
  • relative-time UI in components such as the activity feed, notification dropdown, and audit log now renders from a stable reference time
  • the initial state for the demo calendar is now fixed so SSR and hydration are less likely to drift
Practical impact:
  • React warnings such as Hydration failed and Text content does not match server-rendered HTML are less likely to appear
  • routes such as /docs/components and /dashboard/components are safer to reload, cache, and test across devices
  • demo components are more reliable as a visual reference for boilerplate buyers
Related docs:

Date rendering is now more consistent across timezones

Several dashboard, admin, blog, and chart areas now use more consistent date formatting for the Indonesian timezone. What changed:
  • date formatting in tables, billing, settings, invoices, webhook events, and blog pages now goes through a shared helper
  • chart labels that rely on YYYY-MM-DD date strings no longer depend on browser timezone parsing
  • relative-time rendering in audit and activity components is also more stable against render-time differences
Practical impact:
  • lower chance of dates shifting by one day between server and browser output
  • more consistent rendering when the app is opened from timezones outside Indonesia
  • build output and smoke tests for affected routes are now more predictable
Related docs:

March 26, 2026

Auth is now safer when Supabase env is incomplete

The auth area no longer depends only on the NEXT_PUBLIC_ENABLE_AUTH toggle. It now also depends on whether the Supabase public env is actually available. What changed:
  • the server now resolves the Supabase public config before auth forms are rendered
  • the login, signup, forgot-password, update-password, and verify-email pages receive that resolved config from the server
  • if NEXT_PUBLIC_SUPABASE_URL or NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY is incomplete, the auth pages show a configuration notice instead of forcing a broken client initialization
Practical impact:
  • auth fallback is now clearer when setup is incomplete
  • auth issues caused by an unready browser Supabase client are easier to diagnose
  • auth behavior is more consistent between server and client
Related docs:

npm run env:check now reads .env and .env.local

The env-check script now loads env files from the working directory using the same pattern as Next.js. What changed:
  • npm run env:check no longer depends only on whichever env values happen to exist in the current shell
  • .env and .env.local are now both loaded during readiness checks
  • the source repo now includes a dedicated test that verifies this behavior
Practical impact:
  • the output of npm run env:check is now closer to the real app behavior under npm run dev
  • there is less chance of mismatch between “env check says ready” and “the app is actually reading something else”
  • local setup becomes easier to explain for both non-technical and technical users
Related docs:

Restarting the dev server now needs to be called out more clearly

Because the app and env check now make local env-file behavior clearer, the docs now explicitly remind readers to restart npm run dev after changing .env or .env.local. Related docs:

Docs pages updated together with this entry

If you just changed the source code and want the docs to stay aligned, use this page to record changes that materially affect setup, behavior, or boilerplate-user expectations.