Skip to main content
The Geeky Stuff

How WeActually Build This

It started with one developer and state-of-the-art AI. Five months in, the foundation is built — and the team is just getting started. Here are the real numbers, real tools, and real methodology behind Tawaasal.

01

The Numbers

Real metrics from our git repositories. No vanity numbers — every stat is pulled directly from our codebase.

438,000+

Lines of Code

1,400+

Git Commits

65

Feature Specs

4,200+

Tracked Tasks

32

Django Apps

24

Mobile Features

1,000+

i18n Files

5

Months Active

02
Methodology

Spec-Driven Development

Every feature starts as a specification, not a Jira ticket. We built a custom framework called SpecKit that enforces a rigorous pipeline from idea to production code.

1

Specify

Natural language feature description becomes a structured spec.md with user stories, acceptance criteria, and scope boundaries.

2

Plan

Technical architecture, data models, API contracts, and file structure — all documented before a single line of code is written.

3

Tasks

Dependency-ordered task breakdown with parallel markers, validation checkpoints, and phase gates. Every task has file-level traceability.

4

Implement

AI executes tasks sequentially, loading context per-task from the constitution and pattern references. Micro-reviews after each task.

5

Review

Constitution-aware code review with severity levels (BLOCKER/ERROR/WARNING/INFO), spec traceability, and automated fix suggestions.

We have written 65 feature specifications across the project, generating over 4,200 tracked tasks with 68% completion rate.

github/spec-kit

The Constitution

A 2,168-line living document of 24 engineering principles that every line of code must comply with. From UUIDv7 primary keys to tenant isolation, i18n parity to accessibility standards — the constitution is the single source of truth.

24 principles covering code quality, security, permissions, i18n, accessibility, performance, and design consistency.

claude-code — speckit
/speckit.specify "Add homework submission system"
→ spec.md created (12 user stories, 34 acceptance criteria)
/speckit.plan
→ plan.md generated (data model, API contracts, file structure)
/speckit.tasks
→ tasks.md: 47 tasks across 5 phases, 12 parallelizable
/speckit.implement
→ Phase 1/5: Setup ████████████████ 6/6 complete
→ Phase 2/5: Core ██████████████░░ 11/13...
/akhiq.review
→ 0 BLOCKER · 0 ERROR · 2 WARNING · 4 INFO
→ Constitution compliance: 24/24 principles PASS ✓
cat constitution.md
1# Tawaasal Engineering Constitution v1.16.0
2
3## Core Principles (24 total)
4
5### I. Code Quality First
6 - No N+1 queries — use select_related(), prefetch_related()
7 - TypeScript strict mode, no `any` types
8 - All icon buttons MUST have aria-label
9
10### II. Security & Authorization (NON-NEGOTIABLE)
11 - Multi-tenant isolation at database query level
12 - Permission checks at API level, never trust frontend
13
14### XVI. i18n Compliance (BLOCKING)
15 - Every user-facing string in EN + AR translation files
16 - RTL layout with ltr:/rtl: Tailwind prefixes
17
18### XXIV. UUIDv7 Primary Keys (NON-NEGOTIABLE)
19 - All models inherit UUIDv7BaseModel
20 - Time-ordered, non-enumerable, offline-safe
21
22# 2,168 lines · 24 principles · enforced on every commit
04
Architecture

The Full Stack

Three platforms, one codebase philosophy. Every layer follows the same constitution and spec-driven process.

Backend

v3.14 / v5.2

Python 3.14, Django 5.2, DRF — 32 apps, 509 files, 151K lines. Multi-tenant via django-tenants with PostgreSQL 17. UUIDv7 primary keys, centralized permissions, audit logging.

Frontend

v19 / v5.9

React 19, TypeScript 5.x, Vite — 629 files, 183K lines. Tailwind CSS, Framer Motion, Zustand state, react-i18next with full EN/AR bilingual support and RTL layout.

Mobile

v3.38 / v3.10

Flutter 3.38, Dart 3.10, Riverpod — 500 files, 104K lines. 24 feature modules, offline-first with Drift/SQLite, 20 theme presets, and native biometric authentication.

Shared i18n

1,003 files

1,003 translation files across English and Arabic. Every user-facing string goes through the shared i18n pipeline — backend, frontend, and mobile all consume the same source of truth.

05
Timeline

Chapter One

Five months from first commit to a full-stack production platform with 438K+ lines of code. This is the foundation — what comes next is bigger.

01

November 2025

Project kickoff. Backend foundation, multi-tenant architecture, user management, and the first Django apps. SpecKit workflow established.

02

December 2025

Core features: homework, grading, attendance, calendar, messaging, permissions system, and subscription management. 20+ specs completed.

03

January 2026

Advanced features: safeguarding, communication templates, data import/export, rich text editor, student lifecycle management.

04

February 2026

Flutter mobile app: student, guardian, teacher, and staff experiences. Offline sync, theme system, and cross-platform parity.

05

March 2026

Marketing website, CMS, public pages, and this very page you're reading. UI design revolution across web and mobile.

What's Next

Growing the team, onboarding pilot schools, and building the features that turn a platform into a product. The architecture is ready — now it scales.

Want to See It in Action?

Five months of engineering by one developer with AI. Imagine what a growing team will do. Try the demo and see what's already possible.