Git Product home page Git Product logo

white-label's Introduction

White Label

https://github.com/dimitrisnl/white-label/blob/main/content/dashboard.png

This is a "white-label" project I wanted to create to test various ideas. It's a full-stack Typescript app, powered by Remix.


Technologies

  • Remix
  • PNPM
  • Effect-TS
  • RadixUI
  • Zapatos

As for the rest, I'll be using PostgreSQL, with the idea of dockerizing it all and deploying on Digital Ocean. Postmark was also very reliable in the past for me, so this would be my SMTP service of choice. For the dev environment, I use Mailtrap.

As for the design approach, I don't use any specific (like DDD), although I try to make it as flexible as possible.

Goals & Features

Teams

Users can belong to many organizations and can have different roles in each. Here's a great article about that decision, called Teams should be an MVP feature!. In short, even the most trivial SASS app will find a need down the road. I worked on a start-up years ago, that wanted to introduce Teams (and Billing) after years of operation and it was super painful. It's a relatively small change early on that can eliminate a ton of complexity in the future.

Membership Invitations

Essential when using Teams. Send invites, assign roles, accept, revoke, decline, etc.

Multi-tenancy

That's a big one. I have no idea how to do this, so seems like the ideal task to pick up.

Billing

I would like to work with Paddle on this one. A Team can have different plans, with different limits each.

2FA & PassKeys

2FA is standard, and Passkeys are the new hotness. Some resources on them.

... other stuff

More ideas will be added in the GitHub Projects tab, where I'll be tracking everything.

Testing

  • The Back-end will have tests for each use-case with Vitest
  • The Front-end will test everything with React-testing-library
  • There will be a 3rd package, called e2e which will test both

License

MIT

white-label's People

Contributors

dimitrisnl avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

white-label's Issues

Upgrade to Adonis@v6 or completely drop it

I'm a bit conflicted. Adonis is fantastic, but I have two issues:

  1. I keep replacing its default, out-of-the-box tools. (Validator, ORM), so I'm debating if it's worth keeping it around. The alternative would be to pull this functionality in Remix
  2. Sharing types is a pain. I'm working on a api-contract package, so that I can share some types, but it feels odd. If I was using Graphql, then I could have type-generation. There's also the OpenAPI approach, but I don't like it.

A new version will land soon, so I have to either upgrade and commit or move ahead and remove it.

Dockerize it all

  • Introduce Dockerfile for deployment
  • Introduce docker-compose.yml for local develoment

Drop Adonis Models & ORM

  • Split logic to Domain (business) & Entity (persistence)
  • Use Ports and Adapters instead of direct ORM use

Set-up mailer

  • Log on dev
  • Mock on tests
  • Pass through effect context

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.