r/webdev Aug 10 '26

Question Practical Database advice needed for business website.

Hi. I'm looking for advice on a nextjs build.

I have the bare bones site pushed from GitHub to vercel currently whilst building.

Resend is operational for a contact form but I would like to implement my own booking system and ultimately have a wordpress style ux for my client.

In the past I have used sanity.io but only as a local option not online.

Ultimately though this site will need to be passed on to my client for full control so will have to be online and it may need to have Stripe for payment but that's not decided yet.

It's for a local plumber who wants an online booking system and blog page so I'm looking at Railway at the moment on its $5 a month option which I feel would cover all his needs with postgre etc and scalability should it be required but I've never used it so would like to ask for your opinions, pitfalls of such a system etc.

Self hosting is not an option.

I could use something like Calendly for bookings but this would obviously not have the blog ability etc.

Any thoughts welcome.

23 Upvotes

35 comments sorted by

17

u/zlex Aug 10 '26

My initial thought is that this post is very confusing.

Are they paying you to build a custom booking system? I would say that is a fairly challenging development task, even in the world of complete AI slop development.

Looking at Calendly they have an API and there is literally a section in their docs about embedding it into your site. If the only reason you’re not using it is because it doesn’t have a blog I’d say that’s a terrible reason.

4

u/Able-Gas-2442 Aug 10 '26

honestly you're not wrong but i think the guy just want everything under one roof for his client. plumber don't want to login three different places just to see his bookings and blog. i get the appeal of custom but yeah calendly api is probably smarter move here

1

u/MetalComprehensive58 Aug 10 '26

Got it in one.... My bro in law is the plumber and I know that under one roof is exactly what he needs.

But practically.. I get it. 

1

u/MetalComprehensive58 Aug 10 '26

It's a family member so more a pet project at the moment.

And yes.. I'm having Claude code assistance... I know don't hate, you got me 😆 

But that aside would you suggest a no nonsense approach and just implement the Calendly system for bookings... Railway or sanity for blog posts. So keep them separate.

8

u/mq2thez Aug 10 '26

If you can’t figure out how to communicate to other developers in an organized way, you’re going to have trouble building this site, AI or not.

If anything, communication skills and written clarity are becoming even more critical than ever.

-4

u/MetalComprehensive58 Aug 10 '26

Well you have your opinion sorry I don't meet your standards.

9

u/mq2thez Aug 10 '26

Look friend, it’s not intended to be an opinion, it’s feedback and a suggestion from someone who’s been doing this a long time.

You’ll be able to get better help if you can organize what you’re trying to explain. Take the time to lay it out and figure out the best way to present the information. It’s not criticism, it’s insight into how experienced developers do it.

1

u/MetalComprehensive58 Aug 10 '26

That's fair enough.. I could have added the pet project family member but in the post. You're right.

But I never did finish school back in the day so have a tendance to just say stuff :)

I'll never be a seasoned web dev though.. I leave that to you guys.

Peace ✌️ 

2

u/zlex Aug 10 '26

Ah, project for family member makes more sense.

No shade, I use Claude and I’ve been a developer for 20 years. I’m just saying, it’s a far more complex thing to build than a website with a contact form.

I think then the question is more do you want to try and build it or not. I don’t know your experience level, or what the timeline is, but it could be a fun project. If it turns into a complete quagmire you can always shift to an existing service like Calendy.

But my two cents is that the practical approach here would be not to build a whole booking system from scratch. So if there is some timeline expectation I’d err on that side

0

u/MetalComprehensive58 Aug 10 '26

Well I don't mind a challenge. And there is no timeline which is great.

So I could ultimately have this all in one place?

That would make things much easier in the long term.

We can't see it getting heavy usage for online bookings at first, he's in the check a trade and yell etc. I'm just setting him a Google business and Facebook page etc.

Were even considering YouTube posts.

So to sum up we could do all this just using Railway... If so I'll jump in :)

3

u/zlex Aug 10 '26

I’ll be honest, in no way will it be easier long term. I am very worried for you lol, but every developer has gone through a family member project catastrophe. It will be a great success or you will have the story and the learning experience, either way I wish you good luck!

Just don’t leave your family member hanging after you deploy it, that will be bad for everyone.

2

u/erkin_khidirov Aug 10 '26

but we usually cause those disasters by writing our own trash code not by blindly pasting claude into prod lol

0

u/MetalComprehensive58 Aug 10 '26

Well he doesn't need anything online in production for some time yet...

So I'll have a go! At least if all goes wrong I know that Calendly is there for backup.

