The Build · Part Two

Anyone can
assemble a stack.
Few know how to woo one.

A stack is not a checklist. It is a chosen circle of lovers — each with a role, a temperament, a particular way of making the work feel inevitable. Here is how ours fits together. And how Claude makes every introduction.

Meet The Lineup →
claude-code · ~/aptmatchmakers
# Tuesday, 11:47 PM. Houston. Third coffee.

$ claude

claude: Welcome back. Where were we?

you: Wishlist matcher. The fuzzy
scoring against listing embeddings.

claude: I remember. Sonnet for ranking,
Haiku for extraction, pgvector for
retrieval. Want me to write it?

you: Yes. Make it beautiful.
The Manifesto

A stack is a love affair.

"You don't pick tools. You court them.
And the best ones court you back."

Most startups date around. They flirt with a new framework every weekend, drag five databases into the project before lunch, and wake up six months later wondering why nothing fits together. That is not a stack. That is a roommate situation.

The stack we have chosen is not glamorous in the way that loud, novelty stacks are glamorous. It is glamorous in the way that a perfectly tailored suit is glamorous — composed, considered, every piece pulling its weight. Python doing what Python does. Django being grown-up about it. Postgres being the rock you build a marriage on. Angular being the partner who shows up dressed.

And Claude — quietly, attentively — making every introduction smoother than it has any right to be.

The Stack

Meet the lineup.

Each tool has a temperament. Each one knows what it is for. None of them are jealous of the others. This is the kind of polycule that actually works.

I. The Lingua Franca

Python

"Speaks every language in the room."

Python is the cocktail party host who happens to be fluent in everything — machine learning, web servers, data pipelines, image processing, scripting glue. There is no corner of this app she cannot reach into and make work. She is what every other tool wants to be when they grow up.

She is also, crucially, the language Claude was practically raised speaking. Ask Claude to write Python and you get something idiomatic, tested, and reviewed by a thousand senior engineers. Ask Claude to write the same logic in something fringier and you can hear the hesitation. Speak to her in her mother tongue.

Her best feature: she makes everyone else in the room better at their job.
II. The Establishment

Django

"Has rules. You'll like them."

Django is the partner who already has the lease in their name, the IRA maxed out, the spice drawer alphabetized. ORM, admin panel, auth, migrations, sessions, CSRF protection — all of it handled before you even sit down for dinner. While other frameworks make you assemble your own kitchen from IKEA boxes, Django hands you a working stove and asks what you'd like for breakfast.

Pair her with Django REST Framework and your Angular front-end gets a perfectly typed, well-documented, beautifully versioned API to flirt with. Endpoints feel less like glue code and more like a love letter, properly addressed.

Her best feature: she has thought about your edge cases before you have.
III. The Rock

PostgreSQL

"Loyal. Patient. Powerful."

Postgres is the partner you build a life with. Thirty-plus years of refinement, ACID-compliant, never loses a write, never forgets a foreign key. While trendier databases burn bright and ghost you in production at 3 a.m., Postgres simply shows up. Every. Single. Time.

She handles relational data with the grace of a sommelier and unstructured JSON with the cool of someone who has seen it all. With pgvector, she even does semantic search — meaning your wishlist embeddings live in the same database as your lease records, your tenants, your matches. One bed. One source of truth. No drama.

Her best feature: in twenty years, she will still be here.
IV. The Front of House

Angular

"Dresses for the occasion."

Angular is the partner you bring to the gala — opinionated, structured, TypeScript-typed from the moment they wake up. While React invites you to assemble your own framework from a thousand npm packages, Angular hands you the whole tuxedo: routing, forms, HTTP, state, testing, all stitched and tailored. Enterprise-ready, predictable at scale, a joy to onboard new engineers into.

For a SaaS that will grow from a Houston launch to fifty metros, Angular's discipline is a feature, not a constraint. The wild oats are sown. We are building a marriage.

Their best feature: the code you write today will still look professional in five years.
V. The Wardrobe

Custom Styles

"Made to measure. Made for us."

Tailwind is the off-the-rack outfit everyone else is wearing. Bootstrap is the wedding suit from a chain store. Custom styles are bespoke — cut from your brand, tailored to your voice, tuned to that gold-on-black, Italiana-and-Cormorant feel that no utility class library will ever quite capture.

Hand-written CSS (with maybe a dash of SCSS for sanity) means the AptMatchmakers brand never looks like the next four AI-generated dashboards. It looks like a magazine. It looks like a love story.

