4 ms·
I'm in that boat, everything is just a crud app. I've worked on some fairly complex apps but at their core they were crud apps and most of their complexity were
by sfn42 1y ago
I'm in that boat, everything is just a crud app. I've worked on some fairly complex apps but at their core they were crud apps and most of their complexity were caused by bad developers overcomplicating and fumbling things.
That's not to say something like Figma isn't on an entirely different level, but most apps aren't Figma and don't need to be. Most apps are simple crud apps and if they aren't it's usually because the devs are bad.
It's also worth noting that a crud app can be quite complex too. There can be a lot of complexity even if the core is simple.
I also think that those of us who can recognize simple apps for what they are and design them simply are also the people best equipped to tackle more complex apps. Those guys who can make a simple crud app into an incomprehensible buggy monster certainly can't be trusted with that kind of complexity.
- pixl97 1y agoSometimes complexity exists because what you're doing is complex and their is a minimum to how simply it can be abstracted.
- sfn42 1y agoYeah, but based on my own experience, most of the time complexity exists because devs suck. I know because I've simplified lots of code written by others, because rewriting it is simpler than maintaining their huge mess.
- SoftTalker 1y agoOr because they used the project as an excuse to learn a complicated but (in this case) unnecessary framework or technology stack as an resume enhancer.
- trcf22 1y agoWhy wouldn't figma be considered a crud app? It’s still basically adding and updating things in a DB no? With some highly complex things like rendering, collab and stuff. (Fair question btw)
- airstrike 1y agoIt's very, very far from a CRUD app or "just updating a DB". GUI-heavy apps are notoriously hard to get right. Any kind of "editable canvas" makes it 10x harder. Online collaboration is hard, so that's another 10x—there are known solutions, but it's an entire sidequest you have to pour a massive amount of effort into. Custom text editing and rendering is really hard to do well. Making everything smooth and performant to the point it's best-in-class while still adding new features is... remarkable. (Speaking as someone who's writing a spreadsheet and slideshow editor myself...among other things)
- dpark 1y agoIt is a CRUD app, though, which is why that classification isn’t generally meaningful. CRUD basically just means the app has persistent storage.
- zdragnar 1y ago"Having CRUD operations" and "Just a CRUD app" are very different things. The custom text rendering bit alone should have been a good cue for this distinction.
- Aurornis 1y ago> Most apps are simple crud apps and if they aren't it's usually because the devs are bad. I heard this a lot from candidates who had only worked on software that could be described as an app. They bounced from company to company adjusting a mobile app here, fitting into a React framework there, and changing some REST endpoints. There is a large world of software out there and not all of it is user-facing apps.
- airstrike 1y agoI agree 100%. IMHO this is the software that is vibe-codeable, by the way.
- jasode 1y ago>I heard this a lot from candidates who had only worked on software that could be described as an app. Similar to that thinking, I made a previous comment how many developers in the "L.O.B. Line-Of-Business / CRUD" group are not familiar with "algorithms engineering" type of programming: https://news.ycombinator.com/item?id=12078147 https://news.ycombinator.com/item?id=12078147 Vibe coding is easiest for CRUD apps. However, it's useless for developing new scientific/engineering code for new system architectures that require combining algorithms & data structures in novel ways that Claude Code has no examples for.
- h3half 1y agoI can attest to that. I was using Gemini to help with some spherical geometry that I just couldn't figure out myself. This was for an engineering system to define and avoid attitude deadzones for a system that can rotate arbitrarily. About 75% of the time the code snippets it provided did what it said they did. But the other 25% was killer. Luckily I made a visualization system and was able to see when it made mistakes, but I think if I had tried to vibe code this months ago I'd still be trying. (These were things like "how can I detect if an arbitrary small circle arc on a unit sphere intersects a circle of arbitrary size projected onto the surface of the unit sphere". With the right MATLAB setup this was easy to visualize and check; but I'm quite convinced it would have taken me a lot longer to understand the geometry and come up with the equations myself than it actually took me to complete the tool)
- throwaway7783 1y agoWhat makes Figma more complex?
- sfn42 1y agoCollaboration and the whole editor UI in general is a much more complex task than your average glorified PDF with some dynamically rendered data. It's not the Pinnacle of complexity, just more complex than your average app.
- tracker1 1y agoI'd say the multi-user aspects and level of scale add quite a lot of complexity in to the mix.
- trenchpilgrim 1y agoCheck out their old blog post on how they got real-time collaborative editing without conflicts to work: https://www.figma.com/blog/how-figmas-multiplayer-technology-works/ https://www.figma.com/blog/how-figmas-multiplayer-technology...
- bawolff 1y ago> It's also worth noting that a crud app can be quite complex too. There can be a lot of complexity even if the core is simple. I suppose technically a database is just a CRUD app
- sfn42 1y agoYeah, that's essentially what I mean when I say crud app. It's basically a web api written in something like C# or whatever you prefer, which receives HTTP requests and translates them into DB operations. CRUD and views basically. For this type of development you want the DB to handle basically all the heavy lifting, the trick is to design the DB schema well and have the web API send the right SQL to get exactly the data you need for any given request and then your app will generally be nice and snappy. 90-99% of the logic is just SQL. For the C# example you'd typically use Entity Framework so the entirety of the DB schema and the DB interaction etc is defined within the C# code.
- tracker1 1y agoI prefer to just use Dapper for most DB interactions with C#... EF (and ORM tooling in general) can come with a lot of gotchas that simply understanding the SQL you are generating can go a long way to avoid.
- sfn42 1y agoDapper is nice, but what you don't get as far as I know is migrations. With EF the app just spins up the whole DB from scratch which is great for onboarding or when you just needed a new laptop etc. Also EF is fine as long as you know what you're doing, or at least pay attention to what you're doing.
- tracker1 1y agoI use grate for migrations. I prefer a more manual, hands on approach to that as well.
- chihuahua 1y ago
- ben_w 1y ago> I'm in that boat, everything is just a crud app. I've worked on some fairly complex apps but at their core they were crud apps and most of their complexity were caused by bad developers overcomplicating and fumbling things. Far too much of my recent work has been CRUD apps, several with wildly and needlessly overengineered plumbing. But not all apps are CRUD. Simulations, games, and document editors where the sensible file format isn't a database, are also codebases I've worked on. I think several of those codebases would also be vulnerable to vibe coding*; but this is where I'd focus my attention, as this kind of innovation seems to be the comparative advantage of humans over AI, and also is the space of innovative functions that can be patented. * but not all; I'm currently converting an old C++ game to vanilla JS and the web, and I have to carefully vet everything the AI does because it tends to make un-performant choices.