tenancy-docs/dist/index.html
Samuel Štancl 9760cb75b1 Add new logo
2020-04-23 03:34:25 +02:00

465 lines
46 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="theme-color" content="#4c51bf">
<link href="https://fonts.googleapis.com/css?family=Nunito:200,400,500,600,700,800&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Fira+Code&display=swap" rel="stylesheet">
<script async defer src="https://buttons.github.io/buttons.js"></script>
<link rel="stylesheet" href="/tailwind.css">
<title>stancl/tenancy &mdash; Automatic multi-tenancy for your Laravel app. No code changes needed.</title>
<meta name="description"
content="A Laravel multi-tenancy package that respects your code. You won't have to change a thing in your application's code.">
</head>
<body class="antialiased font-sans w-full bg-indigo-100">
<div class="fixed xl:flex hidden top-0 left-0 z-50 bg-indigo-700 w-full justify-between items-center px-40">
<div class="font-bold text-2xl text-indigo-100 tracking-wide">
<a href="#">
<div class="h-20">
<svg class="h-full" fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1005 380">
<g filter="url(#filter0_dd)">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M192.745 340.522c-.172-.014-.343-.027-.508-.076-.856-.252-1.7-.573-2.547-.933L68.1027 269.381c-3.187-1.838-5.1417-5.2-5.1349-8.866l.0453-135.633c.0001-10.666 13.761-20.293 20.6414-23.773L185.78 42.1467c7.652-4.4139 16.812-1.7742 20.435.0974l116.45 67.1689c.792.456 1.505 1.003 2.138 1.64.157.148.283.329.407.506.055.08.11.159.167.234l.012.013c.372.424.759.865 1.041 1.349.131.218.22.465.309.711.043.118.086.237.133.352.063.148.132.295.201.443.145.309.291.619.379.941.071.267.095.539.118.807.014.152.027.303.048.452.021.166.052.331.083.497.057.298.113.597.109.904l-.05 141.543c.007 3.643-1.938 7.007-5.099 8.824l-122.669 70.808c-.307.186-.633.3-.964.415-.116.041-.233.082-.35.126-.139.056-.277.12-.415.184-.245.114-.492.229-.759.302-.323.084-.665.113-1.005.142-.163.014-.325.028-.485.048-.123.016-.247.038-.371.06-.258.047-.516.093-.771.089-.411-.002-.824-.076-1.238-.15-.156-.028-.313-.056-.47-.08-.139-.03-.28-.041-.419-.051zM136.729 94.0941L93.7909 118.886c-3.4082 1.505-10.2246 7.149-10.2246 17.693l-.0337 117.954-.0131.022 101.0055 58.26c3.449 2.108 12.396 5.06 20.593 0l102.189-58.978.031-117.903c0-9.451-6.8-15.778-10.2-17.761L196.036 59.8575l-59.307 34.2366z"
fill="#5A67D8" />
</g>
<path fill-rule="evenodd" clip-rule="evenodd"
d="M192.556 296.574c.213.063.436.042.657.09.405.062.808.161 1.209.162.267.004.538-.069.809-.105.351-.044.716-.047 1.055-.135.295-.08.557-.234.831-.344.319-.12.636-.205.93-.383l86.839-50.126c2.238-1.286 3.614-3.667 3.61-6.246l.035-100.2c.004-.34-.095-.664-.136-.992-.042-.292-.039-.595-.117-.891-.093-.337-.273-.655-.411-.98-.104-.253-.176-.524-.313-.753-.2-.343-.474-.655-.737-.955l-.008-.009c-.131-.172-.246-.372-.407-.524-.448-.451-.953-.838-1.513-1.161l-82.437-47.5496c-2.565-1.325-9.049-3.1937-14.466-.069L115.69 127.143c-4.871 2.464-14.613 9.28-14.613 16.83l-.032 96.016c-.005 2.595 1.379 4.976 3.635 6.277l86.073 49.647c.6.255 1.198.482 1.803.661zm-69.691-156.846l71.572 41.283 41.986-24.241 30.395-17.546-71.572-41.2829-41.984 24.2369-30.397 17.55zm78.811 137.286l72.341-41.752.021-83.465-72.34 41.752-.022 83.465zm-86.049-124.761l-.024 83.502-.009.016 71.572 41.282.015-35.075.018-48.442-71.572-41.283z"
fill="#4C51BF" />
<path
d="M194.437 181.011l-71.572-41.283 30.397-17.55 41.984-24.2369 71.572 41.2829-30.395 17.546-41.986 24.241zM115.603 235.755l.024-83.502 71.572 41.283-.018 48.442-.015 35.075-71.572-41.282.009-.016zM274.017 235.262l-72.341 41.752.022-83.465 72.34-41.752-.021 83.465z"
fill="#4C51BF" />
<path fill-rule="evenodd" clip-rule="evenodd"
d="M192.556 296.322c.213.063.436.042.657.09.405.062.808.161 1.209.163.267.004.538-.07.809-.106.351-.043.716-.046 1.055-.135.295-.08.557-.234.831-.343.319-.121.636-.206.93-.383l86.839-50.127c2.238-1.285 3.614-3.667 3.61-6.246l.035-100.2c.004-.339-.095-.664-.136-.992-.042-.292-.039-.595-.117-.891-.093-.337-.273-.655-.411-.98-.104-.252-.176-.524-.313-.753-.2-.342-.474-.654-.737-.954l-.008-.01c-.131-.172-.246-.372-.407-.523-.448-.451-.953-.839-1.513-1.162l-82.437-47.5494c-2.565-1.325-9.049-3.1937-14.466-.069L115.69 126.892c-4.871 2.463-14.613 9.279-14.613 16.829l-.032 96.016c-.005 2.596 1.379 4.976 3.635 6.277l86.073 49.647c.6.255 1.198.482 1.803.661zm-69.691-156.845l71.572 41.282 41.986-24.241 30.395-17.546-71.572-41.2827-41.984 24.2367-30.397 17.551zm78.811 137.285l72.341-41.752.021-83.465-72.34 41.752-.022 83.465zm-86.049-124.761l-.024 83.502-.009.016 71.572 41.282.015-35.074.018-48.443-71.572-41.283z"
fill="#EBF4FF" />
<path
d="M479.936 172.472c4.8.288 7.2 2.448 7.2 6.48 0 2.304-.96 4.08-2.88 5.328-1.824 1.152-4.464 1.632-7.92 1.44l-3.888-.288c-16.128-1.152-24.192-9.792-24.192-25.92V128.12h-7.2c-2.592 0-4.608-.576-6.048-1.728-1.344-1.152-2.016-2.832-2.016-5.04s.672-3.888 2.016-5.04c1.44-1.152 3.456-1.728 6.048-1.728h7.2v-13.248c0-2.592.816-4.656 2.448-6.192 1.632-1.536 3.84-2.304 6.624-2.304 2.688 0 4.848.768 6.48 2.304 1.632 1.536 2.448 3.6 2.448 6.192v13.248h12.24c2.592 0 4.56.576 5.904 1.728 1.44 1.152 2.16 2.832 2.16 5.04s-.72 3.888-2.16 5.04c-1.344 1.152-3.312 1.728-5.904 1.728h-12.24v32.688c0 7.104 3.264 10.896 9.792 11.376l3.888.288zm72.308-6.768c1.632 0 2.928.624 3.888 1.872 1.056 1.248 1.584 2.928 1.584 5.04 0 2.976-1.776 5.472-5.328 7.488-3.264 1.824-6.96 3.312-11.088 4.464-4.128 1.056-8.064 1.584-11.808 1.584-11.328 0-20.304-3.264-26.928-9.792-6.624-6.528-9.936-15.456-9.936-26.784 0-7.2 1.44-13.584 4.32-19.152 2.88-5.568 6.912-9.888 12.096-12.96 5.28-3.072 11.232-4.608 17.856-4.608 6.336 0 11.856 1.392 16.56 4.176 4.704 2.784 8.352 6.72 10.944 11.808 2.592 5.088 3.888 11.088 3.888 18 0 4.128-1.824 6.192-5.472 6.192h-42.48c.576 6.624 2.448 11.52 5.616 14.688 3.168 3.072 7.776 4.608 13.824 4.608 3.072 0 5.76-.384 8.064-1.152 2.4-.768 5.088-1.824 8.064-3.168 2.88-1.536 4.992-2.304 6.336-2.304zm-24.912-40.176c-4.896 0-8.832 1.536-11.808 4.608-2.88 3.072-4.608 7.488-5.184 13.248h32.544c-.192-5.856-1.632-10.272-4.32-13.248-2.688-3.072-6.432-4.608-11.232-4.608zm86.58-12.672c8.448 0 14.736 2.4 18.864 7.2 4.128 4.8 6.192 12.048 6.192 21.744v35.424c0 2.688-.816 4.8-2.448 6.336-1.536 1.536-3.696 2.304-6.48 2.304-2.784 0-4.992-.768-6.624-2.304-1.632-1.536-2.448-3.648-2.448-6.336v-34.416c0-5.472-1.056-9.456-3.168-11.952-2.016-2.496-5.232-3.744-9.648-3.744-5.184 0-9.36 1.632-12.528 4.896-3.072 3.264-4.608 7.632-4.608 13.104v32.112c0 2.688-.816 4.8-2.448 6.336-1.632 1.536-3.84 2.304-6.624 2.304s-4.992-.768-6.624-2.304c-1.536-1.536-2.304-3.648-2.304-6.336v-55.728c0-2.496.816-4.512 2.448-6.048 1.632-1.536 3.84-2.304 6.624-2.304 2.496 0 4.512.768 6.048 2.304 1.632 1.44 2.448 3.36 2.448 5.76v3.888c2.4-3.936 5.616-6.96 9.648-9.072 4.032-2.112 8.592-3.168 13.68-3.168zm73.867 0c9.792 0 17.04 2.448 21.744 7.344 4.8 4.8 7.2 12.144 7.2 22.032v35.136c0 2.592-.768 4.656-2.304 6.192-1.536 1.44-3.648 2.16-6.336 2.16-2.496 0-4.56-.768-6.192-2.304-1.536-1.536-2.304-3.552-2.304-6.048V174.2c-1.632 3.744-4.224 6.672-7.776 8.784-3.456 2.112-7.488 3.168-12.096 3.168-4.704 0-8.976-.96-12.816-2.88s-6.864-4.56-9.072-7.92c-2.208-3.36-3.312-7.104-3.312-11.232 0-5.184 1.296-9.264 3.888-12.24 2.688-2.976 7.008-5.136 12.96-6.48 5.952-1.344 14.16-2.016 24.624-2.016h3.6v-3.312c0-4.704-1.008-8.112-3.024-10.224-2.016-2.208-5.28-3.312-9.792-3.312-2.784 0-5.616.432-8.496 1.296-2.88.768-6.288 1.92-10.224 3.456-2.496 1.248-4.32 1.872-5.472 1.872-1.728 0-3.168-.624-4.32-1.872-1.056-1.248-1.584-2.88-1.584-4.896 0-1.632.384-3.024 1.152-4.176.864-1.248 2.256-2.4 4.176-3.456 3.36-1.824 7.344-3.264 11.952-4.32 4.704-1.056 9.312-1.584 13.824-1.584zm-4.464 60.336c4.8 0 8.688-1.584 11.664-4.752 3.072-3.264 4.608-7.44 4.608-12.528v-3.024h-2.592c-6.432 0-11.424.288-14.976.864-3.552.576-6.096 1.584-7.632 3.024-1.536 1.44-2.304 3.408-2.304 5.904 0 3.072 1.056 5.616 3.168 7.632 2.208 1.92 4.896 2.88 8.064 2.88zm92.597-60.336c8.448 0 14.736 2.4 18.864 7.2 4.128 4.8 6.192 12.048 6.192 21.744v35.424c0 2.688-.816 4.8-2.448 6.336-1.536 1.536-3.696 2.304-6.48 2.304-2.784 0-4.992-.768-6.624-2.304-1.632-1.536-2.448-3.648-2.448-6.336v-34.416c0-5.472-1.056-9.456-3.168-11.952-2.016-2.496-5.232-3.744-9.648-3.744-5.184 0-9.36 1.632-12.528 4.896-3.072 3.264-4.608 7.632-4.608 13.104v32.112c0 2.688-.816 4.8-2.448 6.336-1.632 1.536-3.84 2.304-6.624 2.304s-4.992-.768-6.624-2.304c-1.536-1.536-2.304-3.648-2.304-6.336v-55.728c0-2.496.816-4.512 2.448-6.048 1.632-1.536 3.84-2.304 6.624-2.304 2.496 0 4.512.768 6.048 2.304 1.632 1.44 2.448 3.36 2.448 5.76v3.888c2.4-3.936 5.616-6.96 9.648-9.072 4.032-2.112 8.592-3.168 13.68-3.168zm74.587 73.296c-7.008 0-13.2-1.488-18.576-4.464-5.28-2.976-9.36-7.2-12.24-12.672-2.88-5.472-4.32-11.856-4.32-19.152 0-7.296 1.488-13.728 4.464-19.296 3.072-5.664 7.344-10.032 12.816-13.104 5.472-3.072 11.76-4.608 18.864-4.608 3.744 0 7.488.528 11.232 1.584 3.84 1.056 7.2 2.496 10.08 4.32 3.072 2.016 4.608 4.56 4.608 7.632 0 2.112-.528 3.84-1.584 5.184-.96 1.248-2.256 1.872-3.888 1.872-1.056 0-2.16-.24-3.312-.72-1.152-.48-2.304-1.056-3.456-1.728-2.112-1.248-4.128-2.208-6.048-2.88-1.92-.768-4.128-1.152-6.624-1.152-5.952 0-10.56 1.968-13.824 5.904-3.168 3.84-4.752 9.408-4.752 16.704 0 7.2 1.584 12.768 4.752 16.704 3.264 3.84 7.872 5.76 13.824 5.76 2.4 0 4.512-.336 6.336-1.008 1.92-.768 4.032-1.776 6.336-3.024 1.44-.864 2.688-1.488 3.744-1.872 1.056-.48 2.112-.72 3.168-.72 1.536 0 2.832.672 3.888 2.016 1.056 1.344 1.584 3.024 1.584 5.04 0 1.632-.384 3.072-1.152 4.32-.672 1.152-1.824 2.208-3.456 3.168-2.976 1.92-6.432 3.456-10.368 4.608-3.936 1.056-7.968 1.584-12.096 1.584zm88.168-67.824c.768-1.728 1.776-2.976 3.024-3.744 1.344-.864 2.784-1.296 4.32-1.296 2.208 0 4.176.768 5.904 2.304 1.824 1.44 2.736 3.264 2.736 5.472 0 1.056-.288 2.16-.864 3.312l-39.312 82.368c-1.632 3.264-4.176 4.896-7.632 4.896-2.208 0-4.176-.72-5.904-2.16-1.632-1.344-2.448-3.072-2.448-5.184 0-1.056.288-2.256.864-3.6l9.792-20.592-26.784-55.728c-.48-.96-.72-2.064-.72-3.312 0-2.208.912-4.08 2.736-5.616 1.92-1.536 4.08-2.304 6.48-2.304 1.632 0 3.12.432 4.464 1.296 1.344.768 2.4 2.016 3.168 3.744l20.16 44.496 20.016-44.352z"
fill="#EBF4FF" />
<path
d="M495.017 276h7.378v-17.301h16.923v-6.185h-16.923v-11.057h18.713v-6.184h-26.091V276zm72.005-20.364c0-13.164-8.035-20.92-18.713-20.92-10.699 0-18.714 7.756-18.714 20.92 0 13.145 8.015 20.921 18.714 20.921 10.678 0 18.713-7.756 18.713-20.921zm-7.418 0c0 9.267-4.653 14.299-11.295 14.299-6.623 0-11.296-5.032-11.296-14.299s4.673-14.298 11.296-14.298c6.642 0 11.295 5.031 11.295 14.298zM576.797 276h7.378v-14.915h7.517L599.686 276h8.233l-8.81-16.148c4.793-1.929 7.318-6.025 7.318-11.554 0-7.775-5.011-13.025-14.358-13.025h-15.272V276zm7.378-21.04v-13.522h6.761c5.508 0 7.974 2.525 7.974 6.86 0 4.336-2.466 6.662-7.934 6.662h-6.801zM632.709 276h25.316v-6.185h-17.938v-34.542h-7.378V276zm41.28 0l3.361-10.043h15.313l3.38 10.043h7.875l-14.358-40.727h-9.108L666.114 276h7.875zm5.35-15.969l5.508-16.406h.318l5.509 16.406h-11.335zM712.083 276h7.378v-14.915h7.517L734.972 276h8.233l-8.81-16.148c4.793-1.929 7.318-6.025 7.318-11.554 0-7.775-5.011-13.025-14.358-13.025h-15.272V276zm7.378-21.04v-13.522h6.761c5.508 0 7.974 2.525 7.974 6.86 0 4.336-2.466 6.662-7.934 6.662h-6.801zM756.535 276l3.36-10.043h15.313L778.589 276h7.875l-14.358-40.727h-9.108L748.66 276h7.875zm5.349-15.969l5.509-16.406h.318l5.508 16.406h-11.335zm33.544-24.758h-8.093L801.673 276h9.108l14.358-40.727h-8.114l-10.58 32.057h-.417l-10.6-32.057zM833.303 276h26.648v-6.185h-19.27v-11.116h17.738v-6.185h-17.738v-11.057h19.111v-6.184h-26.489V276zm36.816 0h25.315v-6.185h-17.938v-34.542h-7.377V276z"
fill="#A3BFFA" />
<defs>
<filter id="filter0_dd" x="47.9678" y="34.735" width="294.842" height="331.068"
filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix" />
<feColorMatrix in="SourceAlpha" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" />
<feOffset dy="4" />
<feGaussianBlur stdDeviation="3" />
<feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05 0" />
<feBlend in2="BackgroundImageFix" result="effect1_dropShadow" />
<feColorMatrix in="SourceAlpha" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" />
<feOffset dy="10" />
<feGaussianBlur stdDeviation="7.5" />
<feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1 0" />
<feBlend in2="effect1_dropShadow" result="effect2_dropShadow" />
<feBlend in="SourceGraphic" in2="effect2_dropShadow" result="shape" />
</filter>
</defs>
</svg>
</div>
</a>
</div>
<div class="text-lg text-indigo-200 flex justify-between items-center">
<div class="mx-4 hover:text-indigo-100">
<a href="https://tenancyforlaravel.com/docs/v2/difference-between-this-package-and-others/">
This Package vs Others
</a>
</div>
<!-- todo write the blog post and then add the link <div class="mx-4 hover:text-indigo-100">
<a href="todo">
Why Automatic Tenancy
</a>
</div> -->
<div class="mx-4 hover:text-indigo-100">
<a
href="https://samuelstancl.me/blog/make-your-laravel-app-multi-tenant-without-changing-a-line-of-code/">
Tutorial
</a>
</div>
<div class="mx-4 hover:text-indigo-100">
<a href="https://github.com/stancl/tenancy">
GitHub
</a>
</div>
<div class="mx-4 hover:text-indigo-100">
<a href="https://github.com/stancl/tenancy/blob/2.x/SUPPORT.md">
Need help?
</a>
</div>
<div class="mx-4 hover:text-indigo-100">
<a href="https://discord.gg/7cpgPxv">
Discord
</a>
</div>
<div class="mx-4 hover:text-indigo-100">
<a href="https://github.com/stancl/tenancy/blob/2.x/DONATIONS.md">
Donate
</a>
</div>
<a class="mx-4" href="https://tenancyforlaravel.com/docs/v2/getting-started/">
<button class="text-indigo-100 shadow-primary font-semibold text-center px-6 py-2
bg-indigo-dark border-indigo-dark border-2 rounded-10 hover:bg-indigo-900
hover:border-indigo-900 focus:outline-none both-transition">Get Started</button>
</a>
</div>
</div>
<header class="relative xl:mt-16">
<div class="overflow-hidden w-full xl:block hidden absolute top-0 left-0"> <!-- waves -->
<div class="bg-indigo-700 h-48 -mx-10"></div>
<svg class="pt-64 -mx-10 h-full -my-1 bg-indigo-700" viewBox="0 0 1440 320">
<path class="fill-current text-indigo-600" fill-opacity="1"
d="M0,32L26.7,53.3C53.3,75,107,117,160,160C213.3,203,267,245,320,234.7C373.3,224,427,160,480,128C533.3,96,587,96,640,122.7C693.3,149,747,203,800,224C853.3,245,907,235,960,197.3C1013.3,160,1067,96,1120,80C1173.3,64,1227,96,1280,112C1333.3,128,1387,128,1413,128L1440,128L1440,320L1413.3,320C1386.7,320,1333,320,1280,320C1226.7,320,1173,320,1120,320C1066.7,320,1013,320,960,320C906.7,320,853,320,800,320C746.7,320,693,320,640,320C586.7,320,533,320,480,320C426.7,320,373,320,320,320C266.7,320,213,320,160,320C106.7,320,53,320,27,320L0,320Z">
</path>
</svg>
<div class="bg-indigo-100">
<div class="bg-indigo-600 h-20 -mx-10"></div>
<svg class="-mx-10 -my-1 h-full" viewBox="0 0 1440 280">
<path class="fill-current text-indigo-600" fill-opacity="1"
d="M0,128L34.3,122.7C68.6,117,137,107,206,112C274.3,117,343,139,411,170.7C480,203,549,245,617,261.3C685.7,277,754,267,823,245.3C891.4,224,960,192,1029,154.7C1097.1,117,1166,75,1234,48C1302.9,21,1371,11,1406,5.3L1440,0L1440,0L1405.7,0C1371.4,0,1303,0,1234,0C1165.7,0,1097,0,1029,0C960,0,891,0,823,0C754.3,0,686,0,617,0C548.6,0,480,0,411,0C342.9,0,274,0,206,0C137.1,0,69,0,34,0L0,0Z">
</path>
</svg>
</div>
</div>
<div class="bg-indigo-700 xl:bg-transparent p-6 xl:py-20 xl:px-20 2xl:px-40 flex flex-wrap xl:relative top-0 left-0">
<div class="w-full xl:w-1/2 leading-relaxed">
<h1 class="text-indigo-100 text-5xl xl:text-6xl font-bold">Automatic tenancy for your Laravel app</h1>
<h2 class="mt-4 text-4xl xl:text-5xl font-thin text-indigo-200">No code changes required.</h2>
<p class="mt-5 text-2xl text-indigo-300"><strong class="text-indigo-200">stancl/tenancy</strong> is a package that uses a completely new approach to implementing multi-tenancy.</p>
<p class="mt-2 text-2xl text-indigo-300">Instead of forcing you to change how you write your app, it <strong class="text-indigo-200">bootstraps tenancy automatically, in the background.</strong></p>
</div>
<div class="w-1/2 justify-center items-center hidden xl:flex">
<div class="bg-indigo-900 text-lg leading-loose text-blue-300 rounded-15 p-6 inline-block shadow-primary">
<pre>
// Create a tenant
$tenant = Tenant::new()
->withDomains([
'tenant1.yourapp.com',
'tenant1.com',
])
->withPlan('free')
->save();
// Write your app like you're used to
Order::where('status', 'shipped')->get();
Cache::get('order_count');
asset('logo.png');
dispatch(new SendOrderCreatedMail);
</pre>
</div>
</div>
<div class="w-full xl:w-auto mt-8 xl:mt-2">
<a href="https://tenancyforlaravel.com/docs/v2/getting-started/">
<button class="text-indigo-100 shadow-primary font-semibold text-xl w-full xl:w-64 text-center py-2
bg-indigo-dark border-indigo-dark border-2 rounded-10 hover:bg-indigo-900
hover:border-indigo-900 focus:outline-none both-transition">View
Documentation</button>
</a>
<a
href="https://samuelstancl.me/blog/make-your-laravel-app-multi-tenant-without-changing-a-line-of-code/">
<button class="mt-2 xl:mt-0 xl:ml-6 text-indigo-100 font-semibold text-xl w-full xl:w-64 text-center py-2
rounded-10 border-indigo-500 border-2 hover:border-indigo-300 border-transition
focus:outline-none">Beginners
Tutorial</button>
</a>
</div>
<div class="flex flex-col xl:flex-row justify-between mx-auto w-full xl:w-auto mt-24">
<div class="xl:w-1/3 w-full">
<div class="bg-white py-6 px-8 xl:px-12 h-full rounded-15 text-xl flex flex-col justify-between shadow-card">
<div>
<h3 class="font-bold text-3xl text-center my-1">Easy Installation</h3>
<p class="mt-5">Two commands is all you need to get started.</p>
<pre class="text-lg mt-5 whitespace-pre-wrap">
composer require stancl/tenancy
php artisan tenancy:install
</pre>
<p class="mt-5">After installation, just focus on what's important to you &mdash; writing your app.</p>
</div>
<div class="flex justify-center mt-4 xl:mt-8">
<a href="https://tenancyforlaravel.com/docs/v2/installation">
<button
class="text-indigo-800 font-bold text-xl w-64 text-center py-2 rounded-10
border-indigo-200 border-2 focus:outline-none focus:border-indigo-600
hover:border-indigo-600 border-transition">Installation
docs</button>
</a>
</div>
</div>
</div>
<div class="mt-6 xl:mt-0 xl:ml-12 2xl:ml-24 xl:w-1/3 w-full">
<div class="bg-white py-6 px-12 h-full rounded-15 text-xl flex flex-col justify-between shadow-card">
<div>
<h3 class="font-bold text-3xl text-center my-1">Fully Testable</h3>
<p class="mt-5">You can test every single part of your app the same way you test any Laravel application.</p>
<p class="mt-5">Test everything from tenant creation to logic inside the tenant part of the application.</p>
<p class="mt-5">Multi-tenancy doesn't have to mean sacrificing testability.</p>
</div>
<div class="flex justify-center xl:mt-8">
<a href="https://tenancyforlaravel.com/docs/v2/application-testing">
<button class="text-indigo-800 font-bold text-xl w-64 text-center py-2 rounded-10
border-indigo-200 border-2 focus:outline-none focus:border-indigo-600
hover:border-indigo-600 border-transition">Testing docs</button>
</a>
</div>
</div>
</div>
<div class="mt-6 xl:mt-0 xl:ml-12 2xl:ml-24 xl:w-1/3 w-full">
<div
class="bg-white py-6 px-6 xl:px-12 h-full rounded-15 text-xl flex flex-col justify-between
shadow-card">
<div>
<h3 class="font-bold text-3xl text-center my-1">Awesome Integration</h3>
<p class="mt-5">By switching things in the background, the package doesn't stand in your way.
</p>
<p class="mt-5">You can integrate with just about any package.</p>
<div class="flex mx-auto w-full md:w-1/2 xl:w-full h-full my-4 xl:mt-0 xl:-mb-8 justify-between items-center xl:mx-6">
<svg class="block w-12" title="Telescope" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 80 80">
<path class="fill-current text-indigo-900"
d="M0 40a39.87 39.87 0 0 1 11.72-28.28A40 40 0 1 1 0 40zm34 10a4 4 0 0 1-4-4v-2a2 2 0 1 0-4 0v2a4 4 0 0 1-4 4h-2a2 2 0 1 0 0 4h2a4 4 0 0 1 4 4v2a2 2 0 1 0 4 0v-2a4 4 0 0 1 4-4h2a2 2 0 1 0 0-4h-2zm24-24a6 6 0 0 1-6-6v-3a3 3 0 0 0-6 0v3a6 6 0 0 1-6 6h-3a3 3 0 0 0 0 6h3a6 6 0 0 1 6 6v3a3 3 0 0 0 6 0v-3a6 6 0 0 1 6-6h3a3 3 0 0 0 0-6h-3zm-4 36a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM21 28a3 3 0 1 0 0-6 3 3 0 0 0 0 6z">
</path>
</svg>
<svg class="block w-12" title="Nova" version="1.1" viewBox="0 0 30 30"
xmlns="http://www.w3.org/2000/svg">
<defs>
<clipPath id="clipPath29">
<rect y="-1.5829e-8" width="29.936" height="30.064" fill="#fff" />
</clipPath>
</defs>
<g clip-path="url(#clipPath29)" fill="none" fill-rule="evenodd">
<g transform="translate(-250,-27)" class="fill-current text-indigo-900">
<path id="Combined-Shape"
d="m300.84 49.5h-8.4821v-13.34h2.854v10.84h5.6281zm10.059 0h-2.5546v-1.02c-0.6586 0.8-1.7962 1.26-3.0535 1.26-1.5368 0-3.333-1.04-3.333-3.2 0-2.28 1.7962-3.12 3.333-3.12 1.2973 0 2.4149 0.42 3.0535 1.18v-1.22c0-0.98-0.83822-1.62-2.1155-1.62-1.0178 0-1.9758 0.4-2.7741 1.14l-0.99789-1.78c1.1775-1.06 2.6943-1.52 4.2111-1.52 2.2153 0 4.231 0.88 4.231 3.66zm-4.5903-1.48c0.81827 0 1.6166-0.28 2.0357-0.84v-1.2c-0.41911-0.56-1.2174-0.86-2.0357-0.86-0.99789 0-1.8162 0.54-1.8162 1.46s0.81827 1.44 1.8162 1.44zm9.6196 1.48h-2.5346v-9.66h2.5346v1.3c0.69852-0.84 1.876-1.54 3.0735-1.54v2.48c-0.17962-0.04-0.39916-0.06-0.69852-0.06-0.83823 0-1.9559 0.48-2.375 1.1zm12.993 0h-2.5546v-1.02c-0.65861 0.8-1.7962 1.26-3.0535 1.26-1.5368 0-3.333-1.04-3.333-3.2 0-2.28 1.7962-3.12 3.333-3.12 1.2973 0 2.4149 0.42 3.0535 1.18v-1.22c0-0.98-0.83823-1.62-2.1155-1.62-1.0178 0-1.9758 0.4-2.7741 1.14l-0.99788-1.78c1.1775-1.06 2.6943-1.52 4.2111-1.52 2.2153 0 4.231 0.88 4.231 3.66zm-4.5903-1.48c0.81827 0 1.6166-0.28 2.0357-0.84v-1.2c-0.41911-0.56-1.2174-0.86-2.0357-0.86-0.99789 0-1.8162 0.54-1.8162 1.46s0.81827 1.44 1.8162 1.44zm12.314 1.48h-2.7342l-3.8718-9.66h2.7143l2.5147 6.72 2.5346-6.72h2.7143zm9.5398 0.24c-2.9338 0-5.1491-1.98-5.1491-5.08 0-2.8 2.0756-5.06 4.9894-5.06 2.8939 0 4.8298 2.16 4.8298 5.3v0.6h-7.1648c0.17962 1.18 1.1376 2.16 2.7741 2.16 0.81827 0 1.9359-0.34 2.5546-0.94l1.1376 1.68c-0.95798 0.88-2.4748 1.34-3.9716 1.34zm2.2353-6c-0.0798-0.92-0.71848-2.06-2.3949-2.06-1.5767 0-2.2552 1.1-2.355 2.06zm6.8056 5.76h-2.5346v-13.34h2.5346zm19 0h-1.5966l-7.7636-10.64v10.64h-1.6565v-13.34h1.6964l7.6638 10.42v-10.42h1.6565zm7.2646 0.24c-2.9338 0-4.7699-2.28-4.7699-5.08s1.8361-5.06 4.7699-5.06 4.7699 2.26 4.7699 5.06-1.8361 5.08-4.7699 5.08zm0-1.34c2.0557 0 3.1932-1.76 3.1932-3.74 0-1.96-1.1376-3.72-3.1932-3.72s-3.1932 1.76-3.1932 3.72c0 1.98 1.1376 3.74 3.1932 3.74zm11.416 1.1h-1.6365l-4.0115-9.66h1.6365l3.1932 7.92 3.2132-7.92h1.6166zm13.092 0h-1.4968v-1.1c-0.77836 0.88-1.896 1.34-3.1932 1.34-1.6166 0-3.3529-1.1-3.3529-3.2 0-2.18 1.7164-3.18 3.3529-3.18 1.3172 0 2.4149 0.42 3.1932 1.3v-1.74c0-1.28-1.0378-2.02-2.4348-2.02-1.1576 0-2.0956 0.4-2.9538 1.34l-0.69853-1.04c1.0378-1.08 2.2752-1.6 3.8518-1.6 2.0557 0 3.7321 0.92 3.7321 3.26zm-4.1313-0.84c1.0378 0 2.0556-0.4 2.6344-1.2v-1.84c-0.57878-0.78-1.5966-1.18-2.6344-1.18-1.417 0-2.3949 0.88-2.3949 2.1 0 1.24 0.97793 2.12 2.3949 2.12zm-126.77 3.9093c-2.7448 2.7364-6.5482 4.4307-10.751 4.4307-4.6788 0-8.8622-2.0995-11.642-5.3988 5.9527 4.9167 14.819 4.609 20.407-0.92307 3.7654-3.7277 3.7654-9.7716 0-13.499-3.7654-3.7277-9.8703-3.7277-13.636 0-1.6137 1.5976-1.6137 4.1878 0 5.7854s4.2301 1.5976 5.8439 0c0.53791-0.53253 1.41-0.53253 1.948 0 0.53791 0.53253 0.53791 1.3959 0 1.9285-2.6896 2.6627-7.0502 2.6627-9.7398 0s-2.6896-6.9797 0-9.6424c4.8412-4.7928 12.69-4.7928 17.532 0 4.8287 4.7804 4.8412 12.523 0.0376 17.319zm0.89023-20.17c-5.9527-4.9167-14.819-4.609-20.407 0.92307-3.7654 3.7277-3.7654 9.7716 0 13.499 3.7654 3.7277 9.8703 3.7277 13.636 0 1.6137-1.5976 1.6137-4.1878 0-5.7854s-4.2301-1.5976-5.8439 0c-0.53791 0.53253-1.41 0.53253-1.948 0-0.53791-0.53253-0.53791-1.3959 0-1.9285 2.6896-2.6627 7.0502-2.6627 9.7398 0s2.6896 6.9797 0 9.6424c-4.8412 4.7928-12.69 4.7928-17.532 0-4.8349-4.7866-4.8412-12.543-0.0188-17.338 2.7434-2.7254 6.539-4.412 10.733-4.412 4.6788 0 8.8622 2.0995 11.642 5.3988z" />
</g>
</g>
</svg>
<svg class="block w-12" title="Horizon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30">
<path class="fill-current text-indigo-900"
d="M5.26176342 26.4094389C2.04147988 23.6582233 0 19.5675182 0 15c0-4.1421356 1.67893219-7.89213562 4.39339828-10.60660172C7.10786438 1.67893219 10.8578644 0 15 0c8.2842712 0 15 6.71572875 15 15 0 8.2842712-6.7157288 15-15 15-3.716753 0-7.11777662-1.3517984-9.73823658-3.5905611zM4.03811305 15.9222506C5.70084247 14.4569342 6.87195416 12.5 10 12.5c5 0 5 5 10 5 3.1280454 0 4.2991572-1.9569336 5.961887-3.4222502C25.4934253 8.43417206 20.7645408 4 15 4 8.92486775 4 4 8.92486775 4 15c0 .3105915.01287248.6181765.03811305.9222506z" />
</svg>
<img class="block h-8" src="spatie.png" alt="Spatie">
</div>
</div>
<div class="flex justify-center mt-4 xl:mt-8">
<a href="https://tenancyforlaravel.com/docs/v2/integrations">
<button
class="text-indigo-800 font-bold text-xl w-64 text-center py-2 rounded-10
border-indigo-200 border-2 focus:outline-none focus:border-indigo-600
hover:border-indigo-600 border-transition">Integration
docs</button>
</a>
</div>
</div>
</div>
</div>
</div>
</header>
<div class="w-full flex flex-col xl:flex-row items-center justify-center xl:px-64 bg-white mt-10">
<div class="w-full xl:w-1/2 text-left xl:text-right px-6 py-6">
<h3 class="text-3xl font-semibold">Automatic Data Separation</h3>
<p class="text-lg">Tenants' databases, caches, filesystems, queues and Redis stores are automatically separated. You can
write your app like you're used to and let the package worry about tenant data separation.</p>
</div>
<div class="w-full xl:w-1/2 flex justify-start xl:ml-16 xl:px-6 xl:py-6">
<pre class="bg-indigo-900 leading-relaxed text-blue-300 xl:rounded-15 py-6 px-8 inline-block w-full whitespace-pre-wrap">
cache()->remember('total_revenue', function () {
return Order::with('products')
->get()
->products
->sum();
});
</pre>
</div>
</div>
<div class="w-full flex flex-col-reverse xl:flex-row items-center justify-center xl:px-64 bg-white mt-10">
<div class="w-full xl:w-1/2 flex justify-end xl:mr-16 xl:px-6 xl:py-6">
<pre class="bg-indigo-900 leading-relaxed text-blue-300 xl:rounded-15 py-6 px-8 inline-block w-full whitespace-pre-wrap">
'redis' => [
'prefix_base' => 'tenant',
'prefixed_connections' => [
'default',
],
],
</pre>
</div>
<div class="w-full xl:w-1/2 text-left px-6 py-6">
<h3 class="text-3xl font-semibold">Configurable</h3>
<p class="text-lg">Even though everything happens automatically, you're still in control. You can configure
how database names, Redis keys and filesystem paths are prefixed, as well as how cache is tagged and
what DB/Redis connections and FS disks are made multi-tenant.</p>
</div>
</div>
<div class="w-full flex flex-col xl:flex-row items-center justify-center xl:px-64 bg-white mt-10">
<div class="w-full xl:w-1/2 text-left xl:text-right px-6 py-6">
<h3 class="text-3xl font-semibold">CLI-friendly</h3>
<p class="text-lg"><strong>stancl/tenancy</strong> comes with artisan commands for migrating, rolling
back, as well as
seeding tenant databases.</p>
</div>
<div class="w-full xl:w-1/2 flex justify-start xl:ml-16 xl:px-6 xl:py-6">
<pre class="bg-indigo-900 leading-relaxed text-blue-300 xl:rounded-15 py-6 px-8 inline-block w-full whitespace-pre-wrap">
$ artisan tenants:seed --tenants=8075a580-1cb8-11e9-8822-49c5d8f8ff23
Tenant: 8075a580-1cb8-11e9-8822-49c5d8f8ff23 (tenant1.localhost)
Database seeding completed successfully.
</pre>
</div>
</div>
<div class="w-full flex flex-col-reverse xl:flex-row items-center justify-center xl:px-64 bg-white mt-10">
<div class="w-full xl:w-1/2 flex justify-end xl:mr-16 xl:px-6 xl:py-6">
<pre class="bg-indigo-900 leading-relaxed text-blue-300 xl:rounded-15 py-6 px-8 inline-block w-full whitespace-pre-wrap">
class PostgreSQLDatabaseManager implements TenantDatabaseManager
{
public function createDatabase($name)
{
//
}
}
</pre>
</div>
<div class="w-full xl:w-1/2 text-left px-6 py-6">
<h3 class="text-3xl font-semibold">SOLID extensibility</h3>
<p class="text-lg">The package follows the SOLID principles and is open to extension. You're free to write
(and contribute ❤️) your own Storage Drivers, Tenancy Bootstrappers, and Feature classes.</p>
</div>
</div>
<div class="py-6 xl:py-16 px-4 flex justify-center">
<div>
<h2 class="text-4xl font-bold text-center">How it works</h2>
<ul class="text-xl leading-relaxed xl:leading-loose mt-4">
<li>1. The tenant is identified using the current hostname.</li>
<li>2. Tenancy Bootstrappers are executed:</li>
<ul class="pl-6 my-1">
<li class="flex content-center xl:items-center xl:content-normal">
<svg class="block mr-3 h-6" viewBox="0 0 26 26" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M13 26C20.1797 26 26 20.1797 26 13C26 5.8203 20.1797 0 13 0C5.8203 0 0 5.8203 0 13C0 20.1797 5.8203 26 13 26Z" fill="#C3DAFE" /> <path d="M10.4 16.3668L18.59 8.17677C18.8402 7.96543 19.1609 7.85631 19.4881 7.87122C19.8152 7.88613 20.1247 8.02397 20.3546 8.25718C20.5846 8.49039 20.718 8.80179 20.7283 9.12912C20.7385 9.45646 20.6249 9.77561 20.41 10.0228L11.31 19.1228C11.067 19.361 10.7403 19.4944 10.4 19.4944C10.0597 19.4944 9.73302 19.361 9.49001 19.1228L5.59001 15.2228C5.37515 14.9756 5.26149 14.6565 5.27176 14.3291C5.28202 14.0018 5.41546 13.6904 5.64538 13.4572C5.87531 13.224 6.18479 13.0861 6.51194 13.0712C6.8391 13.0563 7.15983 13.1654 7.41001 13.3768L10.4 16.3668Z" fill="#4C51BF" /></svg>
Database connections are switched
</li>
<li class="flex content-center xl:items-center">
<svg class="block mr-3 h-6" viewBox="0 0 26 26" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M13 26C20.1797 26 26 20.1797 26 13C26 5.8203 20.1797 0 13 0C5.8203 0 0 5.8203 0 13C0 20.1797 5.8203 26 13 26Z" fill="#C3DAFE" /> <path d="M10.4 16.3668L18.59 8.17677C18.8402 7.96543 19.1609 7.85631 19.4881 7.87122C19.8152 7.88613 20.1247 8.02397 20.3546 8.25718C20.5846 8.49039 20.718 8.80179 20.7283 9.12912C20.7385 9.45646 20.6249 9.77561 20.41 10.0228L11.31 19.1228C11.067 19.361 10.7403 19.4944 10.4 19.4944C10.0597 19.4944 9.73302 19.361 9.49001 19.1228L5.59001 15.2228C5.37515 14.9756 5.26149 14.6565 5.27176 14.3291C5.28202 14.0018 5.41546 13.6904 5.64538 13.4572C5.87531 13.224 6.18479 13.0861 6.51194 13.0712C6.8391 13.0563 7.15983 13.1654 7.41001 13.3768L10.4 16.3668Z" fill="#4C51BF" /></svg>
Cache tag is set
</li>
<li class="flex content-center xl:items-center">
<svg class="block mr-3 h-6" viewBox="0 0 26 26" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M13 26C20.1797 26 26 20.1797 26 13C26 5.8203 20.1797 0 13 0C5.8203 0 0 5.8203 0 13C0 20.1797 5.8203 26 13 26Z" fill="#C3DAFE" /> <path d="M10.4 16.3668L18.59 8.17677C18.8402 7.96543 19.1609 7.85631 19.4881 7.87122C19.8152 7.88613 20.1247 8.02397 20.3546 8.25718C20.5846 8.49039 20.718 8.80179 20.7283 9.12912C20.7385 9.45646 20.6249 9.77561 20.41 10.0228L11.31 19.1228C11.067 19.361 10.7403 19.4944 10.4 19.4944C10.0597 19.4944 9.73302 19.361 9.49001 19.1228L5.59001 15.2228C5.37515 14.9756 5.26149 14.6565 5.27176 14.3291C5.28202 14.0018 5.41546 13.6904 5.64538 13.4572C5.87531 13.224 6.18479 13.0861 6.51194 13.0712C6.8391 13.0563 7.15983 13.1654 7.41001 13.3768L10.4 16.3668Z" fill="#4C51BF" /></svg>
Filesystem's root paths are suffixed
</li>
<li class="flex content-center xl:items-center">
<svg class="block mr-3 h-6" viewBox="0 0 26 26" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M13 26C20.1797 26 26 20.1797 26 13C26 5.8203 20.1797 0 13 0C5.8203 0 0 5.8203 0 13C0 20.1797 5.8203 26 13 26Z" fill="#C3DAFE" /> <path d="M10.4 16.3668L18.59 8.17677C18.8402 7.96543 19.1609 7.85631 19.4881 7.87122C19.8152 7.88613 20.1247 8.02397 20.3546 8.25718C20.5846 8.49039 20.718 8.80179 20.7283 9.12912C20.7385 9.45646 20.6249 9.77561 20.41 10.0228L11.31 19.1228C11.067 19.361 10.7403 19.4944 10.4 19.4944C10.0597 19.4944 9.73302 19.361 9.49001 19.1228L5.59001 15.2228C5.37515 14.9756 5.26149 14.6565 5.27176 14.3291C5.28202 14.0018 5.41546 13.6904 5.64538 13.4572C5.87531 13.224 6.18479 13.0861 6.51194 13.0712C6.8391 13.0563 7.15983 13.1654 7.41001 13.3768L10.4 16.3668Z" fill="#4C51BF" /></svg>
Jobs are made automatically tenant-aware
</li>
<li class="flex content-center xl:items-center">
<svg class="block mr-3 h-6" viewBox="0 0 26 26" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M13 26C20.1797 26 26 20.1797 26 13C26 5.8203 20.1797 0 13 0C5.8203 0 0 5.8203 0 13C0 20.1797 5.8203 26 13 26Z" fill="#C3DAFE" /> <path d="M10.4 16.3668L18.59 8.17677C18.8402 7.96543 19.1609 7.85631 19.4881 7.87122C19.8152 7.88613 20.1247 8.02397 20.3546 8.25718C20.5846 8.49039 20.718 8.80179 20.7283 9.12912C20.7385 9.45646 20.6249 9.77561 20.41 10.0228L11.31 19.1228C11.067 19.361 10.7403 19.4944 10.4 19.4944C10.0597 19.4944 9.73302 19.361 9.49001 19.1228L5.59001 15.2228C5.37515 14.9756 5.26149 14.6565 5.27176 14.3291C5.28202 14.0018 5.41546 13.6904 5.64538 13.4572C5.87531 13.224 6.18479 13.0861 6.51194 13.0712C6.8391 13.0563 7.15983 13.1654 7.41001 13.3768L10.4 16.3668Z" fill="#4C51BF" /></svg>
Redis prefix is set
</li>
</ul>
<li>3. Your code is multi-tenant. No changes needed.</li>
</ul>
</div>
</div>
<div class="py-10 px-4 xl:py-20 flex justify-center bg-indigo-900">
<div class="text-xl">
<h2 class="text-4xl font-bold text-center text-indigo-100">Ready to try it?</h2>
<p class="text-indigo-200 my-6 text-center leading-relaxed xl:leading-loose">
Just create a new Laravel project and install the package.<br>
We think you'll love it.
</p>
<div class="flex justify-center">
<a href="https://tenancyforlaravel.com/docs/v2/installation">
<button class="rounded-10 bg-indigo-700 px-8 py-2 tracking-wide text-indigo-100 font-semibold
focus:outline-none focus:border-indigo-600 border-transparent border hover:bg-indigo-600 bg-transition">INSTALLATION</button>
</a>
</div>
</div>
</div>
<div class="xl:p-24">
<div class="border-0 xl:border-2 border-indigo-200 bg-blue-100 rounded-15 p-10 flex justify-center">
<div class="text-xl">
<h2 class="text-3xl font-bold text-center">Stay Updated</h2>
<p class="mt-4">If you'd like to be notified about new versions and related stuff, you can sign up for e-mail
notifications or join our <a class="text-blue-600"
href="https://t.me/joinchat/AAAAAFjdrbSJg0ZCHTzxLA">Telegram channel</a>.</p>
<form
action="https://github.us3.list-manage.com/subscribe/post?u=6a33c422777aedd88e9a9488e&amp;id=9b99f013b8"
method="post" class="mt-8" target="_blank" novalidate>
<div id="mc_embed_signup_scroll">
<h2 class="text-xl font-bold">Subscribe to e-mail notifications</h2>
<div class="mt-3">
<label for="mce-EMAIL">Email Address</label>
<input type="email" value="" placeholder="your@email.com" name="EMAIL"
class="rounded-10 mx-2 px-3 py-1 focus:outline-none focus:border-blue-400 border-indigo-200 border-2 leading-relaxed"
id="mce-EMAIL">
</div>
<div class="mt-5">
<h3 class="font-semibold">What would you like to be notified about?</h3>
<ul class="mt-2">
<li class="leading-loose"><input
class="form-checkbox text-indigo-600 mx-2 focus:outline-none focus:shadow-none focus:border-blue-400 border-blue-200 border"
type="checkbox" value="1" name="group[27425][1]"
id="mce-group[27425]-27425-0"><label for="mce-group[27425]-27425-0">Major
versions of stancl/tenancy: important breaking changes</label></li>
<li class="leading-loose"><input
class="form-checkbox text-indigo-600 mx-2 focus:outline-none focus:shadow-none focus:border-blue-400 border-blue-200 border"
type="checkbox" value="2" name="group[27425][2]"
id="mce-group[27425]-27425-1"><label for="mce-group[27425]-27425-1">Minor
versions of stancl/tenancy: new features, bug fixes</label></li>
<li class="leading-loose"><input
class="form-checkbox text-indigo-600 mx-2 focus:outline-none focus:shadow-none focus:border-blue-400 border-blue-200 border"
type="checkbox" value="4" name="group[27425][4]"
id="mce-group[27425]-27425-2"><label for="mce-group[27425]-27425-2">Other:
once in a while, when I make something cool, I may send you an email</label>
</li>
</ul>
</div>
<div id="mce-responses" class="clear">
<div class="response" id="mce-error-response" style="display:none"></div>
<div class="response" id="mce-success-response" style="display:none"></div>
</div>
<!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups-->
<div style="position: absolute; left: -5000px;" aria-hidden="true"><input type="text"
name="b_6a33c422777aedd88e9a9488e_9b99f013b8" tabindex="-1" value=""></div>
<input type="hidden" name="subscribe" value="1">
<div class="flex justify-center">
<button
class="mt-4 rounded-10 bg-indigo-700 px-8 py-2 tracking-wide text-indigo-100 font-semibold
rounded-10 focus:outline-none focus:border-blue-400 border-transparent border
hover:bg-indigo-600 px-2 py-1 bg-transition" type="submit">
<span class="align-middle">SUBSCRIBE</span>
</button>
</div>
</div>
</form>
</div>
</div>
</div>
<div class="bg-indigo-dark text-gray-100 py-8 flex justify-center">
<div class="px-3">
<h1 class="text-3xl text-center"><a class="border-b-2 border-gray-600 hover:border-gray-100"
href="https://github.com/stancl/tenancy">stancl/tenancy</a></h1>
<ul class="flex flex-wrap justify-center xl:flex-row my-8">
<li class="mx-2"><a class="github-button" href="https://github.com/stancl/tenancy"
data-icon="octicon-star" data-size="large" data-show-count="true"
aria-label="Star stancl/tenancy on GitHub">Star</a></li>
<li class="mx-2"><a class="github-button" href="https://github.com/stancl" data-size="large"
data-show-count="true" aria-label="Follow @stancl on GitHub">Follow @stancl</a></li>
<li class="mx-2"><a class="github-button" href="https://github.com/stancl/tenancy/subscription"
data-icon="octicon-eye" data-size="large" data-show-count="true"
aria-label="Watch stancl/tenancy on GitHub">Watch</a></li>
<li class="mx-2"><a class="github-button" href="https://github.com/stancl/tenancy/fork"
data-icon="octicon-repo-forked" data-size="large" data-show-count="true"
aria-label="Fork stancl/tenancy on GitHub">Fork</a></li>
</ul>
<hr class="my-5 border border-gray-600">
<ul class="text-gray-400 text-lg">
<li><a class="hover:border-gray-500 border-b border-transparent" href="https://github.com/stancl/tenancy">GitHub</a></li>
<li><a class="hover:border-gray-500 border-b border-transparent" href="https://tenancyforlaravel.com/docs">Documentation</a></li>
</ul>
</div>
</div>
</body>
</html>