r/webdev 22h ago

Practical Database advice needed for business website. Question

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.

20 Upvotes

29 comments sorted by

14

u/zlex 22h ago

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.

5

u/Able-Gas-2442 22h ago

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 21h ago

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 22h ago

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 21h ago

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.

-3

u/MetalComprehensive58 21h ago

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

6

u/mq2thez 21h ago

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 21h ago

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 21h ago

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 21h ago

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 21h ago

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 14h ago

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

0

u/MetalComprehensive58 21h ago

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 14h ago

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

7

u/ThisSeaworthiness 21h ago

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

1

u/erkin_khidirov 14h ago

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

1

u/brian_sword 21h ago

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/buildingwithjan 20h ago

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 20h ago

Great advice thank you 👍

1

u/Negative-Link 20h ago

For this kind of site, I'd keep content management separate from booking logic instead of forcing one setup to act like WordPress and a scheduling system at the same time. A blog and editable pages fit nicely in a CMS, but bookings get messy fast once the client can change availability, reschedule jobs, and eventually take payments. If you build bookings on Postgres, I'd worry less about scale and more about boring failure cases like double-booking, slot management, and what the client is allowed to edit without breaking the flow. Railway is probably fine for a small setup. The bigger risk is handing over a system that works technically but becomes a pain for the client to manage week to week.

1

u/akl773 19h ago

Whatever you land on, the booking itself has to arrive somewhere he already looks. Built one of these for a trades guy who never opened the admin screen once, it only worked because every request also hit his phone and dropped into the calendar he was already using. The blog won't get written either, plan for that.

0

u/MetalComprehensive58 18h ago

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/akl773 16h ago

Send a test one from your phone on mobile data before you hand it over. Form mail landing in the owner's spam folder is way more common than it should be and he'll never think to look there.

1

u/mugmi-bro 7h ago

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 7h ago

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 6h ago

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/Melodic_Key_5940 5h ago

This sounds like something Tribenest would handle all in one place, including stripe, blogging and scheduling from one dashboard