Fedeorlandau / ring-1

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Ring

The accelerator to speed-up your web development. Ring is an opinionated framework built with React and Next.js which let you focus on delivering value to your customers.

Architecture

  • Software development focused on sections.
  • Each section is independent from any other section.
  • High scalability, architecture designed to support any number of sections. Following the separations of concerns: markup (HTML), styling (CSS), logic (JavaScript) and data.
  • Each section is reflected on each layer of Ring:
    • Ring UI: Headless UI
    • Ring CMS: Integration between the CMS and Ring UI.
    • Ring Commerce: Integration between the Commerce service and Ring UI.
    • Ring Contracts: Contracts between the APIs and the Front-end.
  • Monorepo architecture with Turborepo to have an productive developer experience.

Libraries

  • Ring UI: Headless UI built with React and Tailwind CSS:

  • Ring CMS: Integration of Ring UI and Ring Storefront with a selection of CMS

    • Contentful:
      • Data modeling to work with Ring UI.
      • Import/Export content models and content.
      • Generated API types.
    • Sitecore:
      • Data modeling to work with Ring UI.
  • Ring Commerce

    • Commercetools
      • Data modeling to work with Ring UI.
    • Swell
      • Data modeling to work with Ring UI.

Applications

Configs

Shared configuratino files to ensure consistency between all the applications and libraries.

  • Shared TypeScript and Jest configuration.
  • Shared ESLint configurator with an extensive set of plugins to ensure high code quality.
  • Semantic release for each application or library with git tags.

DevOps

Continuous integration and continuous delivery with GitHub actions:

  • Workflows to deploy the applications/libraries.
  • Checks defined to guarantee a stable software:
    • Build: Build the application and libraries, so they work as expected.
    • Tests: Run unit and integration tests to deliver the software with confidence.
    • ESLint: Ensure best and consistent practices accross the code.
    • TypeScript: run type checks to ensure the consistency of the code and caught defects early enough.
  • Run the checks before release.
  • Run the checks before deployment.
  • Run the checks to block the merge of pull requests.
  • Generate releases based on Conventional Commits with Semantic Release.
  • Check Pull Requests test coverage, and block them if they are below the defined threshold.
  • Check Pull Requests title, as the titles are used to generate the releases.
  • Dependabot to generate pull requests which update the dependencies, including auto approval and auto merge jobs for a full automatic setup.
  • Auto attach a size label to each Pull Request, to encourage small Pull Requests.

Docs

About


Languages

Language:TypeScript 85.5%Language:JavaScript 12.0%Language:Shell 1.2%Language:Dockerfile 1.1%Language:CSS 0.1%