Its best feature: nobody else will ever look quite like you.
VI. The Foundation

Ubuntu

"The floor beneath the dance."

Ubuntu is the quiet hero. The OS your developers code on, the OS your servers run on, the OS your Docker images are built from. Free, stable, supported by canonical, beloved by Python's entire ecosystem. You will not think about Ubuntu most days, and that is the highest compliment an operating system can earn.

It is the floor beneath every great dance. It just lets you move.

Its best feature: you will forget it is there. That's the point.
VII. The Penthouse

AWS

"Where the whole affair lives."

AWS is the building. Marble lobby, twenty-four-hour doorman, every utility you could ever ask for one elevator ride away. EC2 for compute, RDS for managed Postgres, S3 for the photos that don't catfish, CloudFront for global delivery, Cognito for identity, SES for email, Lambda for the little errands, Route 53 for the address itself.

You start in a studio (t3.small, single RDS, one S3 bucket) and graduate to the penthouse (auto-scaling groups, read replicas, multi-region failover) without ever changing your address. The same building can house you on day one and on the day you ring the IPO bell.

Its best feature: it grows with you, not against you.
VIII. The Studios

PyCharm & VS Code

"Two desks. Two moods. One romance."

PyCharm is the wood-paneled study — deep Django introspection, smart Python refactoring, the debugger that catches every subtle wrong before it leaves the room. When the work is heavy, when you are deep in models and migrations, PyCharm is where you sit down with a glass of something and concentrate.

VS Code is the loft — lighter, faster, dressed for Angular and TypeScript, friends with every extension in the bar. It is where you flirt with prototypes, sketch components, do the front-end work that wants to feel alive. Both, paired with Claude Code, become extensions of your own thinking. Pick the room that matches the mood.

Their best feature: you will never miss a sticky note again.
The AI Lovers

Every great affair has good help.

Claude is the lead, but no matchmaker works alone. These are the tools that help us write code, ship designs, generate marketing, and keep the romance moving on every front.

Claude

The Concierge

The most thoughtful AI in the room. Architecture decisions, strategic questions, content writing, prompt engineering for the app's own AI features. The model your product is built on and the model that helps you build it. Multi-tiered: Haiku 4.5 for high-volume extractions, Sonnet 4.6 for production matching, Opus 4.7 for the hard reasoning.

Talks. Listens. Remembers your taste.

Claude Code

The Co-Author

Claude living inside your terminal, reading your repo, writing diffs, running tests, fixing what it breaks. Pair-program with a CLAUDE.md at the repo root that captures your conventions, your model tiering, your brand voice — then watch consistency emerge across thousands of files.

Picks up where you left off. Every time.

Anthropic API

The Engine

The same intelligence, embedded directly into your Django app via the official Python SDK. Prompt caching for 80%+ cost reduction on stable system prompts. Tool use for the agentic concierge flows. Vision for reading listing photos and flagging the catfish.

Quiet. Fast. Always at your service.

Image Generation

The Photographer

Midjourney for editorial brand imagery (those gold-on-black mood shots). Stable Diffusion or Flux for in-house volume generation. Use generated images for hero banners, social ads, and atmospheric supporting visuals — never for fake apartment listings. The brand stays honest.

Beauty on demand. Integrity by default.

Video AI

The Director

Runway and Sora for animated brand moments — the swipe interactions, the candle flickering on the marble coffee table, the city skyline at dusk. ElevenLabs for the warm, knowing voiceovers that turn a 15-second reel into a mood. Descript for editing it all into something postable.

Sets the scene before anyone arrives.

Copy & Content

The Ghostwriter

Claude (again) for blog posts, email campaigns, landing pages, ad copy. The voice never wavers because the same model — with the same brand-voice prompt — writes every word. Run drafts through Grammarly for the final polish; let Claude handle the soul.

One voice, ten thousand surfaces.

Design & UI

The Stylist

Figma for the canonical design system. Claude for converting Figma frames to Angular components. v0 or similar for rapid UI sketches when you need to feel a layout before you commit. The brand stays under your control; the velocity goes up.

From mood board to merge in an afternoon.

Data & Analytics

The Detective

Claude to write SQL queries against Postgres, generate cohort analyses, draft retention dashboards. Anthropic's Files API for letting Claude read raw CSV exports and reason about them. Turn questions like "what wishlist features predict signed leases?" into answers in under five minutes.

