if I were to summarize the positives and negatives I see:
- Standards - I need Replit to be able to have a set of system instructions that it 100% of the time adheres to. Coding, Naming, Testing, Data Architecture, Project Management, etc. I’ve tried to setup standards, leverage Replit.MD to enforce them - only to have it ignore standards unless I explicitly call them out in each and every request. And then there’s the associated cost - by leveraging standards I’m getting more trustworthy code, but having to do so is drastically amplifying cost. My replit bill is substantial - think thousands.
- Auth. I’m very committed to passwordless auth - I’ve tried clerk, webauthn, rolling my own, somehow getting replit.auth to work but…every time auth and rbac work - they get wiped out by a later build of some feature. I mean - auth is something I should only have to work on once - it’s been the bane of my existence. 60% or more of my spend has been on trying to get auth working - and I’ve even tried to create a template project to act as a foundation for everything else in order to try to advance past this headache. This is causing me to have a lot of trust issues with Replit.
- UI/UX - more than once I’ve had significant UI/UX components that worked and were in good order arbitrarily replaced or removed. That again is contributing to trust issues for me.
- Coding practices - going back up to why I tried to create standards in the first place - I’ve found that Agent3 produces a lot of 1 off code - I’ve had to perform significant refactoring to create helper classes, middleware, storage patterns, ui/ux patterns - which should have been built to best practices from the start. Come on. What’s the advantage of massively trained LLMs if not to leverage global best practices consistently. Yes, know my project goals sure, but why write non-singleton patterns? Why code navigation in a page by page way? Why not build core multi-use objects from the start - it seems obvious that hard coding, single-use objects, non-standard naming/random naming, etc should be avoided. I might not mind this so much if I could provide Standards guardrails for the Agent but since it randomly ignores Replit.md in the first place - I don’t really have any idea how to get consistent reliability out of actions. To say this pains me and wastes time is mild - it’s more accurate to say that I am wasting money and trust in trying to fix bugs that the Agent introduces that could be avoided by paying attention to my standards in the first place.
Look. I want to be able to use Replit in production enterprise environments - it’s an obvious positive path to go down but - reliability, trust, and the ability to create consistent framing/guardrails is just a necessity. Otherwise, I imagine a situation where I have to use CodeRabbit adversarially to evaluate and correct poorly executed Agent3 code - or where I just use Replit for UI/UX design and then have Cursor produce the whole back-end. That seems redundant to me. As I said - I want this to work - but my trust in the process is being blown up over and over.