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

## Executive summary

This talk outlines advanced principles for building polished, production-grade internal tools using AI coding agents, moving beyond simple 'one-shot' SaaS replacements. The speaker emphasizes that achieving a high-quality user experience requires explicitly requesting complex engineering patterns—such as autosave, optimistic updates, and URL state management—and implementing rigorous verification loops to ensure the final product is robust and consistent.

## Key takeaways

- Structured Codebase is Key: When building tools for daily use, providing the agent with a proper codebase containing solid abstractions ensures that new features follow existing patterns, leading to a more consistent and polished result.
- Implement Autosave and Collaboration: For document editors, autosave should be a non-blocking background action. Advanced features include preventing tab closure on unsaved changes and enabling real-time collaboration.
- Use Optimistic Updates: Instead of showing loading spinners for every action, optimistically show the success state immediately. If the background sync fails, the system should roll back the change, making the overall experience feel significantly faster and snappier.
- Enhance User Control (Undo/Archive): Improve UX by allowing users to undo actions (e.g., deleting a record) by immediately removing the item from the UI but keeping it available for a short period. Use archiving instead of forced deletion to hide records from the UI or search results.
- Manage State with URL State and Infinite Scroll: Persisting filtered or sorted views in the URL state makes the view shareable. Additionally, implementing infinite scrolling removes repetitive navigation by fetching data as the user scrolls, rather than requiring 'Load More' clicks.
- Package Preferences as Agent Skills: To enforce consistency, package recurring design and deployment preferences (e.g., UI/UX standards, animations, platform-specific integrations like Railway) into explicit 'agent skills' for the AI to follow.
- Mandate End-to-End Verification: The final, crucial step is implementing a verification loop. The agent must not only report that the build and tests passed but must also run the feature end-to-end to ensure a fully functional and polished experience.

## Technical details

- Frontend/Web Stack: The speaker recommends using the tauri stack libraries for web development and suggests Payload for content-related applications due to its solid experience and abstraction.
- AI Agents & Development: The process involves giving explicit instructions to the agent for advanced patterns (e.g., 'I would like to implement optimistic updates where it makes sense'). The agent is then given 'agent skills' to guide its development choices.
- Architecture & Deployment: The speaker's internal tool suite manages marketing content, email campaigns, social posts, media, mini CRM, task tracking, and launch planning, all built using agents and deployed via Railway.

## Practical implications

- When using AI agents for development, treat the agent as a highly capable but inexperienced junior developer; you must explicitly request advanced UX patterns rather than assuming they will appear.
- Prioritize architectural consistency by establishing reusable abstractions and packaging design/deployment rules into 'agent skills' to guide the AI.
- Integrate mandatory end-to-end verification loops into the CI/CD process, ensuring that successful builds and passing tests do not mask broken user experiences.

## Topics

AI Development, Internal Tools, Web Architecture, User Experience (UX), Software Engineering Principles, Mahmoud Abdelwahab, GitHub Profile, Railway

Source: https://www.youtube.com/watch?v=oixzVKMAXG0
