7
25 Comments

How to choose a tech stack for my web application? Cashback.

A cashback website is a type of reward website that pays its members a percentage of money earned when they purchase goods and services via its affiliate links.

I'm thinking to start my own website. Does anyone has an idea about technology stack for this kid of websites?

To which extent do I actually need "a backend"?

How often will you data change? At the beginning it will be changing often, every hour/day, depending on customers and new clients.

How many objects (links) there will be typically? Like on any cashback website I'm assuming between 100-200 and constantly changing depending on new or expired contracts.

How complex is your domain model (e.g. whether each user has their own links or are they shared)? Shared links for all users.

Which parts of the process has to be automated? Transaction tracking(if transaction has been successful) , affiliate api links, payments.

Far the hardest problem appears to be figuring out payments for the users. It will be handled manually at the beginning.

So far it looks like Django for backend.

Looking forward for your suggestions.

Thank you.

  1. 32

    The one you know how to code in.

    1. 2

      I can't possibly agree even more. Just do what works for you. If you grow, any developer hired should be talented enough to learn the language if it's obscure.

    2. 2

      Sounds like a plan.

  2. 2

    Hi Lopas!

    If you're promoting other companies' products, you should see if they have prebuilt affiliate links. That's what I do on startyourblog.co. This means that you would only need to build a simple WordPress site (or static site, or Squarespace, or whatever you're comfortable with) instead of spending months building a whole backend system. You can use WordPress plugins if you need it to be a membership site that lets people log in.

    However, if you need to make a custom platform, I'd recommend building the backend in a language you already know how to code in. JavaScript = Node, Ruby = Rails, PHP = Laravel.

    For the frontend, choose something like React or Vue. I've done a lot of catalogue building with React, it would be my first choice for a project like this. Componentization is your friend.

    If you are new to all of this, take a look at the simple stack in Michael's comment and go from there. You might be able to follow along with some YouTube tutorials to get started.

    1. 1

      Mark, I have a question: do you track somehow completed referral transactions on your website?

      https://www.siteground.co.uk/domain_names.php?afcode=8897ea6ea230657acb991f5fc4212521&campaign=domain

      As I can see that you are passing your afcode to the website.

      1. 1

        Siteground tracks the referrals for me. I signed up for their affiliate program, they gave me those links, and I put them on my website. Now I can log into my affiliate dashboard on their site to track how many conversions have been made, and they send me a payment depending on how many customers I've sent.

        A lot of sites have affiliate programs that they manage by themselves or through a third party service like ShareASale. Maybe you could look into one of those.

    2. 1

      Thank you Mark! I appreciate your help.

      The problem is that I need some backend system anyway to track completed transactions (one of the main problems in my understanding). In the future, aiming for creation of my own affiliate partnership since it's not developed in my country (region)...

      To begin with, simple operating website with small income will be my first step.

  3. 2

    Choose a framework that you know, in order to be fast and efficient. Alternatively choose a framework that you would like to learn in order to accelerate development of future MVPs.

    For the backend I would strongly recommend Django. One of the main benefits I found for me was that it comes in with an admin panel.

    1. 1

      Thank you Contanstin, I definitely will look into Django.

  4. 2

    Consider Laravel Spark. Perfect start for any project.

    1. 2

      Need to research on Laravel, thank you

  5. 2

    It depends what you're comfortable with, here's some stacks you can do:

    Front End:

    • Typescript
    • React/Vue
    • Vanilla JS

    Backend:

    • PHP (something like Laravel, Codeigniter, Luminance, etc)
    • Python (Django or Flask likely)
    • Go
    • NodeJS

    I'd recommend for a simple statck:

    • PHP with a framework like the ones listed above

    • Vue on the frontend

    • Postgresql for database

    • Redis for caching

    1. 1

      Thank you Michael, very structured answer! I can see some of them already mentioned before. They sound more tempting.

  6. 1

    No one has suggested the Microsoft stack?

    • Microsoft SQL Server
    • ASP.NET
    • C#
    • HTML/CSS/JavaScript
    • TypeScript
  7. 1

    Go with what you know. you customers don't care about your stake

  8. 1

    All good thoughts in the comments! I'll throw in a bit of promotion for what we've been building out, as it's targeting making building a product like the one you're describing as easy as possible: https://base.run/

    Here's a few of the benefits:

    • You get a spreadsheet like view of your database that you can access from the web to setup your Schema etc, edit data, and do things manually until you automate them (e.g. you mentioned transaction tracking, payments, api links etc.) - this is especially effective if you're collaborating with some non-technical peeps helping on the manual tasks and don't want to have to build a full admin panel.
    • You get a really easy to use SDK: https://base.run/docs/index.html that gives you easy ways to work with your data & build a compelling front-end
    • You can easily invite other users to your Bases to collaborate.
    • You have built in user authentication: login, signup, forgot-password etc. as well as a supercharged Users table built int.
    • You have ability to trigger functions/endpoints when different events happen in your database - and you have a full coding environment to easily write those hosted functions in.
    • Our team is around to support, and help you write things you get stuck on to make sure you have a good experience :)

    Might be interesting to check out - I'm around if you want to chat more about it at : nicolae@clay.run

    Seems like an interesting project! Hope the building goes smoothly 🙌

  9. 1

    I would suggest looking into https://firebase.google.com. It's a BaaS (back-end as a service). It basically gives you everything you need so that you can just focus on writing your app. It's free up to a certain amount which is enough to you some growth and sales for paying.

    Also it has a ton of hooks for analytics an engagement which you can learn and add as your company grows.

    1. 1

      Hi @agentsmith ,

      I'm aware of firebase. Thank you. Probably will choose Postgresql my database

  10. 1

    A tech stack should reflect your needs and future plans.

    (Although for a technical founder the most familiar stack may be the right answer, as others correctly pointed out in this thread)

    Before evaluating the merits of Django vs RoR or Python vs PHP for the backend, it would be wise to understand whether, and to which extent do you actually need "a backend". Likewise, there is no point to debate Vue.js vs React.js if all you need is a couple of HTML pages with a bit of eye candy.

    How often will you data change? How many objects (links) there will be typically? How complex is your domain model (e.g. whether each user has their own links or are they shared)? Which parts of the process has to be automated? These kind of questions need to be answered before choosing the tech stack.

    From the short description you provided, by far the hardest problem appears to be figuring out payments for the users. It may very well dictate the architecture for the whole thing.

    1. 1

      Hi Oleksiy,

      I can see the gaps in my question thanks for pointing this out!

      I'm planning to create a website with automated transaction tracking. Which means I need a system that will track if a particular person clicked on a website (easy part). After redirection, I suppose to pass the ID of the person to my partner (shop) and after a customer completes a successful transaction it then would return to me.

      In regards to data change, like on the following website https://www.quidco.com/, it has quite a big amount of affiliate links. I'm still wondering if it's generated automatically/manually.

      Payments to users is a tricky part. I agree. In addition, they are confirmed and waiting amounts. This can be done manually at the beginning. In the future, it's definitely needs to be automated.

      Does it answer your questions?

  11. 1

    Just about any stack will do. Just pick the one that you're most comfortable with. And if you're adept at all of them, then pick the one that makes your product more scalable and effecient.

    1. 1

      Unfortunately, I don't have much experience in anything apart Java. I'm seeking community support to see if anyone is familiar with this business already.

      1. 1

        You can also develop web applications in Java. Try for example https://wicket.apache.org/

      2. 1

        You and I are in a very similar boat. I am sure you've been already bombarded with suggestions.

        But let me recommend the MeteorJS. A framework for NodeJS.
        it allows you to create prototypes rather quickly. And there is a fantastic course on Udemy that teaches you everything you need to know about it.

        https://www.udemy.com/meteor-react/learn/v4/overview

        1. 1

          I'm open to as many suggestions as possible ! Thank you Justin!