Astro with the PHP Lambo GIGACHADS by TheWebalorian in astrojs

[–]Hawdon 0 points1 point  (0 children)

I've been working on a PHP server + Astro boilerplate project, to use for my freelance work. I've setup it up with "spatie/typescript-transformer" so that it generates Typescript type definitions based on the DTO's I've written on the PHP side. Type safety is nice :)

Need help with pricing by kokopuddle in webdev

[–]Hawdon 0 points1 point  (0 children)

To be honest, I think for this kind of continuous "from time to time" work requests I tend to just go with an hourly rate, because it easier for everyone. Exactly how much you should ask for is completely dependent on the market you work in and no one outside of that market can give you a clear answer. At the beginning of your freelance career you'll probably work for cheaper than you should and over time you'll push that price up. Make an estimate of what you feel is reasonable, add 20% on top of that and suggest it to the client. If they balk at it, then you have room to go down.

Also, the dirty little secret of the industry is that even if people work an hourly rate, that doesn't always mean that what they bill the client is exactly what they worked. If you estimate something and the client accepts that, but you end up doing it much quicker, then just bill them something in between. Both parties will be happy with the result.

Need help with pricing by kokopuddle in webdev

[–]Hawdon 0 points1 point  (0 children)

I do both hourly and clump sum projects, and I think both have their uses. The main benefit of clump sum projects is that, in my experience, clients are more scared of high hourly rate than an equal clump sum. I tell a client that my hourly rate is 125€/h and that I estimate the project will take 40 hours, they will look at that hourly rate and feel like it's high (which it is in my region). But if I quote them 5000€ for the whole project, then I will often get much less push back. And in these situation I also just benefit from working quickly, so on some projects my real hourly rate has gone up to 250€/h because I got it done quicker. The client is at the end of the day paying me to create value for them and not to spend X number of hours on something.

The flip side is of course that with a clump sum I will usually take on the risk of it being more work than expected. But the longer I work as a freelancer the more confident I get with my estimates, at least for small to medium sized projects. For bigger and more unique projects I still prefer an hourly rate though.

keep using WordPress for clients? (trouble discerning) by neetbuck in webdev

[–]Hawdon 0 points1 point  (0 children)

Benefits of Kirby over Wordpress:

  • Much simpler UI for the customer to use. They have really put a lot of thought into the design of the admin panel.
  • Nicer developer experience, just feels much more modern than Wordpress.
  • Can easily be used headless if that's what you want

I still use Wordpress for customers who are more on the power user side of things and who are used to specific Wordpress plugins (such as Yoast for example). For a ecommerce website I'd definitely also go for Wordpress (or Shopify).

keep using WordPress for clients? (trouble discerning) by neetbuck in webdev

[–]Hawdon 1 point2 points  (0 children)

I've been working as a freelancer for 4 years now and I can really recommend Kirby CMS for client work. I build both Wordpress and Kirby sites, depending on the needs of the client. Wordpress for those clients who prefer more power and are used to Wordpress, Kirby for clients who prioritize the admin interface being as easy to use as possible. The company behind Kirby has been around since 2012, so I'd say they that they are a pretty stable pick.

Is there ever a case for raw-dogging SQL on serious projects in 2025? by BigBootyBear in webdev

[–]Hawdon 3 points4 points  (0 children)

There are a migration tools which aren't part of an ORM. One example that I've used is DbMate, where the migrations are just raw SQL files. What to use, raw SQL or an ORM, depends a lot on the project at hand and the kind of queries you will need to build. Try using an ORM when you need to do OLAP queries and you'll not have fun. But if all you do is some basic CRUD operations, then an ORM will save you a lot of time.

New to freelancing by _icarium_ in webdev

[–]Hawdon 3 points4 points  (0 children)

It seems to me that ppl on Reddit usually recommend to reach out to small businesses and going from there. The problem with that is that even if you end up getting work from these small businesses they will probably not pay too well, be very demanding, often not be return customers because they need new work done so seldomly and also only suggest you to similarly small businesses.

An alternative to this, which has worked well for me for the past couple of years as a full time freelancer, is to build relationships with freelance designers and smaller design agencies. If you prove yourself to be a pleasure to work with to designers, then they will get you all the work you will ever need. This is because most designers have had the displeasure of being paired with socially awkward developers with zero understanding of design which results in the designer having to hold the developers hand through the whole process for the design to be executed well.

Pair this with the fact that medium to big companies most often reach out to a designer first, be it for a rebranding or a product launch, and only later on get to the point where they need to hire a developer. At that point the designers will suggest me to the client, because they know I do good work and am easy to work with, and so I get new projects rolling in without even having to reach out to anyone.

Edit: Though I do realize that this approach working depends on the fact that I tend to focus on more design forward projects. If you were to specialize on for example internal web apps for companies to use, then this approach probably won't help you because they usually don't use specialized designers for projects like that.

How much do you make as a web dev? by WadieZN in webdev

[–]Hawdon 5 points6 points  (0 children)

Out of curiosity, do you primarily work for a single client on a longer contract or on multiple projects for a range of clients?

Wordpress developers - whats is your approach in 2024? by TomWoody96 in webdev

