Project 06 · LIVE

Kira Cetveli

A serverless tool that runs entirely in the browser, built to calculate rent increases correctly and bring everyday rental tasks (late interest, deposits, tax estimates, documents, contract calendar) into one place.

CALCULATIONS
Increase, interest, deposit, tax
ROLE
Design and development
STACK
React · TypeScript · Vite
STATUS
Live
kira.beraekimci.com.tr
Rent increaseLate interestDepositDocumentsCalendar (.ics)
Case study

Problem, approach, evidence.

1

Problem

The rent increase rate is recalculated every year and depends on TBK article 344 and CPI data. Late interest, deposits and tax each need their own tools and documents. One wrong number means real money lost.

2

Approach

The calculations are pure functions independent of the UI and are protected by unit tests. None of the legal values is hard-coded; they come from validated data files. Every result screen and document shows the not-legal-advice notice and the data's last update date.

3

Evidence

Measured live: Lighthouse 98 on desktop, 78 on mobile; LCP 0.9 s on desktop, 3.9 s on mobile; layout shift 0; accessibility 100. Unit (Vitest) and end-to-end (Playwright) tests are in place.

Tools

From calculations to documents.

PART 01
Calculators

Rent increase (the 12-month average CPI for the renewal month is filled in automatically), late interest, back-period difference, deposit refund, withholding and income tax estimate.

PART 02
Documents

Rent increase notice, eviction notice and deposit refund request, as a PDF or editable text.

PART 03
Calendar and checklist

A contract calendar (.ics), optional reminders kept only on this device, and a contract checklist.

PART 04
Guides

Tenant rights, landlord obligations and frequently asked questions, delivered as a PWA that works offline.

Architecture

Data lives apart from code.

01
Data files
JSON validated with zod
02
Validation
cross-checked against the official series
03
Static HTML
every page is pre-generated
04
Edge
served from Cloudflare

↑ The monthly data update arrives as an automatically opened pull request; it does not ship until validation passes.

NEXT PROJECT

Let's do the next one together.

Write to me about a project, a collaboration or a technical chat. I reply within 24 hours on average.