
Ask HN: How should I build a simple marketplace website today? - rsweeney21
I think I&#x27;m over-engineering so I could use a second opinion. Let&#x27;s assume that nothing off the shelf met your needs, so you had to build the website from scratch, what programming language, frameworks, databases, hosting platform, etc would you use to build your application.<p>Requirements:<p>* 500 daily active users<p>* 1,000 product listings<p>* Very low maintenance<p>Features<p>* Browse items for sale<p>* Search, filter products<p>* In app messaging (Buyers can message sellers, sellers can respond)<p>* CRUD interface for sellers listing products<p>* User authentication<p>It feels stupid asking the question, but it seems like none of the &quot;modern&quot; web frameworks fit such a simple use case.
======
Rjevski
> it seems like none of the "modern" web frameworks fit such a simple use case

Why is that? To me it looks like Django or Ruby On Rails would fit the bill
perfectly.

The only things you'd need to do by yourself is the searching & filtering
(possibly integrate with ElasticSearch since conventional databases aren't
really good at search, especially not full-text search where you want a
certain fuzziness to account for typos).

Authentication comes for free thanks to the framework, and Django even gives
you the admin-side for free so you have a basic CRUD interface for
adding/deleting products.

~~~
tnolet
For these low numbers, Postgres will do full text search just fine. So as
mentioned, just use Rails or Django with Postgres.

~~~
Rjevski
Is it fuzzy though? My concern was more about ES being able to handle
"approximate" matches; where as I assume Postgres would be limited to regex-
like matches.

~~~
hazz99
Postgres can definitely do fuzzy matches!

[0] [https://www.rdegges.com/2013/easy-fuzzy-text-searching-
with-...](https://www.rdegges.com/2013/easy-fuzzy-text-searching-with-
postgresql/)

------
siquick
No need to build this - Sharetribe or Arcadier provide this functionality as a
SaaS product and can be customised down the line.

[https://www.arcadier.com](https://www.arcadier.com)

[https://www.sharetribe.com](https://www.sharetribe.com)

------
tyingq
If the point is the marketplace itself, rather than the software, I would
start with something that already has marketplace functionality.

I'm sure there are others, but Prestashop has a user-contributed marketplace
extension that's relatively cheap, and comes with the source code. Prestashop
itself is open source. It's all php, but I'd argue that might be a plus if
you're going to iterate quickly on look/feel/functionality.

That way, you could see how well the concept works before investing any time
rewriting it to fit your needs.

Also, see Stripe connect as a way to get your "cut" from marketplace sales.
It's supported by the module mentioned above: [https://stripe.com/connect/use-
cases](https://stripe.com/connect/use-cases)

------
namaljayathunga
I used Laravel PHP framework to build App from scratch quickly. Also used
Linode VPS service to host my App. You can choose that fit to you by reading
this link.

[https://joshtronic.com/2018/08/19/vps-showdown-
august-2018-d...](https://joshtronic.com/2018/08/19/vps-showdown-
august-2018-digitalocean-linode-vultr/)

------
nobody271
I'd just write it in regular JavaScript. The time you spend learning x
framework can be used to write the 5% of it's features you will actually use.

People invoke framework names like they are casting +100 intellect buffs on
themselves but you just don't need them. Be a crazy person and make a webpage
without any frameworks. Come to the dark side.

------
alan_wade
Wes Bos has recently released Advanced React course. It's really good, and it
walks you through building a store you're describing(minus messagig) with
Node, React, and GraphQL.

If I had do keep it REALLY simple, I'd just make use Django or Node/Express
with minimal javascript.

------
sharemywin
you could use bubble.is or airtable with jotforms or something like that if
you wanted do it with out code. Otherwise use anything. I would use what ever
your most familiar with. or something you want to learn.

