Skip to content
In developmentWebFull stack

Property Developer Website & CMS (Bangla/English)

A bilingual website and admin CMS for a new Dhaka real-estate developer — projects, a joint-venture section for landowners and eleven free property tools.

Public siteAdmin CMSPage shellPublic & admin APIMedia pipelineContent typesCalculatorsSQLite
Role
Sole developer — research, design, build, tests
Team
Solo, AI-assisted
Timeline
Oct 2026 – Ongoing
Organisation
Property developer, Dhaka (client)
Code
Proprietary (employer)
Reading time
5 min

One Express 5 process with built-in SQLite serves a React 19 site and a full CMS. Every page works in English and Bangla, link previews are rendered on the server, and a registration-cost estimator is built on researched, sourced FY2026-27 rates.

Overview

A new Dhaka property developer needed a professional presence in two languages: its projects, its services, a way for landowners to propose joint ventures — and reasons for buyers to come back. The site pairs that with an admin CMS the client’s own staff can run.

The problem

  • Buyers and landowners read Bangla and English; numbers, digits and forms had to work in both.
  • Most visitors arrive through Facebook and WhatsApp link previews, which see nothing on a script-only site.
  • Registration and transfer costs in Bangladesh are spread across gazettes and change with every budget.
  • The client needed to review the site before any hosting or domain existed.

Context & constraints

The firm was brand new, with no real projects published yet. The site therefore ships with clearly labelled sample projects that disappear with one setting, and anything unverified stays in draft.

Approach

  • One process — Express 5 serves the API, media and the site on one port, with a single SQLite file using write-ahead logging and online backups.
  • One content model — seven content types declared once drive server validation, the admin forms and tracking of where each image is used.
  • Server-rendered previews — titles, Open Graph, canonical and hreflang tags, structured data and the real HTTP status are written into each page before the app loads.
  • Bilingual throughout — English and Bangla are edited side by side with missing translations flagged; Bengali digits, lakh/crore grouping and Bengali-digit input are handled everywhere.
  • Tools — eleven calculators and guides, including a registration-cost estimator split between buyer, seller and developer, with every rate sourced, dated and editable by admins.
  • CMS — drafts, revisions with restore, a media library that knows where each file is used, an enquiry inbox with notes and CSV export, three roles and an activity log.

Key capabilities

  • Projects with filters, comparison of up to three, galleries and maps
  • Joint-venture section with a two-step landowner enquiry
  • 11 property tools, including EMI, affordability and registration-cost calculators
  • Full English/Bangla content with missing-translation flags
  • Server-rendered link previews, structured data and sitemaps
  • Admin CMS: drafts, revisions, media library, enquiry inbox, roles
  • Image pipeline: type checked by content, metadata stripped, responsive WebP sizes
  • Spam protection without CAPTCHAs: timing token, honeypot, idempotency and rate limits

Architecture

  1. Clients

  2. Express 5

  3. Shared model

  4. Data

A single Node process: the API, the media pipeline and a server-rendered page shell over a React app, backed by one SQLite file. Select a component to trace its connections.

Key decisions

Challenges

Bengali numbers everywhere

Problem. Bangla pages need Bengali digits and lakh/crore grouping, users type Bengali digits into calculators, and some fonts render those digits badly.

Solution. Locale-aware formatting helpers, digit conversion before parsing, a Bengali font first in every font stack, and end-to-end tests that type Bengali digits and check the results in both scripts.

Legal rates from scattered sources

Problem. Registration and transfer costs come from gazettes and change with each budget.

Solution. A research reference tags every rate as confirmed, reported or still to verify, cross-checked against the 2026 regulatory order and the registration fee table; uncertain lines ship flagged, dated and admin-editable, and worked examples became unit tests.

Honest content for a brand-new firm

Problem. There were no real projects to show yet.

Solution. Clearly labelled samples, excluded from the sitemap and search, that vanish with one setting — and drafts for anything the client hasn’t confirmed.

Quality & delivery

Testing

  • 46 automated tests: 25 for the calculators (including the worked registration examples) and 21 API tests covering drafts, 404s, enquiry validation, spam checks, CSRF, the review-link lock-down, login throttling, the content lifecycle, disguised uploads and role masking.
  • End-to-end script: 30 routes in both languages across six viewports from 360 to 1920 px — 160 page loads, each checked for status, overflow, a single h1, the page language, alt text, accessible names and console errors — then user and admin flows.
  • Strict type-checking; the homepage loads about 146 KB of compressed JavaScript.

Deployment

Delivered for review in October 2026 through a temporary, locked-down tunnel. Launch waits on the client’s domain, real projects and team details, and a legal review of the policies.

Outcome

Property tools
11
Calculators, checklist, glossary, compare
Automated tests
46
Calculators and API
Page loads per end-to-end run
160
30 routes × 2 languages, 6 viewports
Languages, edited side by side
2
English and Bangla

The site and CMS were delivered for the client’s review in October 2026. It goes live once the client supplies a domain, its real projects and team, and a legal review of the policies.

Lessons

  • For a business that lives on social media, link previews are the homepage.
  • Legal numbers need a source and a date, not just a value.

Building something similar?

Tell me what you’re working on — I reply to every serious message.

Related work

React 19 PWAHooks & selectorsRepo interfaceLocal repoCloud repoPersistent cacheSecurity rulesService worker
Case study
In production2026Personal

Sangsar — Household Finance PWA

Log any money movement in about ten seconds in either language, then see the month at a glance. A repository layer swaps IndexedDB for Firestore, offline writes sync safely, and 760 unit tests plus 11 end-to-end flows keep it honest.

  • TypeScript
  • React
  • Tailwind CSS
  • Vite
  • PWA & service workers
  • Zustand
  • +4
Prerendered pagesClient islandsServer actionsPublic APIRepository
Live2026Personal

This Site — Portfolio, Toolkit & CMS

Next.js 16 with React Server Components, statically prerendered and revalidated on publish. One Zod schema per content type drives validation, types and the generated admin forms.

  • TypeScript
  • React
  • Next.js
  • Tailwind CSS
  • Node.js
  • Vitest
  • +2