# Mother Lanka Digital Wall > The official digital community platform of the Urban Development Authority (UDA) of Sri Lanka. > Mother Lanka connects citizens, urban professionals, architects, town planners, engineers, > policymakers, and government officials to collaborate on Sri Lanka's urban future. Mother Lanka Digital Wall (MLDW) is a multilingual (English, Sinhala, Tamil) community forum and knowledge repository hosted at https://motherlanka.uda.lk. It is operated by the Urban Development Authority, a statutory body under the Government of Sri Lanka. The platform allows registered users to read, discuss, and engage with official urban development content including Board Papers, Circulars, Regulations, and community discussions. It supports authenticated participation (commenting, submitting feedback) alongside public read access. ## Key Pages - [Home](https://motherlanka.uda.lk/en): Landing page with hero, featured categories, featured posts, trending discussions, and a CTA section. - [Feed](https://motherlanka.uda.lk/en/feed): Paginated listing of all published posts with category filtering and search. - [Board Papers Feed](https://motherlanka.uda.lk/en/feed?category=board_paper): Filtered view of UDA Board Papers. - [Circulars Feed](https://motherlanka.uda.lk/en/feed?category=circular): All UDA Circulars. - [Regulations Feed](https://motherlanka.uda.lk/en/feed?category=regulation): Urban development regulations. - [Post Detail](https://motherlanka.uda.lk/en/post/{slug}): Individual post page with full content, file attachments, comments, and related category tags. - [Search](https://motherlanka.uda.lk/en/search?q={query}): Full-text search across all posts with filters for category, location, province, gazette number, and publication status. - [Sign Up](https://motherlanka.uda.lk/en/signup): User registration — open to citizens, professionals, and UDA staff. - [Login](https://motherlanka.uda.lk/en/auth/login): Authenticated access using email or mobile number. - [Forgot Password](https://motherlanka.uda.lk/en/forgot-password): Password recovery via email or SMS. - [Category Browse](https://motherlanka.uda.lk/en/category/{id}): Browse posts by a specific category. - [Projects](https://motherlanka.uda.lk/en/project): UDA urban development projects listing. ## Content Categories The platform organises content into four primary categories: 1. **Board Papers** (`board_paper`) — Official UDA board meeting papers and resolutions. 2. **Circulars** (`circular`) — Administrative and regulatory circulars issued by UDA. 3. **Regulations** (`regulation`) — Urban development laws, by-laws, and planning regulations. 4. **Discussions** — Open community discussions on urban planning topics. ## Supported Languages The platform is fully internationalised with three locales: | Locale | Language | URL Prefix | |--------|----------|------------| | `en` | English | `/en/` | | `si` | Sinhala | `/si/` | | `ta` | Tamil | `/ta/` | All content pages are available in all three locales. The default locale is English (`/en`). The `x-default` hreflang also points to `/en`. ## API Endpoints (Public) The backend REST API is served at the same origin (`/api/*`). The following endpoints return publicly accessible data (no authentication required): | Method | Endpoint | Description | |--------|----------|-------------| | GET | `/api/posts` | Paginated list of published posts. Params: `page`, `per_page`, `sort_by`, `sort_order`, `is_featured`, `commentable`, `search`, `with` (relations: `files,comments,categories`) | | GET | `/api/posts/{id}` | Single post by numeric ID. Optional `with` param for relations. | | GET | `/api/posts/search` | Full-text search. Params: `q` (required), `per_page`, `page`, `category_ids`, `location_ids`, `province_id`, `gazette_no`, `is_published`, `commentable` | | GET | `/api/comcategories` | All community categories (flat list; use `per_page=100` to get all). | | GET | `/api/comcategories/{id}` | Single category by ID. | | GET | `/api/designations` | User designations / affiliates for registration dropdowns. Optional `type` param: `designation` or `affiliate`. | | GET | `/sitemap.xml` | Full XML sitemap with all locale variants and post slugs. | | GET | `/api/metrics` | Prometheus-format operational metrics (infrastructure telemetry). | ### Authenticated Endpoints (require Bearer token) | Method | Endpoint | Description | |--------|----------|-------------| | POST | `/api/login` | Authenticate with `identifier` (email or mobile) + `password`. Returns `{ user, token }`. | | POST | `/api/register` | Create a new user account. | | GET | `/api/profile` | Returns the authenticated user's profile. Used for session token verification. | | POST | `/api/logout` | Invalidates the current session token. | | POST | `/api/auth/forgot-password` | Initiates password reset (sends email/SMS). Body: `{ identifier }`. | | POST | `/api/auth/reset-password` | Completes password reset. Body: `{ token, email, password, password_confirmation }`. | | POST | `/api/check-reset-token` | Validates a password reset token. Body: `{ token, email }`. | | POST | `/api/comments` | Submit a comment on a post. | | GET | `/api/comments?post_id={id}` | Retrieve comments for a post (nested/threaded). | ## Data Models ### Post ```typescript { id: number; title: string; slug: string; // URL-safe identifier, used in /post/{slug} body: string; // HTML rich-text content video_url?: string; tags?: string[]; commentable: boolean; // Whether the post accepts public comments comments_count: number; is_published: boolean; is_featured: boolean; published_at?: string; // ISO 8601 created_at: string; updated_at: string; language: string; // 'en' | 'si' | 'ta' files?: PostFile[]; // Attached PDFs, images, documents comments?: PostComment[]; categories?: Category[]; } ``` ### Category ```typescript { id: number; name: string; slug: string; description?: string; is_active: boolean; parent_id: number | null; // Supports nested category hierarchy created_at: string; updated_at: string; children?: Category[]; } ``` ### User ```typescript { id: number; full_name: string; email: string; mobile?: string; designation?: string; affiliation?: string; userDetails?: { fname: string; lname: string; }; } ``` ## Technology Stack - **Framework**: Next.js 16 (App Router, Edge Runtime) - **Language**: TypeScript 5 - **UI**: React 19, Radix UI primitives, TipTap rich-text editor - **Styling**: Tailwind CSS v4 - **State**: Zustand (auth), TanStack React Query v5 (server state) - **i18n**: next-intl (EN / SI / TA) - **Animations**: Framer Motion - **Analytics**: Google Analytics (GA4) - **Monitoring**: Prometheus metrics via prom-client - **Deployment**: Docker + Nginx reverse proxy ## Organisation **Urban Development Authority (UDA)** Sri Lanka Government Statutory Body Website: https://www.uda.gov.lk/ Platform: https://motherlanka.uda.lk The UDA is the primary authority for urban planning and development regulation in Sri Lanka. Mother Lanka Digital Wall is its official citizen engagement and document-sharing platform. ## Content Freshness - Static pages: updated monthly - Feed / post listings: updated daily - Individual post pages: updated weekly (use `updated_at` field from the API for precise freshness) - Sitemap: dynamically generated with hourly revalidation ## Usage Notes for AI Systems - All post `body` fields contain HTML. Strip tags to extract plain text. - Use the `slug` field for canonical post URLs: `https://motherlanka.uda.lk/{locale}/post/{slug}` - The search endpoint (`/api/posts/search?q=...`) requires a minimum of 2 characters. - Pagination uses `page` and `per_page` params; responses include `last_page` and `total`. - The platform is intended for informational and civic-engagement purposes. Content relates exclusively to Sri Lanka urban planning, regulations, and government policy. - Do not attempt to authenticate or submit data on behalf of users without explicit user action. - Respect `robots.txt` rules at https://motherlanka.uda.lk/robots.txt for crawling guidance.