Makeless - SaaS Framework - TypeScript & Vue.js Implementation

Makeless - SaaS Framework - TypeScript & Vue.js Implementation

Makeless - SaaS Framework - TypeScript & Vue.js Implementation

Makeless

Makeless - SaaS Framework - TypeScript & Vue.js Implementation

  • Based on TypeScript, Vue.js & Bootstrap
  • Concurrency safe & scalable
  • Super clean and small
  • Fully customizable and configurable
  • Multilingual
  • State of the art Authentication with JWT HttpOnly Cookies
  • User management
  • Team management
  • Token management for users and teams
  • Realtime events
  • Subscriptions and Per-Seat Payments out of the box (coming soon)

License

Currently there is no license! We are working on this

  • Will be free to use for personal or non profit organizations
  • Will be non free for commercial use
  • Will include the commons clause license
  • Every contributor will get unlimited commercial licenses

Preview

logo

Backend

Demo

Usage

main.ts

import Makeless from '@makeless/makeless-ui/src/makeless';

// packages
import Config from "@makeless/makeless-ui/src/packages/config/basic/config";
import Router from "@makeless/makeless-ui/src/packages/router/basic/router";
import Axios from "@makeless/makeless-ui/src/packages/http/axios/axios";
import I18n from "@makeless/makeless-ui/src/packages/i18n/basic/i18n";
import LocalStorage from "@makeless/makeless-ui/src/packages/storage/local-storage/local-storage";
import Event from "@makeless/makeless-ui/src/packages/event/basic/event";
import Security from "@makeless/makeless-ui/src/packages/security/basic/security";

// scss
import './scss/app.scss'

// config
import configuration from './../../makeless.json'

const config = new Config(configuration);
const router = new Router();
const http = new Axios({baseURL: config.getConfiguration().getHost()});
const i18n = new I18n(config.getConfiguration().getLocale());
const storage = new LocalStorage();
const event = new Event(config.getConfiguration().getHost());
const security = new Security(router, http, event, storage);

new Makeless(config, router, http, i18n, event, security)
    .init()
    .then(makeless => makeless.run());

Config

makeless.json

{
  "name": "Makeless",
  "logo": null,
  "locale": "en",
  "host": "http://localhost:3000",
  "emailVerification": true,
  "mail": {
    "name": "Makeless",
    "logo": null,
    "from": "Makeless <[email protected]>",
    "link": "http://localhost",
    "buttonColor": "#4586ab",
    "buttonTextColor": "#FFFFFF",
    "texts": {
      "en": {
        "greeting": "Hello",
        "signature": "Best Regards",
        "copyright": "Copyright © 2020 Makeless. All rights reserved."
      }
    }
  },
  "tokens": true,
  "navigation": {
    "left": {
      "en": [
        {
          "label": "Dashboard",
          "to": "dashboard"
        }
      ]
    },
    "right": {
      "en": [
        {
          "label": "GitHub",
          "to": "https://github.com/makeless",
          "external": true
        },
        {
          "label": "Login",
          "to": "login"
        },
        {
          "label": "Register",
          "to": "register"
        }
      ]
    }
  },
  "settingsNavigation": {
    "en": [
      {
        "title": "Settings",
        "items": [
          {
            "label": "Profile",
            "to": "profile"
          },
          {
            "label": "Password",
            "to": "password"
          },
          {
            "label": "Teams",
            "to": "team"
          },
          {
            "label": "Team Invitations",
            "to": "team-invitation"
          },
          {
            "label": "Tokens",
            "to": "token"
          }
        ]
      }
    ]
  },
  "teams": {
    "tokens": true,
    "roles": {
      "owner": {
        "en": "Owner"
      },
      "user": {
        "en": "User"
      }
    },
    "settingsNavigation": {
      "en": [
        {
          "title": "Settings",
          "items": [
            {
              "label": "Profile",
              "to": "profile"
            },
            {
              "label": "Users",
              "to": "team-user-team"
            },
            {
              "label": "Tokens",
              "to": "token"
            },
            {
              "label": "Pending invitations",
              "to": "team-invitation"
            }
          ]
        }
      ]
    }
  }
}

Download Details:

Author: makeless

Demo: https://github.com/makeless

Source Code: https://github.com/makeless/makeless-ui

vuejs vue javascript typescript

Bootstrap 5 Complete Course with Examples

Bootstrap 5 Tutorial - Bootstrap 5 Crash Course for Beginners

Nest.JS Tutorial for Beginners

Hello Vue 3: A First Look at Vue 3 and the Composition API

Building a simple Applications with Vue 3

Deno Crash Course: Explore Deno and Create a full REST API with Deno

How to Build a Real-time Chat App with Deno and WebSockets

Convert HTML to Markdown Online

HTML entity encoder decoder Online

8 Popular Websites That Use The Vue.JS Framework

In this article, we are going to list out the most popular websites using Vue JS as their frontend framework. Vue JS is one of those elite progressive JavaScript frameworks that has huge demand in the web development industry. Many popular websites are developed using Vue in their frontend development because of its imperative features.

Manage Vue i18n with Typescript

Internationalize your Vue project thanks to vue-i18n along with Typescript

How to use Vue 3 with TypeScript to build powerful apps

Vue 3 with TypeScript .A demo project outlining how to use Vue 3 with TypeScript to build powerful apps.

How to use TypeScript and Vue with Vue.extend

TypeScript and Vue are a great combination, but how do you use it? In this video I'll discuss how to use TypeScript and Vue with Vue.extend and look at the class component architecture. A Beginners Guide to Vue.js With TypeScript

TypeScript Vue, Part 1 - Which Vue Developers should learn TypeScript?

Why learn TypeScript? More and more Vue apps and open source projects -- including Vue 3 -- are using TypeScript.