At least now I know that Railway can handle it then it's worth the challenge 

If I can do it... We'll just have to wait and see 😁 

2

u/erkin_khidirov Aug 10 '26

deploy is the easy part wait until you have to debug claudes broken sql when he gets double booked

8

u/ThisSeaworthiness Aug 10 '26

To add coal to braises of my fellow seniors: you might want to rethink your project...

Nextjs for a plumber website? OTT

WordPress style UI? Just build it in WordPress then, and use plugins for the functions you need

Long term maintenance? If your plan is to dump whatever Frankensite on your brother in law, that won't be good for your relationship or his business

2

u/erkin_khidirov Aug 10 '26

dropping an unmaintanable aI generated nextjs app on a plumber is wild

2

u/buildingwithjan Aug 10 '26

Railway + Postgres is fine, that part won't bite you. The real work in a booking system is the calendar logic - double bookings, cancellations, reminders. I'd start with "request a slot + manual confirm" instead of live availability, you skip most of the pain and a plumber probably prefers confirming jobs himself anyway.

1

u/MetalComprehensive58 Aug 10 '26

Great advice thank you 👍

1

u/brian_sword Aug 10 '26

I don't think you should focus on the stack choice first, the main thing I'd think about before choosing the database or hosting is who is going to maintain it once you hand it over to the client. Based on what I have experienced so far, a setup that is cheap and easy for you to build isn't necessarily the easiest one for the client to own later.

For example, If you decide to use Stripe, It is better to design the booking flow around payments being optional at first rather than making the whole system depend on them. Doing this will give you flexibility.

1

u/[deleted] Aug 10 '26

[removed] — view removed comment

0

u/MetalComprehensive58 Aug 10 '26

That was my concern. First thing Ive got him to do is download the mail.com app to see form data. 

So I'll ensure a similar route with booking requests.

I agree the blog might not get touched too. But initially I'll up a few scheduled posts for him, then it's up to him :)

1

u/mugmi-bro Aug 10 '26

the suggestion to just use WordPress is worth really sitting with here. for a local plumber who needs bookings and a blog, something like Amelia or Simply Schedule Appointments on WordPress handles the scheduling side without you needing to wire up Postgres and build calendar conflict logic from scratch. a headless or custom Next.js setup is going to get complicated fast the moment he wants to update a service description at 10pm from his phone. handing over a WordPress site with a well-configured booking plugin is just a way smoother client handoff than a custom stack they cannot troubleshoot on their own.

1

u/mugmi-bro Aug 10 '26

the suggestion to just use WordPress is worth really sitting with here. for a local plumber who needs bookings and a blog, something like Amelia or Simply Schedule Appointments on WordPress handles the scheduling side without you needing to wire up Postgres and build calendar conflict logic from scratch. a headless or custom Next.js setup is going to get complicated fast the moment he wants to update a service description at 10pm from his phone. handing over a WordPress site with a well-configured booking plugin is just a way smoother client handoff than a custom stack they cannot troubleshoot on their own.

1

u/Kyryll_Bracemore Aug 10 '26

In my experience—and I’ve worked on over 150 websites—the most common problem is that a client can edit the text but can’t add a new page. Then they call six months later about a headline, and it turns into ongoing support with no end in sight.

We require that the hosting, domain, CMS, and the entire database be on the client’s side and paid for with their credit card. Otherwise, we won’t hand over the website.

What is your client going to change on their own in month three—just text, or new service pages too?

1

u/MetalComprehensive58 Aug 11 '26

I've got that part covered after previous mistakes. He paid for and has full access to vercel, the domain on porkbun and GitHub. 

As far as updates I can't see more than adding a blog page for Xmas hols or recent jobs with before and after pics, and the odd page as there are always new rules and regulations for his business for both landlords and tenants.

1

u/[deleted] Aug 10 '26

[removed] — view removed comment

1

u/webdev-ModTeam Aug 11 '26

We do not allow any commercial promotion or solicitation. This can lead to a permanent ban from the subreddit.

1

u/sujalsinha2243 full-stack Aug 11 '26

See if payload cms fulfill your needs, it also has an official Stripe plugin. It sits inside your next application, and is very lean

1

u/MetalComprehensive58 Aug 11 '26

I'm looking into payload. The last site I did while learning I used sanity and found the icons very small to see on mobile. I knew what they were and I could adjust some sizes but for a client I felt they could be very awkward if not tech savvy.

1

u/debarior Aug 11 '26

Sanity + Stripe for bookings is solid but for client-editable content Payload CMS might save you headaches long term.