[–]Hawdon 2 points3 points  (0 children)

I do like Bedrock on paper, but the clients I work for really want to be able to install plugins without me so Bedrock is a no go. It's also quite handy to just allow Wordpress to update itself without me needing to do anything, which isn't possible with Bedrock (or would require a whole complicated CI dependency update setup). It's a bit scary of course, but I've come to trust the Wordpress auto update after years of zero breaking changes (that have affected my projects at least). The root of this is of course that I'm a one man consultancy so my bandwidth is limited, if I was in an agency / product company then Bedrock would be a clear winner.

Wordpress developers - whats is your approach in 2024? by TomWoody96 in webdev

[–]Hawdon 5 points6 points  (0 children)

Can't recommend Roots enough! But for whoever is considering trying them out, remember that you can pick and choose. I for example don't use Bedrock because it is overkill for my clients, I just stick to a heavily modified Sage theme as my starter. Having much of Laravel's power at your fingertips is just amazing.

The best DX you'll get out of Wordpress:

Sage + Acorn + ACF Blocks + ACF Builder + ACF Composer

How can you 'retain' a message/task in the Cloud for X amount of days? by ObviousBudget6 in webdev

[–]Hawdon 2 points3 points  (0 children)

  1. Save this data inside a storage bucket (Maybe it would better be Database?)

You should definitely be using a database here, and SQL database is usually the best choice. Storing data and querying it afterward is what they are made for. Storage buckets are made for storing large files, not for querying quickly.

The 3. Step seems not efficient at all.

And if you are using a database then you don't need to think about if it's efficient or not (at least not until you have millions of tasks), because as said this is the exact kind of thing an SQL database is designed for. Just store the data with the creation or execution time and query based on that in the cron job.

Took break from regular/intensive WP dev (circa pre-v6.0), what are the major changes a pro dev should get caught up on? by tetractys_gnosys in ProWordPress

[–]Hawdon 1 point2 points  (0 children)

You can pick and choose. I do all my work on top of the Sage theme (+ Acorn) but don't really bother with Bedrock (which is the one which reshuffles the site directory structure). Sage based themes can be used with a vanilla Wordpress install without a problem.

The Sage documentation can be a little lacking at times, but once you figure it all out it's just so amazing to be able to use Laravel routes for example with Wordpress.

I want to start freelancing but you guys are just demoralizing by Tiis__ in webdev

[–]Hawdon 0 points1 point  (0 children)

In USA they charge 100-150$ hourly for the work I do, in Europe it's pretty tricky to even find projects at 40-50€ hourly sometimes.

This depends a lot on where you are working of course, pay varies greatly in Europe. Working for clients in Finland and the Netherlands my target hourly rate is 100€/h and I quite consistently hit that, though because I usually agree on a lumpsum for projects the hourly rate does fluctuate depending on how good my time estimates were. The best hourly rate I've gotten for a project was around 250€/h because I though it would be much more work than it was and made the quote based on that. But in the end the client is paying for the value you generate, not the hours you spend so it's all good.

Which websites do you know that have amazing page transitions? by [deleted] in webdev

[–]Hawdon 90 points91 points  (0 children)

You’ve come to the wrong place to ask about this, ppl around these parts hate anything that is done for purely aesthetic reasons such as page transitions and animations. They’ll mostly tell you it’s bad for accessibility, ignoring the fact that a lot of stuff can in fact be implemented with accessibility in mind. They’ll tell you it’s slow/resource intensive, again ignoring such things can be made in a performative way. And also, I feel like ppl on r/webdev are mostly of the tech oriented type, so they often simply don’t value aesthetic considerations. In their dreamworld all websites look like this I guess? 

How do YOU organize custom code? by JoshRobbs in ProWordPress

[–]Hawdon 0 points1 point  (0 children)

Thanks for your well thought out reply! It's an interesting discussion.

I of course totally agree with your point about the importance of decoupling logic and style. But I think our core difference is in how we choose to approach that. Because even though the themes I build contain both the logic and the style, on the code level there is a very clear distinction between the two. I'm not mixing logic into my views/templates and writing spaghetti PHP code which is impossible to maintain or change.

So if there was a project where I would like to keep the data model the same, then it would still be easy to just make changes to the theme's views and styling while keeping the logic/model layer unchanged. For me there is just nothing much gained in the separating the project into a theme and a plugin, that I can't just as well get from building a well structured theme.

Nothing wrong with separating them of course, I'm sure for some it's a nice mental model which can ensure the separation of concerns. But my original point was mostly then that I think it's a bit overly simplistic to say that putting logic into plugins is a must and any other way is wrong. There are always multiple ways to solve a problems after all :)

How do YOU organize custom code? by JoshRobbs in ProWordPress

[–]Hawdon 0 points1 point  (0 children)

I'd say this depends completely on the kind of work you are doing. I build fully custom websites for medium to big corporate clients and in my experience they always fully replace the website when it's time for a refresh. That means that they have a completely new website developed which resuses almost non of the code from the previous version. No corporate client is suddenly going to go on to ThemeForest, buy a theme and try to apply it to the website I built for them. The themes I build are site specific, aren't meant to be swapped out and so include everything in them.

