diff --git a/docs/.vuepress/components/PricingContent.vue b/docs/.vuepress/components/PricingContent.vue new file mode 100644 index 00000000000..4233f226bb6 --- /dev/null +++ b/docs/.vuepress/components/PricingContent.vue @@ -0,0 +1,63 @@ + + diff --git a/docs/.vuepress/components/SupportOptions.vue b/docs/.vuepress/components/SupportOptions.vue index a272b21d55d..96dd5e6c584 100644 --- a/docs/.vuepress/components/SupportOptions.vue +++ b/docs/.vuepress/components/SupportOptions.vue @@ -18,7 +18,7 @@ title="Become a backer or sponsor on Github sponsor" href="https://github.com/sponsors/Romakita"> - Github sponsor + Github sponsors
  • @@ -62,4 +62,4 @@ export default { name: "SupportOptions" }; - \ No newline at end of file + diff --git a/docs/.vuepress/config.base.js b/docs/.vuepress/config.base.js index 3e1b64dfc69..a1c7651a7b7 100644 --- a/docs/.vuepress/config.base.js +++ b/docs/.vuepress/config.base.js @@ -48,9 +48,9 @@ module.exports = ({title, description, base = "", url, apiRedirectUrl = "", them repo: "tsedio/tsed", githubProxyUrl: "https://api.tsed.io/rest/github/tsedio/tsed", openCollective: "https://api.tsed.io/rest/opencollective", - slackUrl: "https://api.tsed.io/rest/slack/tsedio/tsed", + slackUrl: `${base}/pricing`, stackoverflowUrl: "https://stackoverflow.com/search?q=tsed", - sponsorUrl: "https://tsed.io/support.html", + sponsorUrl: `${base}/sponsors.html`, twitterUrl: "https://twitter.com/TsED_io", editLinks: true, docsDir: "docs", @@ -263,6 +263,11 @@ module.exports = ({title, description, base = "", url, apiRedirectUrl = "", them } ].sort((a, b) => (a.text < b.text ? -1 : 1)) }, + { + title: `Pricing | ${title}`, + text: "Pricing", + link: `${base}/pricing` + }, { icon: "bx bx-dots-horizontal-rounded text-lg", title: `Extras`, @@ -288,8 +293,8 @@ module.exports = ({title, description, base = "", url, apiRedirectUrl = "", them link: `${base}/contributing.html` }, { - text: "Support", - link: `${base}/support.html` + text: "Support us", + link: `${base}/sponsors.html` }, { text: "License", @@ -415,7 +420,7 @@ module.exports = ({title, description, base = "", url, apiRedirectUrl = "", them {title: "Our Team", path: base + "/team"}, {title: "Tutorials", path: base + "/tutorials/"}, {title: "Contributing", path: base + "/contributing"}, - {title: "Support us", path: base + "/support"}, + {title: "Support us", path: base + "/sponsors"}, {title: "License", path: base + "/license"}, {title: "API References", path: `${apiRedirectUrl}/api`} ] @@ -500,13 +505,17 @@ module.exports = ({title, description, base = "", url, apiRedirectUrl = "", them { title: "Support", items: [ + { + label: "Pricing", + url: base + "/pricing.html" + }, { label: "Issues", url: "https://github.com/tsedio/tsed/issues" }, { label: "Sponsoring & donations", - url: base + "/support.html" + url: base + "/sponsors.html" } ] } diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index 6050a2b2ef2..6e4f3617ed6 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -1,7 +1,243 @@ +const slackURL = "https://api.tsed.io/rest/slack/tsedio/tsed"; +const defaultTiersItems = [ + `Github issues`, + `Github discussions`, + `Slack public channel`, + "Voting for new features" +]; + +function getTiers(wording = "Free") { + return [ + { + title: "Individual", + category: "Starter", + description: "Premium support for individuals and non-profit organizations", + items: [ + `${wording} options`, + "+", + "Sponsor badge", + "Slack private channel", + "Direct message to the author", + "Earlier access to private packages", + "Prioritized issues", + "Submit new features", + "Hosted private packages on our repository", + "Your name / logo will appear on the Ts.ED website as sponsor!" + ], + price: { + amount: "$25", + by: "per month" + }, + cta: { + label: "Get started", + url: "https://github.com/sponsors/Romakita/sponsorships?sponsor=Romakita&tier_id=69641&preview=false" + } + }, + { + title: "Company", + category: "Premium", + description: "Premium support for company
    startup, small business...", + items: [ + `${wording} options`, + "+", + "Sponsor badge", + "Slack private channel", + "Direct message to the author", + "Earlier access to private packages", + "Prioritized issues", + "Submit new features", + "Hosted private packages on our repository", + "Your name / logo will appear on the Ts.ED website as sponsor!" + ], + price: { + amount: "$50", + by: "per month" + }, + cta: { + label: "Get started", + url: "https://github.com/sponsors/Romakita/sponsorships?sponsor=Romakita&tier_id=69642&preview=false" + } + }, + { + title: "Company +", + category: "Golden", + description: 'Now I have an answer to the question "Are you wasting time on GitHub again?"', + highlight: true, + items: [ + "Company options", + "+", + "Dedicated slack private channel", + "Technical support (hangout, audio/video)", + "Ask for personalized features", + "Code review" + ], + price: { + amount: "$100", + by: "per month" + }, + cta: { + label: "Get started", + url: "https://github.com/sponsors/Romakita/sponsorships?sponsor=Romakita&tier_id=161983&preview=false" + } + } + ]; +} + module.exports = require("./config.base")({ title: "Ts.ED - A Node.js and TypeScript Framework on top of Express/Koa.js.", description: "A Node.js and TypeScript Framework on top of Express/Koa.js. It provides a lot of decorators and guidelines to write your code.", url: "https://tsed.io", - apiRedirectUrl: "https://api-docs.tsed.io" + apiRedirectUrl: "https://api-docs.tsed.io", + themeConfig: { + offers: { + supports: { + title: "Support pricing", + description: "Support the Open-Source project by getting a premium support!", + legalInfo: "Prices include taxes - It use github sponsors.", + items: [ + { + title: "Free", + category: "Community", + description: "Share your issues with the community

    ", + startHere: true, + items: defaultTiersItems, + price: { + amount: "$0", + by: "per month" + }, + cta: { + label: "Open Slack", + url: "Slack URL" + } + }, + ...getTiers() + ] + }, + additionalServices: { + items: [ + { + title: "Support", + category: "One time", + description: "You have a problem that requires quick attention.

    ", + items: ["Audio/Video", "Share screen", "Share repository", "1 hour consulting, mentorship or pair-programming session"], + price: { + amount: "$100", + by: "one time" + }, + cta: { + label: "Get started", + url: "https://github.com/sponsors/Romakita/sponsorships?sponsor=Romakita&tier_id=68164&preview=false" + } + }, + { + title: "Create POC", + category: "Development", + description: "I'll bootstrap a POC for you that match your needs.

    ", + items: [ + "Discuss about your needs on a private slack channel / e-mail", + "Cost and time evaluation", + "I take 1 minimum hour to create the repository with the source code that match your needs" + ], + price: { + amount: "$250", + by: "start from" + }, + cta: { + label: "Contact us", + url: "https://form.typeform.com/to/uJLP7anG" + } + }, + { + title: "Audit", + category: "Consulting", + description: "You develop your application on the Ts.ED framework and you want an expert opinion on your code.", + items: ["Audit and Code review", "Improvement proposal", "Audio / video playback possible (hangout, Teams, etc...)"], + price: { + amount: "$800", + by: "one time" + }, + cta: { + label: "Contact us", + url: "https://form.typeform.com/to/uJLP7anG" + } + } + ] + }, + sponsors: { + title: "Support us", + description: "Support the Open-Source project by becoming an official sponsor and enjoy the benefits that this includes!", + legalInfo: "Prices include taxes - It use github sponsors.", + items: [ + { + title: "Supporter", + category: "Community", + description: "You are just an holy person who wants to support my work out of pure goodness. 🙏🏻", + startHere: true, + items: defaultTiersItems, + price: { + amount: "$7", + by: "per month" + }, + cta: { + label: "Get started", + url: "https://github.com/sponsors/Romakita/sponsorships?sponsor=Romakita&tier_id=36063&preview=false" + } + }, + ...getTiers("Supporter") + ] + } + }, + backers: { + cta: { + label: "Become backer", + url: "https://opencollective.com/tsed#backers" + } + }, + sponsors: { + classes: null, + title: "Support us", + description: + "Ts.ED is under MIT-license and is an open-source project. Many thanks to our sponsors, partners and backers who contribute to promote and support our project!", + cta: { + label: "Become sponsor", + url: "/sponsors.html" + }, + items: [ + { + title: "Premium sponsors", + class: "w-1/2 sm:w-1/6 px-5 py-3", + style: { + maxHeight: "150px" + }, + items: [ + { + title: "Zenika", + href: "https://www.zenika.com", + src: "https://zenika-website.cdn.prismic.io/zenika-website/4e73b102-9045-4cff-b098-a0625f7d10f8_logo_light.svg" + }, + { + title: "Weseek", + href: "https://weseek.co.jp/", + src: "https://avatars.githubusercontent.com/u/6468105?v=4" + } + ] + }, + { + title: "Partners", + class: "w-1/3 sm:w-1/6 px-5 py-3", + style: { + maxHeight: "90px" + }, + items: [ + { + title: "schnell.digital", + href: "https://schnell.digital/", + src: "/partners/schnell.svg" + } + ] + } + ] + } + } }); diff --git a/docs/contributing.md b/docs/contributing.md index cc521eb99f4..c6156c801a6 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -8,25 +8,6 @@ contributors: badge: width: 45 bgColor: white -backers: - type: cols - title: Our Backers - description: Thank you to all our backers who contributes to our project! 🙏 - cta: - label: Become Backers - url: https://opencollective.com/tsed#backers -sponsors: - type: cols - classes: - title: Our Sponsors / Partners - description: Support this project by becoming a sponsor. Your logo will show up here with a link to your website. - image: - src: /sponsors.svg - href: http://www.freepik.com - title: Designed by pch.vector / Freepik - cta: - label: Become a sponsor - url: /support.html --- # Contributing diff --git a/docs/pricing.md b/docs/pricing.md new file mode 100644 index 00000000000..45319f92a19 --- /dev/null +++ b/docs/pricing.md @@ -0,0 +1,20 @@ +--- +layout: OffersPage +sidebar: false +sidebarPage: false +config: supports +supportUs: false +meta: + - name: description + content: Pricing and plan information around Ts.ED Support. + - name: keywords + content: Ts.ED pricing support nodejs express typescript javascript es6 decorators mvc model ioc service model middleware socket.io swagger typeorm mongoose ajv +--- + +# Pricing + +::: slot header-raw-content + + + +::: diff --git a/docs/readme.md b/docs/readme.md index c00a8eaa6a4..9d0aa737a19 100644 --- a/docs/readme.md +++ b/docs/readme.md @@ -10,9 +10,9 @@ gettingStartedText: Getting started gettingStartedUrl: /getting-started/ messengerText: Discussions messengerIcon: bxl-slack -messengerUrl: https://api.tsed.io/rest/slack/tsedio/tsed +messengerUrl: /pricing.html sponsorText: Sponsor @romakita -sponsorUrl: https://github.com/sponsors/Romakita +sponsorUrl: /sponsor.html features: - title: Rest API icon: bx-server @@ -182,8 +182,11 @@ frameworks: --- ::: slot hero-brand + +
    Ts.ED Framework
    for Node.js and TypeScript +
    ::: ::: slot hero-slogan @@ -195,7 +198,8 @@ Build your awesome server-side **application.** #Decorators, #Rest ::: ::: slot testimonial-title -Why Ts.ED? + +
    Why Ts.ED?
    ::: ::: slot testimonial-content diff --git a/docs/support.md b/docs/sponsors.md similarity index 66% rename from docs/support.md rename to docs/sponsors.md index 1ccac5586c5..ca944dd6db6 100644 --- a/docs/support.md +++ b/docs/sponsors.md @@ -1,6 +1,21 @@ +--- +layout: OffersPage +sidebar: false +sidebarPage: false +config: sponsors +supportUs: false +meta: + - name: description + content: Sponsorings tiers description for Ts.ED. + - name: keywords + content: Ts.ED sponsoring tiers nodejs express typescript javascript es6 decorators mvc model ioc service model middleware socket.io swagger typeorm mongoose ajv +--- + # Support us -Ts.ED is an MIT-licensed open source project with its ongoing development made possible thanks to the support by the community. +## About Ts.ED + +Ts.ED is an MIT-licensed Open-Source project which grows continuously thanks to community's support. This framework is a result of the long road, full of sleepless nights, working after hours, and busy weekends. ## How can you help? @@ -15,8 +30,6 @@ In order to help me, I run few supporting platforms: - become a backer or sponsor on [OpenCollective](https://opencollective.com/tsed) - use [PayPal](https://paypal.me/romainlenzotti) to send a one-time donation -OpenCollective Tiers - If you fell in love with Ts.ED, or you run a business which is using Ts.ED, consider sponsoring its development diff --git a/readme.md b/readme.md index dd346fe2d7f..34951854855 100644 --- a/readme.md +++ b/readme.md @@ -215,5 +215,3 @@ Permission is hereby granted, free of charge, to any person obtaining a copy of The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -[travis]: https://travis-ci.org/ diff --git a/tsdoc.config.js b/tsdoc.config.js index 6b7f2110846..4a74049c9b3 100644 --- a/tsdoc.config.js +++ b/tsdoc.config.js @@ -28,7 +28,8 @@ module.exports = { "!/packages/third-parties/formio-types", "!/packages/third-parties/schema-formio", "!/packages/third-parties/components-scan", - "!/packages/third-parties/components-scan", + "!/packages/third-parties/socketio-testing", + "!/packages/engines", ...ignores("/packages/specs/ajv/**", ["interfaces"]), ...ignores("/packages/specs/schema/**", ["components"]), ...ignores("/packages/security/oidc-provider/**", ["constants", "utils"]), @@ -42,7 +43,8 @@ module.exports = { ...ignores("/packages/orm/mongoose/**", ["utils"]), ...ignores("/packages/third-parties/stripe/**", ["constants", "middlewares", "services"]), "!/packages/platform/platform-test-utils", - "!**/node_modules" + "!**/node_modules", + "!**/__mock__/**" ], outputDir: "/docs/api", baseUrl: "/api",