Hey HN,<p>I would like to present you my first full stack web app. A side project which took me 1.5 years of great effort to complete, for the sole purpose to upgrade my skills on many contexts outside of my daily job.<p>It's in greek language but if that bothers you, you can translate it to your language using your browser functionality [0]<p>I would really appreciate to hear feedback from you. Reading HN all these years, really altered my mindset which affected many design choices which I had to make.<p>----<p>Intro:<p>Greek Deals is a greek community where users can find and share -legit- deals & offers across every commerce sector eg from amazon online deals to local neighborhood market deals. To compel users to find & share deals, a point system has been made. When user creates a deal and depending of how complete it is (description, image, duration etc) he earns the analogous points. Users can also vote for deals. Votes have exponential effect to points. Users can redeem their points (WIP) for a variety of rewards (vouchers, netflix, services etc).<p>Tech stack:<p>* Front End: Next.js, React.js, Typescript<p>* Admin Dashboard: React.js, Typescript, Electron<p>* Backend: Flask, Python, a bit D, Postgres, Redis, Celery, Docker / compose<p>Key Features:<p>* Performant fuzzy autocomplete search with latin character support (greeklish), stemming, weights etc<p>* Deal faceted search<p>* Real time, daily and weekly deal alerts based on user's choices<p>* OWASP practices<p>* Dependencies to minimum<p>* No 3rd party UI frameworks, every React component is custom (except Mapbox).<p>* Automatic image conversion to WEBP, fallback to JPG for unsupported browsers<p>* Infinite scrolling with the ability to restore scroll position<p>* Took a good dive to Postgres. I leveraged many of its goodies, like geo queries, full / fuzzy text search, materialized views, CTE, functions etc<p>* Dynamic banner creation for og:graph by visiting a HTTP endpoint, suitable for social media use. That resulted in a decent increase of impressions & engagements through out our social channels. example [1]<p>Flutter app for iOS and Android is WIP<p>LOCs: ~30K<p>Monthly budget: $75 (2xDO droplets, DO managed db, s3, mapbox, rsync.net)<p>[0] unfortunately using the translate.google.com proxy breaks JS and the sidebar on desktop monitors won't appear. Using the in-place translation through the context menu works normally.<p>[1] <a href="https://api.greekdeals.gr/v1/social/images/deals/XobXd4D" rel="nofollow">https://api.greekdeals.gr/v1/social/images/deals/XobXd4D</a><p>edit: syntax & formatting