←back to thread

105 points robbyrussell | 3 comments | | HN request time: 0.616s | source
1. todotask2 ◴[] No.45079212[source]
I started with a small prototype, a simple site using L6, and realized there were several issues with the idea. Years later, in 2019, I worked with Astro, which taught me a lot about maintainability and I found they got it right.
replies(1): >>45079692 #
2. scop ◴[] No.45079692[source]
Can you expand on this? Was your site pretty static or did it have a lot of interactivity? What were the best things you observed in Astro vs Laravel?
replies(1): >>45081287 #
3. todotask2 ◴[] No.45081287[source]
I started with pure HTML, CSS, and JS, then moved to AlpineJS with a Go backend, before eventually migrating to Astro with TypeScript and Tailwind CSS. I have not used a headless CMS, as avoiding one allows me to move faster. So far, upgrading from 2.0 to 5.x has been consistently smooth, unlike the MVC paradigm. Astro follows a folder structure similar to Vue. My sites run in SSR, mainly a vendor and business networking platform. They include quite a bit of interactivity, such as an image slider, and a good deal of logic for complex content rendering from form fields. I also simplified error handling in forms with interactive elements.

Most of my work revolves around forms and SQL (Postgres). After translating designs from Figma and Marvellous, I export with Tailwind, which makes things easier. Still, I wish my UI/UX designer had listened to my struggles and made use of pre-built UI components to save time. Instead, they often executed poorly, rushed features, and changed things on a whim as though it were a toy, which was frustrating. Even so, I managed to overcome that as a sole developer and co-founder.

I did not expect to accumulate with such a large set of custom UI components, ranging from simple to complex logic, that are reused across different parts of the frontend. Managing that in Laravel’s workflow would have been a nightmare. I prefer JSX-like syntax over Blade because it is faster to work with TypeScript for both frontend and backend.

I also do not need to waste time dealing with routing, it was the same problem with Go + Echo, although Astro allows me to add flexibility with packages like micromatch for dynamic routes within middleware. Laravel, of course, has middleware too.

From my experience, I still have not found a convincing reason to adopt traditional MVC or to need that level of abstraction in Laravel.

Astro’s colocation (.astro) is optimised for developer velocity and a component-first mental model.

Despite my aim to strive for perfection, I have been out of work for years and have been affected by permanent hazy vision due to a health-related issue. My wish is to continue building with Astro.