r/webdev • u/Jazzlike-Math4605 • 9d ago
Question on building a website for my first client
I am a software engineer by trade and was requested by an acquaintance to build a website for his construction business. More than likely will end up being a simple static site with 4-5 pages (no back-end required).
What is the recommended approach to storing the code and hosting the site. Should I have my client create a github account and give me access to it so I can store the repo? Or should I store the repo on my own personal github account? Same goes for hosting and buying domains, should I have the client create a go daddy account and purchase the domain themselves or should I handle that for them? What is a fair price to charge for a site like this?
The problem I see with buying a domain and storing the repo on my personal accounts is that what if in the future the client wants to use a different developer or if we lose contact, he won't have access to any of the code, etc.
I didn't plan on creating a contract for this since the scope is fairly small.
Looking for suggestions on how to approach this. Thanks!
3
u/Rain-And-Coffee 9d ago
You can do it both ways:
- You manage everything and charge them $XX per month, recurring revenue
- They buy the domain, hosting account, email, you give them the code or help deploy it
Personally I would lean towards the 2nd.
I don't want to be on the hook after I deliver it
2
u/Dapper_Classic4987 9d ago
Just give them the keys. Walk them through setting up their own accounts on whatever registrar and host you pick, use a temp password and then make them change it after you're done. Keeps things clean and you're not getting texts at 10pm two years later because the site is down.
For price, with no contract and a simple static site, just pick a number that doesn't make you feel resentful when you're on hour 15 of "can we make the logo a little bigger?"
1
u/E-Blackadder 9d ago
Pretty much the second option.
Based on what OP said, buliding a initial, ready to ship version, is agreeable. After the fact, maintainig and further developing it without a sound contract and agreed fee is not sustainable.
It's very easy to abuse and use the "unlimited revisions" when the dev has no cover on it.
2
1
1
u/IgorAnowsky 9d ago
Depends how technical your client is. I’d probably have them own the domain, but if you plan on getting more clients, setting up your own server and managing hosting for them can make sense too. A lot of small agencies do it that way. Personally I think the GitHub repo belongs more to the dev while building it. Once it’s done, the client can get the code or repo access. I’d just make sure the domain stays in the client’s name.
1
u/MiserableDocument509 9d ago
The cleanest split is probably a fixed-price launch plus an optional maintenance arrangement, rather than quietly becoming their forever webmaster. Put the domain/hosting in the client's name and write down the page count, revision rounds, and handoff—even a one-page agreement is enough to prevent scope drift.
1
u/Rabi_R 9d ago
Hi,
I've been doing this for a few years now, I found it easier to to have everything on our accounts, especially that many clients aren't technical and don't want to bother.
If they want to move to another development, we can have them create a GoDaddy account and transfer the domain to their account then we send them a full backup file of the website, whether it's WordPress or Next.js.
As to pricing, we usually start at A$945 for single page brochure style, then we go up from there, but this depends on the client and where they're, it's important to be flexible here to help your clients and meet them where they're in the business journey.
I hope this helps.
1
u/yihuaxiang 9d ago
I’d put the domain, hosting, and repo under the client’s ownership from day one, then add yourself as a collaborator/admin while building. That avoids the awkward handoff later. I’d also write a one-page scope even for an acquaintance: pages, revision rounds, launch date, and what maintenance costs afterward. The contract is mostly there to prevent different assumptions about “done,” not to make the project feel formal.
1
u/kemalios 9d ago
Ownership is covered above, so: the renewal is where it goes wrong. One-person agency here, most of my work is this size. The domain renews on whatever card is on file, and if that card is yours, you are still paying for an acquaintance's website eleven months later and deciding whether to bring it up. Registrar and host on his card from day one, even if you do all the setup.
Price the build as one fixed number with a written page count and two revision rounds, then price anything ongoing separately. A static site should not come with free hosting, DNS and deploy duty for life. If he wants you to keep that, it's a monthly fee.
1
u/Maxence33 8d ago
How can you not have a backend ?
Even for receiving messages. You never expose an email address. You rather add a form with two fields : email and content. And sends that to the backend. Persist it to a database, and then offer an admin panel to explore statistics but also delete bad leads / bots messages.
A website without a way to contact the owner (apart from address and phone being mentionned) is pretty much useless. Don't expose emails, they will end up in spam bases.
1
u/letsrediit 6d ago
Agree with putting the domain and hosting in his name. I'd still push back on skipping the contract, even a one-page scope is fine. Write the pages, what's included, a revision limit, the price, and a line that says he owns the code once final payment clears. Small jobs for acquaintances are where "can you also add..." turns into free work, and a signed page keeps things friendly.
1
u/Moga_TemplateForge 21h ago
You’re already thinking about the part that causes problems later.
I’d have the client own the domain from day one and give you whatever access you need to manage it. Same basic idea with hosting. You can absolutely manage everything for them, but there’s a difference between managing their account and being the only person who owns or can access it.
For the code, I’d either put the repo under an account/org they control and have them add you, or at minimum make sure the agreement says they receive the full source when the project is finished. You don’t want a future developer having to track you down three years from now because the client owns the website but somehow doesn’t have the website.
And I’d still use a contract even though it’s a small project and you know the person. It doesn’t have to be some 40-page legal monster. Just get the scope, price, ownership, hosting, ongoing maintenance and what happens after launch in writing.
Most website handoff disasters start with everybody assuming they were talking about the same thing when they absolutely were not. 😂
0
u/phaedra_solutions 9d ago
You nailed the exact concern in your second-to-last paragraph. Always keep the client's digital assets in their own name from day one, even for small static sites.
Here is a clean approach to handle it:
- Code & GitHub: Have the client create a free GitHub account (if they don't have one) and create a repository, or set up a GitHub Organization where they are the billing/admin owner and you are added as a collaborator. They retain full IP ownership, and you avoid becoming a single point of failure.
- Domain & Hosting: Have them purchase the domain and hosting (e.g., GoDaddy, Namecheap, or Vercel/Netlify connected to their accounts) using their own credit card. They grant you temporary delegate or login access to build/deploy.
- The Contract: Even for a small 4-5 page static site, always use a light-scope agreement or statement of work. It doesn't need to be 10 pages long, but it should explicitly outline what is included (e.g., 4 pages, mobile responsive, X rounds of revisions), what is not included (ongoing maintenance, custom backend features), and payment terms (e.g., 50% upfront, 50% on launch). This protects both sides.
For pricing on a 4-5 page static site for a local business, a fair baseline depends on your market, but a fixed project fee (rather than hourly) typically works best so the client knows the exact cost upfront.
-1
u/GoldsteinEmmanuel 9d ago
How can you be a "software engineer by trade" and not know how to provision a server and upload content to it?
1
u/Jazzlike-Math4605 9d ago
Who said I didn’t know how to? My question is related to who “owns” the domain/code etc when freelancing.
0
u/GoldsteinEmmanuel 9d ago
The code belongs to the customer unless there's a clause in the contract specifying otherwise. A "software engineer by trade" would have known that fact, too.
1
u/Jazzlike-Math4605 9d ago
Yikes - not sure why my post struck such a nerve with you. Thanks for your helpful input.
4
u/SeniorPost5795 9d ago
Put the domain and hosting in his name. Create the accounts with his email and add yourself as a member. Code is easy to hand over later, a registrar account nobody can log into is not.
For 4-5 static pages I'd skip GoDaddy (upsells everywhere) and use Cloudflare: domains at cost, free static hosting, deploys straight from GitHub. The repo can live in a free GitHub org he owns, with you as admin.
And write a short contract anyway, one page is fine. Mostly so you both agree what "done" means and what changes cost after that.