Skip to main content
The Geeky Stuff

How WeActually Build This

It started with one developer and state-of-the-art AI. Six 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.

700,000+

Lines of Code

2,200+

Git Commits

120+

Feature Specs

9,300+

Tracked Tasks

38

Django Apps

25

Mobile Features

550+

i18n Files

6

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 120+ feature specifications across the project, generating over 9,300 tracked tasks with an 80% completion rate.

github/spec-kit

The Constitution

A 2,202-line living document of 27 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.

27 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: 27/27 principles PASS ✓
cat constitution.md
1# Tawaasal Engineering Constitution
2
3## Core Principles (27 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,202 lines · 27 principles · enforced on every commit
04
Architecture

The Full Stack

Three platforms, one codebase philosophy — always on the latest stable releases. Every layer follows the same constitution and spec-driven process.

Backend

Latest

Python, Django, DRF — 38 apps, 1,037 files, 239K lines. Multi-tenant via django-tenants with PostgreSQL. UUIDv7 primary keys, centralized permissions, audit logging.

Frontend

Latest

React, TypeScript, Vite — 965 files, 276K lines. Tailwind CSS, Framer Motion, Zustand state, react-i18next with 11-language support and full RTL layout.

Mobile

Latest

Flutter, Dart, Riverpod — 435 files, 101K lines. 25 feature modules, offline-first with Drift/SQLite, 20 theme presets, and native biometric authentication.

Shared i18n

555 files

555 translation files across 11 languages. 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

Six months from first commit to a full-stack production platform with 700K+ 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.

06

April 2026

Production hardening: GitOps continuous delivery, full metrics-and-logs observability, automated database backups, and a shared caching layer. Plus privacy and compliance — DSAR data-rights workflows and an operational notifications system.

07

May 2026

Going global: the app expanded to 11 languages with a one-tap, tenant-aware switcher and a redesigned per-school Languages admin, every language context-reviewed. A unified brand pack landed across web and mobile, alongside a business voicemail line.

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?

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