Asks the questions you forgot to.

DevOps & QA

The Bouncer

Claude Code for writing Terraform, GitHub Actions, Docker configs. Claude for generating pytest suites, synthetic test data (fake wishlists, fake listings), and stress-test scenarios. Sentry catches what slips through. The party stays well-staffed and well-guarded.

Keeps the riffraff out. Keeps the lights on.
The Workflow

How a feature actually gets built.

This is the rhythm. Not a religion — but a steady cadence that turns ideas into shipped code without the usual heartbreak.

Conversation

The first date.
01

Open Claude in claude.ai. Describe the feature in plain English — "I want renters to be able to save a wishlist in natural language and have it converted into structured preferences." Let Claude push back, ask clarifying questions, surface edge cases you haven't thought of. This is where most of the design work happens.

  • Output: a written spec, data model sketch, list of open questions.
  • Time: 20–60 minutes of real thinking.

Architecture

Defining the relationship.
02

Move into PyCharm. Sketch the Django models, the DRF serializers, the API endpoints. Have Claude review the schema before you migrate — it will catch the missing index, the foreign key that should be cascading, the column that wants to be JSONB. Measure twice. Migrate once.

  • Files touched: models.py, serializers.py, urls.py.
  • Claude's role: review, refine, refuse to migrate without tests.

Build (Backend)

The slow burn.
03

Drop into Claude Code in the terminal. Let it write the migrations, the views, the service layer, the tests. You stay in the driver's seat — reviewing every diff, accepting what's right, sending back what isn't. The CLAUDE.md at the root keeps Claude in your voice, your conventions, your model tiering.

  • Loop: generate → review → test → merge.
  • Speed-up: 5–10× over solo coding, with no quality loss.

Build (Frontend)

Putting on the dress.
04

Switch to VS Code. Have Claude scaffold the Angular component, the service, the routing. Then style by hand — the brand lives in CSS, and CSS is where your voice becomes visible. Use the design system, the gold-on-black palette, the Italiana display font. Make every screen feel like the Penthouse card.

  • Tools: Angular CLI, hand-rolled SCSS, occasional Figma reference.
  • Test: does it feel like a magazine? Ship it.

Test & Ship

Meeting the friends.
05

Claude writes pytest cases for the backend, Jasmine specs for the frontend, generates fake data for staging. GitHub Actions runs them on every PR. AWS CodePipeline deploys to staging on merge to develop, to production on merge to main. Nothing reaches users without passing the chaperone.

  • Coverage target: 80%+ on business logic, 100% on payment paths.
  • Cadence: ship to production at least twice a week.

Measure & Iterate

The morning after.
06

Claude reads the analytics, the Sentry errors, the support tickets. Generates the weekly recap. Surfaces the unsexy bugs that are quietly costing conversions. Then you start at step one again — only smarter, only bolder, only more in love with the work.

  • Inputs: Postgres analytics queries, Sentry events, Stripe events.
  • Output: next sprint's spec.
The Content Engine

Marketing materials, at the speed of taste.

The same AI that builds the app builds the brand around it. One team, one voice, every surface — Instagram reels at sunrise, landing pages by lunch, an email campaign before the second espresso.

The "Profile Card" Series
For Instagram & TikTok

Generate a Tinder-style profile card for every signature property — name, Love Language, Green Flag, Red Flag, photos. Drop them into a templated reel with the AptMatchmakers voiceover. Post three a week. Tag the property. Tag the neighborhood. Repeat until viral.

Claude Midjourney CapCut ElevenLabs
The "Red Flags" Editorial
For SEO & Authority

Long-form blog content. "Ten Red Flags in a Houston Lease." "How to Spot a Catfish Listing." "The Floor-Plan Tells." Written by Claude in your voice, illustrated with generated imagery, hand-edited for accuracy. Ranks on Google. Reinforces the brand. Builds trust before the first DM.

Claude Grammarly Ahrefs
The Email Romance
For Nurture & Retention

A drip campaign that feels like a love letter. "Day 1: Welcome to the search." "Day 3: Here's how to actually write a wishlist." "Day 7: We saved you three matches." Personalized by user behavior, written once, deployed forever. Every email earns the open.

Claude Customer.io AWS SES
The Reel Factory
For Social Velocity

Reels generated weekly: swipe-style listings, "we asked our AI" man-on-the-street style, owner testimonials reframed as confessionals. Scripts written by Claude. B-roll generated by Runway. Voiceovers by ElevenLabs. Edited in Descript. Ship five a week. Keep three.

