summaryrefslogtreecommitdiff
path: root/Documentation/source/frontend/routes.rst
blob: ed2c61824280f09232f4faf97e52508129799398 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
Routes and Page Responsibilities
================================

Public Routes
-------------

.. list-table::
   :header-rows: 1
   :widths: 22 34 44

   * - Route
     - Main File
     - Responsibility
   * - ``/``
     - ``src/app/(main)/(home)/page.tsx``
     - Home page with hero, recent posts, and newsletter CTA.
   * - ``/posts``
     - ``src/app/(main)/(home)/posts/page.tsx``
     - Paginated list of published posts.
   * - ``/posts/[slug]``
     - ``src/app/(main)/(home)/posts/[slug]/page.tsx``
     - Post detail page with rich text, metadata, sharing, and comments.
   * - ``/tags``
     - ``src/app/(main)/(home)/tags/page.tsx``
     - Tag index with post counts.
   * - ``/tags/[tag]``
     - ``src/app/(main)/(home)/tags/[...slug]/page.tsx``
     - Tag-filtered post list.
   * - ``/about``
     - ``src/app/(main)/(home)/(mdx)/about/page.mdx``
     - MDX profile page.
   * - ``/login``
     - ``src/app/(main)/(auth)/login/page.tsx``
     - OAuth login entry.
   * - ``/admin``
     - ``src/app/(payload)/admin``
     - Payload CMS admin.

API and Generated Routes
------------------------

.. list-table::
   :header-rows: 1
   :widths: 24 56

   * - Route
     - Responsibility
   * - ``/api/auth/[...all]``
     - better-auth route handler.
   * - ``/api/comments/[...comment]``
     - Fuma Comments route handler.
   * - ``/api/search``
     - Public search index endpoint.
   * - ``/rss.xml``
     - Feed output.
   * - ``/banner.png``
     - Site-level Open Graph image.
   * - ``/og/[...slug]``
     - Post-specific Open Graph image.

Routing Rule
------------

Add new public pages under ``src/app/(main)`` and preserve the existing layout
split between the public site and Payload admin. New API routes should document
their public contract in :doc:`../reference/api`.