Got my first freelance developer gig! Now I have no idea what to charge

Tentatively, I have a gig lined up working with a small business to create an employee portal for them. This is exactly what I’ve hoped for and I’m really excited! The only problem: figuring out how to charge them. (And a related problem: figuring out how to estimate how long it’ll take. I have no friggin’ idea!)

If I go with an hourly rate, but don’t have a time estimate, I’m essentially asking them to commit to an unlimited mystery amount of money. If I go with a fixed rate for the project, then… I guess I have to figure out what sort of fixed rate makes sense. (I genuinely have no idea how long anything will take-- not even a ballpark.)

I have no idea how best to navigate this. What would you do?

I have never done a developer job, but I can tell you something about my expierience starting gigs in other fields. I think you should think about what the delivered product is first.
Will it be something only you understand or will you produce it a way that other developers can reproduce / understand what you have been doing.
I think this is essential, since if you just create your projects (maybe not the best product, since its your first), the customer will be tied to you forever. If you create the portal in a professional manner, they could choose to go to another developer with the work you did so far or the finished product. This could eliminate some pressure.

When it comes to charging, I would recommend laying out milestones and give a price estimate for each milestone. Then i would complete each milestone in a manner, that others cold work from there. After you completed a milestone you can send an invoice, and the customer can decide if he wants to continue working with you. This is common practice in various fields. This also shows a professional attitude, since you do not want to be the developer from somewhere oversea, that just puts together some product, that no one understands… Like it often happens on fiverr.

What I noticed for me is that I usually have pretty much exactly double the time I would initially estimate. For me this is usually quite reliant.
If you’re new to the field you working in, I would decide if you want to create a fixed rate, knowing that this might not going to be a lucrative endeavour. Or you charge by the hour, but lower your rate to a degree, that you do not feel guilty for having extra long, since you do not have experience. (maybe you cold post the milestones here, so that more expierienced developers can comment your time/ cost estimate)

But to wrap the whole thing up: This is your first gig. I would not recommend having your focus on money, but on marketing. If you do this project well, with a reasonable price, you will have a happy customer, which will refer you to others or maybe your customer will be a reference for you. Because this is a B2B job, I would stress this, because the might have a large network. When I did my first gig, I just broke even, but I have learned so much during the project, which is worth more than any profit.