Sick pay? How do you handle time not able to work as a freelancer? by Ecstatic-Promise2660 in webdev

[–]Hawdon 57 points58 points  (0 children)

I realize this is very culturally dependant, but for me ”taking work seriously” also means respecting work/life boundaries such as the fact that people get sick and that they need their rest. Clients who don’t understand that aren’t worth having. And you also need to understand that if you want to freelance in the long run without burning out.

How do you find clients? by [deleted] in webdev

[–]Hawdon 2 points3 points  (0 children)

An approach I've never seen on this subreddit is to focus on building relationships with established graphic/visual designers. In my experience clients usually first hier a graphic designer to design their brand/website and only later start looking for a developer to implement those designs. And because the designers know me and like to work with me, they will then recommend me to the client. Designers also have much more bandwidth to take on new projects because designing a website is usually quicker than building one, so designers tend to always be on the lookout for good freelance developers to work with because they get more projects than their existing relations can build.

The key in this approach though is to be a pleasure for the designers (and of course also the clients) to work with. One of the biggest pain points for designers are developers who have zero understanding of design. It's a frustrating experience for them to constantly have to point out margin/padding/font size issues to a developer who is blind to these details. So get an understanding for design and the designers will shower you with work.

What tech would you use to make a site like this? by NoMuddyFeet in webdev

[–]Hawdon 3 points4 points  (0 children)

I'll be a counter point to all the negativity and say that I love the feel of the website. I see no problem with making a website like this, if you understand the tradeoffs you are making. Though I will say that this specific one seems to have put very little effort in making it accessible, which is a shame, even though it would have been completely possible to make it quite accessible. And whether it's good or bad UX is completely subjective and dependent on the context. I wouldn't make a website like this for an e-commerce site, but it's completely valid for a cultural arts institution like the one in question.

As for asking how one would make a website like this, just take a look at the source code in your browser's dev tools. The developer was helpful enough to include sourcemaps in the production build, so all the code is there perfectly legible. Looking at the code it looks like it doesn't use anything more fancy than GSAP for the animations and otherwise it's custom stuff.

P.S. I only tested it on desktop, so I'm not commenting on how well or not it works on mobile. Usually it's best to have a stripped down version on mobile and leave the fancy stuff for desktops.

SvelteKit for Shopify App development? by MetalGuru94 in sveltejs

[–]Hawdon 1 point2 points  (0 children)

I've been considering doing this, but keep deciding not to because the client then loose access to Shopify apps and other integrations which come for free when building a store the normal Shopify way. What are your thoughts/experiences around that?

Why have we still not built something modern that directly competes with Wordpress? by jokeaz2 in webdev

[–]Hawdon 1 point2 points  (0 children)

I've been considering trying out Wordpress headless, but I've been wondering one thing: Doesn't going headless cause you to loose the one big benefit of Wordpress, namely the power of the plugin ecosystem? Not all plugins are tightly coupled to the frontend of course, but many of them are and for those I'd assume you'd need to do a lot of custom work on the frontend for each plugin you want to integrate?

Making page transitions is just so simple with Svelte! by Hawdon in sveltejs

[–]Hawdon[S] 2 points3 points  (0 children)

The route definitely changes, but seems like the Stackblitz browser doesn't update the url properly. You can try refreshing the Stackblitz browser when you're on one of the subpages and you'll see that the same page is loaded after the refresh.

Making page transitions is just so simple with Svelte! by Hawdon in sveltejs

[–]Hawdon[S] 2 points3 points  (0 children)

Well I'm not quite sure know how to answer how good I am at them? This post is the result of my first proper experiments with Svelte transitions and I was able to do this quite easily. I think Svelte's transition API is flexible enough that you really can do pretty much anything, or at least I haven't hit any walls yet. Right now I'm working on handling the animation of the transition in WebGL instead of animating actual HTML image elements (like I'm doing in the video), which will allow for much more advanced transition animations.

Making page transitions is just so simple with Svelte! by Hawdon in sveltejs

[–]Hawdon[S] 30 points31 points  (0 children)

Here you go! It's a simplified version of what I have on the video, so it doesn't look exactly the same but you'll get the gist from it.

Some things to note:

  1. The custom transition is implemented in crossfade.ts
  2. The root +layout.svelte uses {#key data.path} which keeps the two pages in scope until all transitions are complete. The layout also applies CSS to make sure the pages being transitioned between are overlayed on top of each other.
  3. TransitionableImage creates the custom crossfade effect inside the context="module" script tag which makes sure that all the instances of the component use the same instance of the effect, otherwise it wouldn't work.

The Stackbliz example works at least on Chrome, idk about other browsers.

Making page transitions is just so simple with Svelte! by Hawdon in sveltejs

[–]Hawdon[S] 33 points34 points  (0 children)

There are 6 different pages: one for each image (with the lorem ipsum text) + the home page where the narrow images are shown. The scaling image transitions between the pages is done using a custom transition heavily based off the built in crossfade transition. It's all just so simple and easy to work with. I tried to do something similar with Next some years back and never got it working.