Git Product home page Git Product logo

basestack's Introduction

Basestack Pattern Background

Basestack Platform

Basestack is an open-source stack designed specifically for developers and startups. It offers a suite of tools, including Feature Flags, with additional tools such as Feedback, Forms, and more on the horizon. Our goal is to empower you in building great products.

Tools

  • โ›ณ Feature Flags (Beta) Docs | Website
  • ๐Ÿ“„ Forms (Planned)
  • ๐Ÿ’ฌ Feedback (Planned)

Getting started with Feature Flags

Basestack is a self-hosting platform that provides an effortless method to host your very own Feature Flags management platform. By leveraging services like Vercel โ†—, any developer, whether an indie or startup, gains full control over their features and data. Ultimately, the platform is housed in your account, under your management, giving you complete control over your data.

  • Quick Start with the following Guide.

Basestack Feature Flags Demo

Help & Support

If you need assistance with anything, whether it's a new feature, a bug, a guide, or if you'd like to contribute feedback, don't hesitate to open a discussion.

Deployment & Self-hosting

Want to self-host Basestack Tools on your server? Explore the self-hosting installation instructions for detailed guidance.

How to Contribute

First and foremost, thank you for dedicating your time to enhance the platform. We warmly welcome all contributions. To get started, please review the Contribute guidelines. We appreciate your support in making our platform even better!

License

Basestack is an open-source project licensed under the GNU Affero General Public License Version 3 (AGPLv3). For more information about the license and how to comply with its requirements, please refer to here.

basestack's People

Contributors

amaralflavio avatar vacom avatar

Stargazers

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

Watchers

 avatar  avatar

basestack's Issues

Project Settings: Create, Edit or Delete an environment

The user should be able to create, edit or delete environments

Create new Environment

  • name/key is required and has to be unique without spaces only "-" or "_"

Delete a environment

  • The user has to confirm this action, this will delete all the flags associated

API: /History Endpoint

The /history endpoint should do the following

POST /history

GET /history

Gets all the history by project id or by flag id

API: /Environments Endpoint

The /environments endpoint should do the following

POST /environments

Creates a new environment with the following body:

  • id
  • name
  • slug
  • projectId

GET /environments

Gets all the environments list by project id

PUT /environments/:id

Updates an environment by id with following body:

  • name

DELETE /environments/:id

Delete an environment by Id

API: Users Endpoints

Global Endpoints:

GET /users?name=john

  • Should get all users based on a search by email or name

Project based endpoints:

GET /projects/:id/users

  • Should get all the users for that project

API: /Flags Endpoint

The /flags endpoint should do the following

POST /flags

Creates a new flag with the following body:

  • id
  • name
  • slug
  • envId

GET /flags

Gets all the flags list by env id

PUT /flags/:id

Updates an flag by id with following body:

  • name

DELETE /flags/:id

Delete an flag by Id

Navigation: Create a new project

User should be able to create new or select project from the dropdown on the main navigation

  • Creating a new project generates the basic envs (Dev, Staging and Prod)

Validations:

  • the field name/key is required and is unique

API: /Projects Endpoint

The /projects endpoint should do the following

POST /projects

Creates a new project with the following body:

  • id
  • name
  • slug

GET /projects

Gets all the projects list

GET /projects/:id

Gets the project by Id

PUT /projects/:id

Updates a project by id with following body:

  • name

DELETE /projects/:id

Delete a project by Id

UI: Create a Confirm Dialog

Create a confirmation dialog, to use anywhere in the app to show to the user to confirm any sensitive action.

The dialog should allow

  • Title
  • Description
  • 2 Buttons (Confirm, Cancel)
    • should allow to change the text on both and have variations example danger

Flags Page: Create, Delete & Update feature flag

The user should be able to create a new feature flag

  • Create based on a project
  • Create based on environment
  • Toggle off by default
  • the name/key has to be unique with no spaces, only "_" or "-" (maybe a name generator)
  • the description field is optional
  • user can add a payload aka remove flag

Validations:

  • Input name/key is required
  • Duplicate for all existing envs

RTK Query: Set History on Flag, Project and Env Queries

Projects

Every time a user Creates, Updates in the success response needs to invoke the Create History endpoint and save the current project payload information

Note: Deleting a project deletes everything

Environments

Every time a user Creates, Updates or Deletes in the success response needs to invoke the Create History endpoint and save the current environment payload information

Flags

Every time a user Creates, Updates or Deletes in the success response needs to invoke the Create History endpoint and save the current flag payload information

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.