Claude Runway ElevenLabs Descript
Paid Ad Iteration
For Acquisition

Generate twenty ad variations per campaign — different headlines, hooks, audiences, value props. Let the platform algorithms find the winners. Then have Claude analyze what won and propose the next twenty. Creative bottleneck, dissolved.

Claude Midjourney Meta Ads TikTok Ads
Owner Onboarding Kit
For Supply-Side Growth

Personalized welcome decks generated per property manager. Their portfolio, their market, their projected vacancy reduction. PDF, slides, follow-up email — all built from one Claude prompt and a CSV. Pitch a deck that already knows them.

Claude Anthropic API PDF Skill PowerPoint Skill
The Scrubs

The fakes, the flakes, the false flags.

Every dating life has them. Every codebase too. Here are the patterns that will try to seduce you — and the gentle, firm way to turn them down.

!

The Wrapper That Calls Itself a Product

Some weeks it will feel tempting to ship a thin layer over Claude — a chat box, some prompts, a coat of paint. That is not a company. It is a feature waiting to be undercut by the next person who reads the API docs.

The Move: the moat is your proprietary wishlist data, your matched-lease outcomes, your two-sided marketplace. The AI is the engine — the data and the network are the company.
!

The Stack Crush

Every six weeks a new framework will trend on Hacker News. Bun. Deno. SvelteKit. Some new way to write a button. Do not break the marriage for a fling. Every framework swap costs you two months of progress and a month of regressions you'll catch in production.

The Move: commit to the stack. Revisit annually, not weekly. Boring infrastructure ships products; trendy infrastructure ships postmortems.
!

The Premature Scale

You will be tempted to set up Kubernetes, microservices, a service mesh, three message queues, and four caches — for an app that has six users. This is overdressing for the first date. It scares away the work that actually needs doing.

The Move: Django monolith on one EC2, RDS Postgres, S3, CloudFront. That stack will comfortably get you to $10M ARR. Reach for complexity only when complexity earns its keep.
!

The Vibe-Coded Catastrophe

Claude writes good code. Claude does not always write the right code. Accepting diffs without reading them is the same as moving in on the second date — feels romantic, ends poorly.

The Move: review every diff. Run every test. Question every dependency Claude introduces. AI is a co-author, not a chaperone — you are still the one signing the work.
!

The Forever Beta

You will polish the landing page for six weeks. You will rewrite the matching algorithm three times. You will be afraid to launch because what if the wishlist parser has an edge case in week one. It will. So will every successful product in history.

The Move: ship at 70% in Houston. Watch real users. Fix what they actually need. The market gives feedback no spec doc can match.
!

The Cost-Blind AI Bill

Without metering, an app that uses Claude for everything can run up an API bill that eats your margin. One power user running 400 wishlist refinements a day is enough to ruin a Tuesday.

The Move: tier the models (Haiku for cheap, Sonnet for default, Opus for hard). Cache aggressively with prompt caching. Rate-limit free users. Track cost-per-active-user from day one.
— A Letter To The Builders, Part Two —

The stack is set. The romance is ahead.

You have chosen well. Python and Django and Postgres and Angular — these are not the loudest names in the room, and that is exactly why they are the right ones. They are marriages. They are foundations. They are the tools that will still be working when the latest framework of the week has been forgotten by everyone who once swore by it.

The temptation will come — and it will come often — to abandon the chosen lineup for something new. Ignore it. Every great love affair survives by remembering why it began. You did not pick this stack for fashion. You picked it because each piece does its job, makes the others better, and never asks for more than it earns.

Claude will be with you in every file, every commit, every late-night question about whether a service belongs in apps/matching or apps/listings. Use that fully. Ask the obvious questions. Ask the embarrassing ones. The model does not judge. It only wants the work to be good.

The marketing engine you are building — Midjourney for the mood, Runway for the motion, Claude for the voice, ElevenLabs for the warmth — is a small army that did not exist five years ago. A two-person team in 2026 can produce what a thirty-person agency produced in 2019. This is the leverage. Use it without apology.

And when you finally launch — when the first renter signs through your platform, when the first property manager pays a real invoice, when a stranger on the internet tells you they finally found The One — remember this moment. Remember that you sat down at a keyboard and chose a stack and built a thing that did not exist before. That is the romance. That is the whole point.

Now: go fall in love with the work.