Community Operations · Live in first community pilot

AnKampung: the kampung, running on its own spine

One login for every home you belong to; billing that answers to Act 757; a gatehouse that keeps working — and keeps telling the truth — offline; maintenance that can only move along legal states. Built for Malaysian gated communities and strata estates, already running in a real pilot community.

AnKampung logoAnKampung · one spine, every home

Your committee’s software should tell the truth.

Gated communities run on WhatsApp groups, paper receipts and a guard's memory. AnKampung gives the enclave its own operating platform — identity, money, gatehouse and governance on one event spine that refuses to invent a fact — starting with one real community, then many.

  • English, Bahasa Malaysia and Chinese from the first screen
  • Visitor invitation → pass issued → checked in, one correlation
  • Facility bookings with deposits settled through Finance
  • Announcements that record acknowledgment, not just delivery
Live pilot · one real community, on the spine
AnKampung sign-in on a real device — one person choosing their role: resident, committee, management or gatehouse

One person, every role — resident, committee, management, gatehouse. Bahasa, English and Chinese, from the first screen.

captured on device · first community pilot

1
real community running the pilot on live devices
87
events frozen in the contract v1.0
4
surfaces on one identity — resident, committee, management, guard

Six things a community platform must do honestly

01

One person, every home

Malaysian owners hold multiple properties — a bungalow in the suburbs, a condo in the city, a family house upcountry. AnKampung's identity is hub-and-spoke: one Person, many Communities, many Units, with a different role on each. One login; a switcher chooses the community, the home, the hat you wear today.

02

The money wedge, done right

Maintenance fees, sinking fund at the statutory 10%, arrears tracking and numbered receipts — shaped around the Strata Management Act 2013 (Act 757), billed in MYR, paid through regulated FPX / DuitNow gateways. AnKampung never holds custodial funds; every ringgit has an audit trail.

03

A gatehouse that works offline

The guard verifies visitor QR and OTP passes at the gate — and when the network drops, the gatehouse keeps working on the local copy and says so plainly: “Changes will not reach the spine.” On reconnect, the access ledger reconciles without losing or duplicating a single fact.

04

Maintenance with a spine

Every request walks a legal state machine — Raised → Acknowledged → Assigned → In progress → Closed — with priority, common-property flags and acknowledgment SLAs. The engine rejects illegal jumps and quarantines them. It never invents facts, and it repairs nothing silently.

05

Governance, in the open

Announcements with acknowledgment, community polls, approvals and circulars — with one hard line: Malaysian strata e-voting is not yet legally valid, so statutory AGM/EGM voting stays separate from app polls by design, not by oversight.

06

Designed for many, piloted on one

Every table carries a tenant id, enforced by Postgres row-level security; editions and entitlements are a config layer, not a fork. The pilot community is tenant #1 of a platform — onboarding community #2 changes no schema. That is the whole architecture brief, in one sentence.

The one rule, four ways

The same spine that keeps AnOmbak from colouring a road it hasn't measured keeps AnKampung from stating a fact the ledger can't prove.

The engine never invents facts

State only moves along legal transitions. A contradictory event is rejected or quarantined with a reason — never silently repaired. What the board shows is exactly what the ledger proves, projected deterministically.

The ledger is the truth

The read-model is disposable and rebuildable from the append-only log; the audit ledger is not. Financial and security effects are deduplicated at the ledger, so a re-delivered payment event can never double-credit anyone.

Degradation is disclosed

Offline is a state, not a lie. The gatehouse keeps operating on its local copy and tells the guard, in words, what has not yet reached the spine — preserving origin, device sequence and wall-clock for every fact recorded in the dark.

Privacy is the default posture

The resident directory is opt-in; events are PII-minimised and ID-referenced; global identity never leaks across communities. Retention and permission matrices are written down and sent for PDPA legal review — not invented at 2 a.m. by a developer.

Events in, truth out.

Business modules write facts to an append-only log; the State Engine projects them into a Community Digital Twin — a read-model that is disposable, rebuildable and hash-checkable, and that has never invented a single fact in its life. Every surface, from the guard's app to the committee's console, reads from that one twin.

Surfaces

Compose apps · web console · visitor portal

Ktor monolith

modules, not microservices

Event log

append-only · tenant-partitioned

State Engine

project · reconcile · rebuild

Digital Twin

the honest read-model

English, Bahasa Malaysia and Chinese from the first screen
Visitor invitation → pass issued → checked in, one correlation
Facility bookings with deposits settled through Finance
Announcements that record acknowledgment, not just delivery
Community polls — kept separate from statutory strata votes
AI is optional: operations never depend on an LLM being reachable

Questions a committee actually asks

A kampung is the original Malaysian community — everyone knows the gate, the funds, and who is fixing the lamp. AnKampung keeps that word for the modern kampung: the gated-and-guarded enclave and the strata community. It is deliberately local, in the same family as Masrif and AnOmbak.

This page is the pitch. Every surface and the identity model, the intelligence kept optional, and the legal & computer-science floor each have their own page.

Ready to build something intelligent?

Let's engineer your next product — from idea to launch.