Documentation
The TechTalk tech stack.
We deliberately use a small, deep stack across all three tracks. Depth beats breadth when you're learning to engineer — every concept compounds when you don't have to relearn it in a new framework.
Languages
TypeScript
The default. Used on the frontend and the backend. We start strict from day one — types are documentation that's checked.
SQL
PostgreSQL specifically. Direct SQL where appropriate, plus query builders for the cases that need them. We avoid ORMs that hide too much.
Frontend
React 19
The mainstream choice. We teach idiomatic modern React: hooks, suspense, and the patterns that scale to teams.
Tailwind CSS v4
Utility-first CSS. We avoid CSS-in-JS and traditional component libraries — students learn to compose, not import.
TanStack Router
Type-safe file-based routing with great SSR support. The replacement for the patterns React Router used to teach.
TanStack Query
Cache management, async state, and the patterns that prevent the 'loading flicker' problems that plague junior code.
Backend
Node.js + TypeScript
Server functions and API routes alongside the frontend code. One language, one mental model.
PostgreSQL
The default database for everything. Schema-first thinking, indexes, and Row-Level Security for multi-tenant apps.
Lovable Cloud
Backend-as-a-service for auth, file storage, and edge functions. Lets students focus on product code, not infrastructure plumbing.
Edge functions
For backend logic, integrations, and the parts of the app that need a server but not a server.
Tooling
Vite 7
Build tool. Instant dev server, lightning HMR, and the ESM-native model that the ecosystem has converged on.
Bun
Package manager and script runner. Faster than npm by enough to matter on slow university Wi-Fi.
GitHub Actions
CI/CD. Type-checking, linting, tests, and preview deploys on every PR.
Vitest
Fast, ESM-native testing. The same mental model as Jest with none of the friction.
Why this stack?
- Mainstream enough to be hireable. Every piece of this stack is used by hundreds of South African companies. Students walk into job interviews speaking the same language.
- Modern enough to be enjoyable. We don't teach 2018 React patterns. The platform has moved on, and so have we.
- Deep enough to compound. By staying in this stack across all three tracks, every week of practice makes the next week easier.
- One language end-to-end. TypeScript on the client, the server, and the edge. Switching context costs more than people admit.
What we don't teach (and why)
We don't teach Angular, Vue, or other frontend frameworks — not because they're bad, but because depth in one framework transfers more than breadth in three. We don't teach Docker or Kubernetes in the Foundation Track — the cognitive load isn't worth it before students have shipped code. We don't teach machine learning — there are better programmes for that, and we'd rather do one thing well.