> ## Documentation Index
> Fetch the complete documentation index at: https://belajarkoding.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

> Review the KilatKoding update history that affects setup, configuration, application behavior, and documentation.

<Info>
  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.
</Info>

## 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:

* [Auth](/en/kilatkoding/features/auth)
* [Environment variables](/en/kilatkoding/environment-variables)
* [Troubleshooting](/en/kilatkoding/troubleshooting)

### 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:

* [Testing and readiness](/en/kilatkoding/features/testing-and-readiness)
* [Troubleshooting](/en/kilatkoding/troubleshooting)

### 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:

* [Troubleshooting](/en/kilatkoding/troubleshooting)

## 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:

* [Auth](/en/kilatkoding/features/auth)
* [Environment variables](/en/kilatkoding/environment-variables)
* [Troubleshooting](/en/kilatkoding/troubleshooting)

### `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:

* [Local setup](/en/kilatkoding/local-setup)
* [Environment variables](/en/kilatkoding/environment-variables)
* [Testing and readiness](/en/kilatkoding/features/testing-and-readiness)

### 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:

* [Local setup](/en/kilatkoding/local-setup)
* [Troubleshooting](/en/kilatkoding/troubleshooting)

## Docs pages updated together with this entry

* [Changelog](/en/kilatkoding/changelog)
* [Auth](/en/kilatkoding/features/auth)
* [Environment variables](/en/kilatkoding/environment-variables)
* [Local setup](/en/kilatkoding/local-setup)
* [Testing and readiness](/en/kilatkoding/features/testing-and-readiness)
* [Troubleshooting](/en/kilatkoding/troubleshooting)

<Tip>
  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.
</Tip>
