Still in beta. For feedback, email me at aramb@aramb.dev

Application Changelog

Track the latest updates and improvements.

chore: switch from ESLint/Prettier to Biome

Committed on by Abdur-Rahmān Bilāl

Commit: 22e6fc4

Details:

- Remove ESLint, Prettier, and related plugins from devDependencies
- Delete eslint.config.mjs and .eslintrc.json
- Update biome.jsonc with ultracite core + next configs and overrides
- Update scripts and lint-staged to use biome
- Fix noSubstr, noForEach, noArrayIndexKey, a11y issues surfaced by Biome

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

fix: connect Tailwind v4 config and clean up CSS imports

Committed on by Abdur-Rahmān Bilāl

Commit: 186caec

Details:

- Add @config directive in globals.css to load tailwind.config.ts
- Remove duplicate @import 'tailwindcss' from custom-globals.css
- Replace v3 theme() function with CSS var() in custom-globals.css
- Replace package-lock.json with bun.lock; bump deps

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

Merge pull request #24 from aramb-dev/vercel/react-server-components-cve-vu-2gnfrj

Committed on by Abdur-Rahmān Bilāl

Commit: b2384ec

Update package.json

Committed on by Abdur-Rahmān Bilāl

Commit: 863a88a

Details:

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

Fix React Server Components CVE vulnerabilities

Committed on by Vercel

Commit: 3c61f86

Details:

Updated dependencies to fix Next.js and React CVE vulnerabilities.

The fix-react2shell-next tool automatically updated the following packages to their secure versions:
- next
- react-server-dom-webpack
- react-server-dom-parcel  
- react-server-dom-turbopack

All package.json files have been scanned and vulnerable versions have been patched to the correct fixed versions based on the official React advisory.

Co-authored-by: Vercel <vercel[bot]@users.noreply.github.com>

Merge pull request #19 from aramb-dev/nextjs

Committed on by Abdur-Rahmān Bilāl

Commit: 119a4a2

Details:

feat(vocabulary): implement component-based architecture for vocabulary pages

Merge branch 'main' into nextjs

Committed on by Abdur-Rahmān Bilāl

Commit: 92d4dcc

docs: add vocabulary page tasks to TODO list

Committed on by Abdur Rahman Bilal

Commit: 43523f2

feat(layout): add prop to control sidebar visibility

Committed on by Abdur Rahman Bilal

Commit: 880eeec

Details:

Introduces a `showSidebar` prop to the `Layout` component, which defaults to true.

This allows parent components to programmatically hide the sidebar, providing more flexibility for pages that may not require it. The visibility logic is now centralized in a `sidebarVisible` variable for clarity.

feat(routing): add custom 404 page and API catch-all route

Committed on by Abdur Rahman Bilal

Commit: f7ac175

Details:

Implement comprehensive 404 error handling for both the user-facing application and the API.

- A new custom 404 page (`src/app/not-found.tsx`) is introduced to provide a better user experience for non-existent pages.
- The previous API 404 handling (`src/app/api/not-found.tsx`) is replaced with a more robust catch-all API route (`src/app/api/[...slug]/route.ts`). This ensures that any request method (GET, POST, etc.) to an undefined API endpoint receives a standardized JSON 404 response.

fix(api): correctly handle promise-based route params

Committed on by Abdur Rahman Bilal

Commit: 52fe63a

Details:

Updates vocabulary API route handlers to be compatible with changes in Next.js where route segment parameters are wrapped in a Promise.

The GET functions in the vocabulary routes are now `async` and `await` the `params` object to correctly resolve and access the `bookId` and `lessonId`. This fixes a TypeScript type error and ensures the routes function as expected.

docs(llms): add vocabulary API documentation

Committed on by Abdur Rahman Bilal

Commit: be71408

Details:

This commit updates the LLM context file to include documentation for the newly added vocabulary API.

It details the new global, per-book, and per-lesson vocabulary endpoints. The `VocabularyItem` data structure is also defined to provide schema context for the models.

feat(data): refactor and update book 1 lesson data

Committed on by Abdur-Rahmān Bilāl

Commit: 91ad845

Details:

feat(data): refactor and update book 1 lesson data

feat(data): refactor and update book 1 lesson data

Committed on by Abdur Rahman Bilal

Commit: 9808688

Details:

This commit refactors the structure of `book1.ts` and applies numerous content corrections and additions to the lesson data.

The dynamic vocabulary merging logic has been removed to simplify the data file. Lesson content is now self-contained, with vocabulary to be handled by a separate mechanism.

Key content updates include:
- Correction of various grammar rule explanations and lesson introductions for clarity and accuracy (e.g., in lessons 5, 6, 8, 14, 23).
- Fixed the Arabic title for Lesson 8 from "Lesson 18" to "Lesson 8".
- Added a new grammar rule (`كِتَابُ مَنْ هَذَا؟`) to Lesson 5.

BREAKING CHANGE: The `vocabulary` property has been removed from lesson objects within `book1Data`. Any component that previously accessed `lesson.vocabulary` will need to be updated.

Merge pull request #17 from aramb-dev/nextjs

Committed on by Abdur-Rahmān Bilāl

Commit: 86b2095

Details:

feat(vocab): Comprehensive Vocabulary Data and System Refactor

chore: update ultracite config and remove pre-commit hook

Committed on by Abdur Rahman Bilal

Commit: f274527

chore: add typescript formatter settings in VS Code config

Committed on by Abdur Rahman Bilal

Commit: c4cd63d

chore(build): exclude book2 and book3 from compilation

Committed on by Abdur Rahman Bilal

Commit: 3d9c347

Details:

Excludes the `src/data/vocab/book2` and `src/data/vocab/book3` directories from the TypeScript compilation process. This is a temporary measure while these vocabulary sets are under development.

chore: ignore book2 and book3 vocab directories from eslint

Committed on by Abdur Rahman Bilal

Commit: 79a38f8

feat(api): add books and lessons API endpoints with documentation

Committed on by Abdur-Rahmān Bilāl

Commit: 0225fea

Details:

feat(api): add books and lessons API endpoints with documentation

fix: ensuring that book.lessons.length is greater than 0 before performing the division to prevent potential division by zero errors

Committed on by Abdur-Rahmān Bilāl

Commit: 1feeea5

Details:

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

Merge branch 'main' into nextjs

Committed on by Abdur-Rahmān Bilāl

Commit: 42d3621

feat(docs): add comprehensive api documentation page

Committed on by Abdur Rahman Bilal

Commit: cc1d8b1

Details:

Implement a new API documentation page with detailed endpoint descriptions, response schemas, and usage examples. The page includes sections for books, lessons, and metadata endpoints, along with data structure definitions and LLM integration guidance.

feat: add bing site verfication

Committed on by Abdur-Rahmān Bilāl

Commit: 54d058f

feat: add google site verification

Committed on by Abdur-Rahmān Bilāl

Commit: b9e0efb

Merge pull request #15 from aramb-dev/nextjs

Committed on by Abdur-Rahmān Bilāl

Commit: 99dd7c1

Details:

Fix beta banner positioning and improve lesson excerpt display