---
schema: 1
type: video
title: >-
  Please… Enough with the Sloppy, One-Shot SaaS Replacements — Mahmoud
  Abdelwahab, Railway
description: >-
  A single internal app now handles Railway's marketing content, email, social
  posts, media, creator relationships and launch planning. Mahmoud Abdelwahab
  built it with coding agents, but getting the features to run was only the
  beginning. The difference between a quick SaaS replacement and a tool his team
  wants to open every day lives in the details: background saving, responsive
  interactions, reversible actions and consistent screens. His starting point is
  a structured codebase with reusable abstractions, so each new feature follows
  existing patterns instead of inventing another way to do the same work.
  Abdelwahab works through the product behaviors he has learned to request
  explicitly. Autosave should preserve progress without blocking typing;
  optimistic updates should make suitable actions feel immediate and recover
  when the operation fails. Undo and archiving give people room to change their
  minds. URL state makes a filtered view shareable, while infinite scrolling
  removes repetitive navigation. Referencing an existing page helps the agent
  reuse the app's interface and data fetching conventions. He then packages
  recurring design and deployment preferences into agent skills. The final step
  is a verification loop that opens the running application and exercises the
  feature from start to finish, because a successful build and passing tests can
  still leave a broken experience. These are practical lessons from an internal
  tool, without a claim of measured financial savings. Speaker info: -
  https://www.linkedin.com/in/thisismahmoud/ - https://github.com/m-abdelwahab
  Timestamps: 00:00 - Replacing Railway's internal marketing tools 2:32 -
  Structure and abstractions for consistent features 4:03 - Product polish
  agents need to be asked for 4:57 - Autosave and collaboration 6:16 -
  Optimistic updates, undo and archiving 8:45 - URL state and navigation 9:38 -
  Reference pages and agent skills 11:47 - Verify the running feature from start
  to finish --- Watch along with the corrected transcript, summary, timestamps
  and resources on this talk's official AIE page:
  https://ai.engineer/talks/oixzVKMAXG0-youtube-6fcfb5ae5a2bdc32a5b2 Join our
  upcoming AI Engineer conferences (see https://ai.engineer landing page): -
  AIEi Shanghai, November 5–6 — the first for meeting top Chinese labs and
  engineers - AIE CODE in SF, November 10–12 — the top AI Coding conference
  returns - AIEi Sydney, December 7–8 — the first AIEi run alongside NeurIPS
  2026 in Sydney ---
canonical: >-
  https://liquidgold.cc/channel/aidotengineer/explore/video/please-enough-with-the-sloppy-one-shot-saas-replace-8b5eb41df09c
markdown: >-
  https://liquidgold.cc/channel/aidotengineer/video/please-enough-with-the-sloppy-one-shot-saas-replace-8b5eb41df09c.md
llms: null
parent: 'https://liquidgold.cc/channel/aidotengineer.md'
channel: aidotengineer
updated: '2026-10-23T22:24:19.554Z'
language: null
children: []
videoId: oixzVKMAXG0
durationSeconds: 801
publishedAt: '2026-10-12T15:00:19.000Z'
searchChunks:
  - ordinal: 0
    text: null
    startSeconds: 12
    endSeconds: 158
    watch: 'https://liquidgold.cc/watch/oixzVKMAXG0?t=12'
    heldReason: rights
  - ordinal: 1
    text: null
    startSeconds: 12
    endSeconds: 158
    watch: 'https://liquidgold.cc/watch/oixzVKMAXG0?t=12'
    heldReason: rights
  - ordinal: 2
    text: null
    startSeconds: 12
    endSeconds: 158
    watch: 'https://liquidgold.cc/watch/oixzVKMAXG0?t=12'
    heldReason: rights
  - ordinal: 3
    text: null
    startSeconds: 158
    endSeconds: 169
    watch: 'https://liquidgold.cc/watch/oixzVKMAXG0?t=158'
    heldReason: rights
  - ordinal: 4
    text: null
    startSeconds: 169
    endSeconds: 245
    watch: 'https://liquidgold.cc/watch/oixzVKMAXG0?t=169'
    heldReason: rights
  - ordinal: 5
    text: null
    startSeconds: 301
    endSeconds: 313
    watch: 'https://liquidgold.cc/watch/oixzVKMAXG0?t=301'
    heldReason: rights
  - ordinal: 6
    text: null
    startSeconds: 313
    endSeconds: 380
    watch: 'https://liquidgold.cc/watch/oixzVKMAXG0?t=313'
    heldReason: rights
  - ordinal: 7
    text: null
    startSeconds: 391
    endSeconds: 525
    watch: 'https://liquidgold.cc/watch/oixzVKMAXG0?t=391'
    heldReason: rights
  - ordinal: 8
    text: null
    startSeconds: 391
    endSeconds: 525
    watch: 'https://liquidgold.cc/watch/oixzVKMAXG0?t=391'
    heldReason: rights
  - ordinal: 9
    text: null
    startSeconds: 391
    endSeconds: 525
    watch: 'https://liquidgold.cc/watch/oixzVKMAXG0?t=391'
    heldReason: rights
  - ordinal: 10
    text: null
    startSeconds: 539
    endSeconds: 583
    watch: 'https://liquidgold.cc/watch/oixzVKMAXG0?t=539'
    heldReason: rights
  - ordinal: 11
    text: null
    startSeconds: 539
    endSeconds: 583
    watch: 'https://liquidgold.cc/watch/oixzVKMAXG0?t=539'
    heldReason: rights
  - ordinal: 12
    text: null
    startSeconds: 583
    endSeconds: 595
    watch: 'https://liquidgold.cc/watch/oixzVKMAXG0?t=583'
    heldReason: rights
  - ordinal: 13
    text: null
    startSeconds: 595
    endSeconds: 707
    watch: 'https://liquidgold.cc/watch/oixzVKMAXG0?t=595'
    heldReason: rights
  - ordinal: 14
    text: null
    startSeconds: 719
    endSeconds: 801
    watch: 'https://liquidgold.cc/watch/oixzVKMAXG0?t=719'
    heldReason: rights
---


# Please… Enough with the Sloppy, One-Shot SaaS Replacements — Mahmoud Abdelwahab, Railway

A single internal app now handles Railway's marketing content, email, social posts, media, creator relationships and launch planning. Mahmoud Abdelwahab built it with coding agents, but getting the features to run was only the beginning. The difference between a quick SaaS replacement and a tool his team wants to open every day lives in the details: background saving, responsive interactions, reversible actions and consistent screens. His starting point is a structured codebase with reusable abstractions, so each new feature follows existing patterns instead of inventing another way to do the same work. Abdelwahab works through the product behaviors he has learned to request explicitly. Autosave should preserve progress without blocking typing; optimistic updates should make suitable actions feel immediate and recover when the operation fails. Undo and archiving give people room to change their minds. URL state makes a filtered view shareable, while infinite scrolling removes repetitive navigation. Referencing an existing page helps the agent reuse the app's interface and data fetching conventions. He then packages recurring design and deployment preferences into agent skills. The final step is a verification loop that opens the running application and exercises the feature from start to finish, because a successful build and passing tests can still leave a broken experience. These are practical lessons from an internal tool, without a claim of measured financial savings. Speaker info: - https://www.linkedin.com/in/thisismahmoud/ - https://github.com/m-abdelwahab Timestamps: 00:00 - Replacing Railway's internal marketing tools 2:32 - Structure and abstractions for consistent features 4:03 - Product polish agents need to be asked for 4:57 - Autosave and collaboration 6:16 - Optimistic updates, undo and archiving 8:45 - URL state and navigation 9:38 - Reference pages and agent skills 11:47 - Verify the running feature from start to finish --- Watch along with the corrected transcript, summary, timestamps and resources on this talk's official AIE page: https://ai.engineer/talks/oixzVKMAXG0-youtube-6fcfb5ae5a2bdc32a5b2 Join our upcoming AI Engineer conferences (see https://ai.engineer landing page): - AIEi Shanghai, November 5–6 — the first for meeting top Chinese labs and engineers - AIE CODE in SF, November 10–12 — the top AI Coding conference returns - AIEi Sydney, December 7–8 — the first AIEi run alongside NeurIPS 2026 in Sydney ---

Canonical: https://liquidgold.cc/channel/aidotengineer/explore/video/please-enough-with-the-sloppy-one-shot-saas-replace-8b5eb41df09c · Channel: [AI Engineer](https://liquidgold.cc/channel/aidotengineer.md)

> Search chunk text is held until public-source provenance is verified.

## Document chunks

---

#### Chunk 0: Document excerpt (0:00 to 2:38)

> Held: transcript rights do not permit this chunk's text.

---

#### Chunk 1: Document excerpt (2:38 to 4:05)

> Held: transcript rights do not permit this chunk's text.

---

#### Chunk 2: Document excerpt (4:05 to 6:20)

> Held: transcript rights do not permit this chunk's text.

---

#### Chunk 3: Document excerpt (6:20 to 8:45)

> Held: transcript rights do not permit this chunk's text.

---

#### Chunk 4: Document excerpt (8:45 to 9:43)

> Held: transcript rights do not permit this chunk's text.

---

#### Chunk 5: Document excerpt (9:43 to 11:47)

> Held: transcript rights do not permit this chunk's text.

---

#### Chunk 6: Document excerpt (11:47 to 13:21)

> Held: transcript rights do not permit this chunk's text.
