[{"data":1,"prerenderedAt":712},["ShallowReactive",2],{"header-nav":3,"footer-primary":155,"footer-secondary":232,"footer-description":258,"header-nav-data":260,"github-stars":262,"8f849cd0-a47b-4e32-bb19-b478973c90f7":366,"dfd79d2b-7af5-4cdb-aa94-3f73de97ebd8":372,"74634853-196b-4ce3-b256-4534c054838f":379,"site-banner":408,"358b0659-1f05-4427-bd1c-4bc03a43c182":412,"9df3f40e-6272-4ec6-a0d7-cc29265e087c":419,"1b444c23-b593-4391-9410-4ca5d2c7a7cb":423,"blog/changing-our-license-one-year-later":426,"resource-sidebar-cta":449,"2a1ce79b-5635-40f7-8723-ccb9e9174522":453,"sales-reps":457,"5775da41-c960-47b1-b720-c0a8a679d743":709},{"items":4},[5,74,136,141,148],{"id":6,"title":7,"url":8,"callout":9,"callout_title":10,"children_title":11,"page":8,"children":12},"62c04c6c-5793-4702-8ed1-73dd563fd605","Product",null,"8f849cd0-a47b-4e32-bb19-b478973c90f7","Project Showcase","Use Cases and Features",[13,21,29,37,43,51,59,67],{"id":14,"title":15,"url":16,"description":17,"image":8,"icon":18,"page":19},"e7d7d5ed-89b1-4455-8b4a-8ae92c70e3a0","Headless CMS","/solutions/headless-cms/","Manage and deliver content with ease","code_blocks",{"permalink":20},"/solutions/headless-cms",{"id":22,"title":23,"url":24,"description":25,"image":8,"icon":26,"page":27},"60bdefd9-95e6-45a3-9f81-4748d07c59d3","Backend-as-a-Service","/solutions/backend-as-a-service/","Build and ship applications faster","speed",{"permalink":28},"/solutions/backend-as-a-service",{"id":30,"title":31,"url":32,"description":33,"image":8,"icon":34,"page":35},"5f9aebeb-4f89-445e-9850-5b1261a2743c","Headless Commerce","/solutions/product-information-management/","A single source of truth for products","shopping_cart_checkout",{"permalink":36},"/solutions/product-information-management",{"id":38,"title":39,"url":40,"description":41,"image":8,"icon":42,"page":8},"49e46134-80be-470e-8c73-afb1417fa9b6","100+ More Use Cases","https://directus.io/blog/100-tools-apps-and-platforms-you-can-build-with-directus","Build anything (or everything)","lightbulb",{"id":44,"title":45,"url":46,"description":47,"image":8,"icon":48,"page":49},"a589ac77-a5ce-45c5-a054-e43111e19158","Instant APIs","/products/connect/","Connect a database, get REST + GraphQL APIs","api",{"permalink":50},"/toolkit/connect",{"id":52,"title":53,"url":54,"description":55,"image":8,"icon":56,"page":57},"4a0f129a-c546-4493-b0a9-306e51692e90","Granular Policy-Based Auth","/products/auth/","Provide secure, autonomous data access","lock_person",{"permalink":58},"/toolkit/auth",{"id":60,"title":61,"url":62,"description":63,"image":8,"icon":64,"page":65},"f9250f2c-93a4-4108-80db-011bbe391ecf","Visual Automation Builder","/products/automate/","Automate content and data workflows with ease","build",{"permalink":66},"/toolkit/automate",{"id":68,"title":69,"url":8,"description":70,"image":8,"icon":71,"page":72},"f1ae4e40-5b05-42a4-9cd3-33dda35cc939","50+ More Features","Get everything you need out-of-the-box","auto_fix",{"permalink":73},"/features",{"id":75,"title":76,"url":8,"callout":77,"callout_title":78,"children_title":79,"page":8,"children":80},"2f6ad0d1-6dd3-4f17-b5c8-9f2abf71409a","Resources","dfd79d2b-7af5-4cdb-aa94-3f73de97ebd8","Watch Directus TV","Learn More",[81,88,96,102,109,116,122,129],{"id":82,"title":83,"url":84,"description":85,"image":8,"icon":86,"page":87},"0a3bf9f5-1ef2-43f4-bc09-7ff7488241c5","Blog","/blog","Read our latest articles and guides","library_books",{"permalink":84},{"id":89,"title":90,"url":91,"description":92,"image":8,"icon":93,"page":94},"165e3dc2-e51b-4456-8382-99c5775b0412","Case Studies","#","Case studies and success stories","magic_button",{"permalink":95},"/case-studies",{"id":97,"title":98,"url":99,"description":100,"image":8,"icon":101,"page":8},"5ae324b6-bf44-4c21-95ad-e6dc0c1c1f40","Community Forum","https://community.directus.io/","Questions and conversations","comment",{"id":103,"title":104,"url":91,"description":105,"image":8,"icon":106,"page":107},"b1db03f0-e537-490e-8c0f-c61c401d1024","Agency Directory","Browse our list of agency partners ","handshake",{"permalink":108},"/agency-directory",{"id":110,"title":111,"url":112,"description":113,"image":8,"icon":114,"page":115},"991731c8-eb40-4eec-85a5-6e977bcd7ec9","About Us","/about","Learn more about Directus and the team","supervised_user_circle",{"permalink":112},{"id":117,"title":118,"url":119,"description":120,"image":8,"icon":121,"page":8},"52aebf38-b3ad-4a27-807d-ce52398cd509","Wall of Love","https://testimonial.to/directus/all","See what others are saying about us","heart_plus",{"id":123,"title":124,"url":91,"description":125,"image":8,"icon":126,"page":127},"a86eca65-d5ae-4263-b7d9-4f1a1c50a0b1","Contact","Have a general inquiry or question for us?","mark_email_unread",{"permalink":128},"/contact",{"id":130,"title":131,"url":8,"description":132,"image":8,"icon":133,"page":134},"28225825-8d41-4809-9032-192fbf5c6e5d","Support","Reach out to Directus support","support",{"permalink":135},"/support",{"id":137,"title":138,"url":139,"callout":8,"callout_title":8,"children_title":8,"page":8,"children":140},"a3f1275d-b088-4b11-99bf-143fcbf39104","Developers","/docs",[],{"id":142,"title":143,"url":144,"callout":8,"callout_title":8,"children_title":8,"page":145,"children":147},"fae8fded-d2e2-468e-a68b-82abec7a7225","Enterprise","/solutions/enterprise/",{"permalink":146},"/solutions/enterprise",[],{"id":149,"title":150,"url":151,"callout":8,"callout_title":8,"children_title":8,"page":152,"children":154},"5c5e2fbc-49fd-4e41-a71e-e4f8db2b00cf","Pricing","/pricing/",{"permalink":153},"/pricing/self-hosted",[],{"items":156},[157,174,193,212],{"id":158,"title":159,"url":8,"page":8,"children":160},"522e608a-77b0-4333-820d-d4f44be2ade1","Solutions",[161,164,167,171],{"id":162,"title":15,"url":8,"page":163},"fcafe85a-a798-4710-9e7a-776fe413aae5",{"permalink":20},{"id":165,"title":23,"url":8,"page":166},"79972923-93cf-4777-9e32-5c9b0315fc10",{"permalink":28},{"id":168,"title":169,"url":8,"page":170},"0fa8d0c1-7b64-4f6f-939d-d7fdb99fc407","Product Information",{"permalink":36},{"id":172,"title":173,"url":40,"page":8},"63946d54-6052-4780-8ff4-91f5a9931dcc","100+ Things to Build",{"id":175,"title":76,"url":8,"page":8,"children":176},"8ab4f9b1-f3e2-44d6-919b-011d91fe072f",[177,181,185,189],{"id":178,"title":179,"url":180,"page":8},"f951fb84-8777-4b84-9e91-996fe9d25483","Documentation","https://docs.directus.io",{"id":182,"title":183,"url":184,"page":8},"366febc7-a538-4c08-a326-e6204957f1e3","Guides","https://docs.directus.io/guides/",{"id":186,"title":187,"url":188,"page":8},"aeb9128e-1c5f-417f-863c-2449416433cd","Community","https://directus.chat",{"id":190,"title":191,"url":192,"page":8},"da1c2ed8-0a77-49b0-a903-49c56cb07de5","Release Notes","https://github.com/directus/directus/releases",{"id":194,"title":131,"url":8,"page":8,"children":195},"d61fae8c-7502-494a-822f-19ecff3d0256",[196,200,204,208],{"id":197,"title":198,"url":199,"page":8},"8c43c781-7ebd-475f-a931-747e293c0a88","Issue Tracker","https://github.com/directus/directus/issues",{"id":201,"title":202,"url":203,"page":8},"d77bb78e-cf7b-4e01-932a-514414ba49d3","Feature Requests","https://github.com/directus/directus/discussions?discussions_q=is:open+sort:top",{"id":205,"title":206,"url":207,"page":8},"4346be2b-2c53-476e-b53b-becacec626a6","Community Chat","https://discord.com/channels/725371605378924594/741317677397704757",{"id":209,"title":210,"url":211,"page":8},"26c115d2-49f7-4edc-935e-d37d427fb89d","Cloud Dashboard","https://directus.cloud",{"id":213,"title":214,"url":8,"page":8,"children":215},"49141403-4f20-44ac-8453-25ace1265812","Organization",[216,220,225,229],{"id":217,"title":218,"url":112,"page":219},"1f36ea92-8a5e-47c8-914c-9822a8b9538a","About",{"permalink":112},{"id":221,"title":222,"url":91,"page":223},"b84bf525-5471-4b14-a93c-225f6c386005","Careers",{"permalink":224},"/careers",{"id":226,"title":227,"url":228,"page":8},"86aabc3a-433d-434b-9efa-ad1d34be0a34","Brand Assets","https://drive.google.com/drive/folders/1lBOTba4RaA5ikqOn8Ewo4RYzD0XcymG9?usp=sharing",{"id":230,"title":124,"url":8,"page":231},"8d2fa1e3-198e-4405-81e1-2ceb858bc237",{"permalink":128},{"items":233},[234,240,246,252],{"id":235,"title":236,"url":8,"page":237,"children":239},"8a1b7bfa-429d-4ffc-a650-2a5fdcf356da","Cloud Policies",{"permalink":238},"/cloud-policies",[],{"id":241,"title":242,"url":91,"page":243,"children":245},"bea848ef-828f-4306-8017-6b00ec5d4a0c","License",{"permalink":244},"/bsl",[],{"id":247,"title":248,"url":91,"page":249,"children":251},"4e914f47-4bee-42b7-b445-3119ee4196ef","Terms",{"permalink":250},"/terms",[],{"id":253,"title":254,"url":91,"page":255,"children":257},"ea69eda6-d317-4981-8421-fcabb1826bfd","Privacy",{"permalink":256},"/privacy",[],{"description":259},"\u003Cp>A composable backend to build your Headless CMS, BaaS, and more.&nbsp;\u003C/p>",{"header_cta_buttons":261},"74634853-196b-4ce3-b256-4534c054838f",{"id":263,"node_id":264,"name":265,"full_name":266,"private":267,"owner":268,"html_url":285,"description":286,"fork":267,"url":287,"forks_url":288,"keys_url":289,"collaborators_url":290,"teams_url":291,"hooks_url":292,"issue_events_url":293,"events_url":294,"assignees_url":295,"branches_url":296,"tags_url":297,"blobs_url":298,"git_tags_url":299,"git_refs_url":300,"trees_url":301,"statuses_url":302,"languages_url":303,"stargazers_url":304,"contributors_url":305,"subscribers_url":306,"subscription_url":307,"commits_url":308,"git_commits_url":309,"comments_url":310,"issue_comment_url":311,"contents_url":312,"compare_url":313,"merges_url":314,"archive_url":315,"downloads_url":316,"issues_url":317,"pulls_url":318,"milestones_url":319,"notifications_url":320,"labels_url":321,"releases_url":322,"deployments_url":323,"created_at":324,"updated_at":325,"pushed_at":326,"git_url":327,"ssh_url":328,"clone_url":329,"svn_url":285,"homepage":330,"size":331,"stargazers_count":332,"watchers_count":332,"language":333,"has_issues":334,"has_projects":334,"has_downloads":334,"has_wiki":267,"has_pages":267,"has_discussions":334,"forks_count":335,"mirror_url":8,"archived":267,"disabled":267,"open_issues_count":336,"license":337,"allow_forking":334,"is_template":267,"web_commit_signoff_required":267,"has_pull_requests":334,"pull_request_creation_policy":342,"topics":343,"visibility":284,"forks":335,"open_issues":336,"watchers":332,"default_branch":362,"temp_clone_token":8,"custom_properties":363,"organization":364,"network_count":335,"subscribers_count":365},7122594,"MDEwOlJlcG9zaXRvcnk3MTIyNTk0","directus","directus/directus",false,{"login":265,"id":269,"node_id":270,"avatar_url":271,"gravatar_id":272,"url":273,"html_url":274,"followers_url":275,"following_url":276,"gists_url":277,"starred_url":278,"subscriptions_url":279,"organizations_url":280,"repos_url":281,"events_url":282,"received_events_url":283,"type":214,"user_view_type":284,"site_admin":267},15967950,"MDEyOk9yZ2FuaXphdGlvbjE1OTY3OTUw","https://avatars.githubusercontent.com/u/15967950?v=4","","https://api.github.com/users/directus","https://github.com/directus","https://api.github.com/users/directus/followers","https://api.github.com/users/directus/following{/other_user}","https://api.github.com/users/directus/gists{/gist_id}","https://api.github.com/users/directus/starred{/owner}{/repo}","https://api.github.com/users/directus/subscriptions","https://api.github.com/users/directus/orgs","https://api.github.com/users/directus/repos","https://api.github.com/users/directus/events{/privacy}","https://api.github.com/users/directus/received_events","public","https://github.com/directus/directus","The flexible backend for all your projects 🐰 Turn your DB into a headless CMS, admin panels, or apps with a custom UI, instant APIs, auth & more.","https://api.github.com/repos/directus/directus","https://api.github.com/repos/directus/directus/forks","https://api.github.com/repos/directus/directus/keys{/key_id}","https://api.github.com/repos/directus/directus/collaborators{/collaborator}","https://api.github.com/repos/directus/directus/teams","https://api.github.com/repos/directus/directus/hooks","https://api.github.com/repos/directus/directus/issues/events{/number}","https://api.github.com/repos/directus/directus/events","https://api.github.com/repos/directus/directus/assignees{/user}","https://api.github.com/repos/directus/directus/branches{/branch}","https://api.github.com/repos/directus/directus/tags","https://api.github.com/repos/directus/directus/git/blobs{/sha}","https://api.github.com/repos/directus/directus/git/tags{/sha}","https://api.github.com/repos/directus/directus/git/refs{/sha}","https://api.github.com/repos/directus/directus/git/trees{/sha}","https://api.github.com/repos/directus/directus/statuses/{sha}","https://api.github.com/repos/directus/directus/languages","https://api.github.com/repos/directus/directus/stargazers","https://api.github.com/repos/directus/directus/contributors","https://api.github.com/repos/directus/directus/subscribers","https://api.github.com/repos/directus/directus/subscription","https://api.github.com/repos/directus/directus/commits{/sha}","https://api.github.com/repos/directus/directus/git/commits{/sha}","https://api.github.com/repos/directus/directus/comments{/number}","https://api.github.com/repos/directus/directus/issues/comments{/number}","https://api.github.com/repos/directus/directus/contents/{+path}","https://api.github.com/repos/directus/directus/compare/{base}...{head}","https://api.github.com/repos/directus/directus/merges","https://api.github.com/repos/directus/directus/{archive_format}{/ref}","https://api.github.com/repos/directus/directus/downloads","https://api.github.com/repos/directus/directus/issues{/number}","https://api.github.com/repos/directus/directus/pulls{/number}","https://api.github.com/repos/directus/directus/milestones{/number}","https://api.github.com/repos/directus/directus/notifications{?since,all,participating}","https://api.github.com/repos/directus/directus/labels{/name}","https://api.github.com/repos/directus/directus/releases{/id}","https://api.github.com/repos/directus/directus/deployments","2012-12-12T01:35:36Z","2026-03-18T14:36:38Z","2026-03-18T15:43:33Z","git://github.com/directus/directus.git","git@github.com:directus/directus.git","https://github.com/directus/directus.git","https://directus.io",438225,34516,"TypeScript",true,4638,385,{"key":338,"name":339,"spdx_id":340,"url":8,"node_id":341},"other","Other","NOASSERTION","MDc6TGljZW5zZTA=","all",[48,344,345,346,347,348,265,349,350,351,352,353,354,355,356,357,358,359,360,361],"app","cms","composable","data-visualization","database","graphql","headless-cms","javascript","mariadb","mssql","mysql","no-code","node","postgresql","sql","sqlite","typescript","vue","main",{},{"login":265,"id":269,"node_id":270,"avatar_url":271,"gravatar_id":272,"url":273,"html_url":274,"followers_url":275,"following_url":276,"gists_url":277,"starred_url":278,"subscriptions_url":279,"organizations_url":280,"repos_url":281,"events_url":282,"received_events_url":283,"type":214,"user_view_type":284,"site_admin":267},326,{"id":9,"title":367,"description":368,"image":369,"external_url":8,"icon":8,"badge":8,"page":370,"resource":8},"Built With Directus","See what everyone's been building with Directus","e658de72-fb08-4ed2-8029-215c712c789e",{"permalink":371},"/built-with-directus",{"id":77,"title":373,"description":374,"image":375,"external_url":376,"icon":377,"badge":378,"page":8,"resource":8},"Directus TV","Go down the rabbit hole with hours of original video content from our team. ","ab70faf5-fc28-4608-a7e7-74fd4f020a9d","/tv","connected_tv","Video",{"alignment":380,"style":381,"experiment_enabled":267,"experiment":8,"experiment_variant":382,"buttons":385,"variants":395},"center","default",{"id":383,"key":384,"experiment":8},"8c4951b4-a6f9-4c06-9f71-fd39a3bdad1e","control",[386,389,392],{"id":387,"block_button_id":388},15,"358b0659-1f05-4427-bd1c-4bc03a43c182",{"id":390,"block_button_id":391},16,"9df3f40e-6272-4ec6-a0d7-cc29265e087c",{"id":393,"block_button_id":394},232,"1b444c23-b593-4391-9410-4ca5d2c7a7cb",[396],{"id":397,"alignment":380,"style":381,"buttons":398,"experiment_variant":405},"e1885d45-3119-41a3-8294-3cd796ea6f02",[399,402],{"id":400,"block_button_id":401},203,"ade37731-147d-48c4-864a-cec007576362",{"id":403,"block_button_id":404},202,"1cb4e89f-f7de-4b46-bbb8-080191517a72",{"id":406,"key":407},"66d2be4f-2492-4944-8060-039c15515918","variant",{"id":409,"icon":377,"content":410,"link":411},"812bf73d-ebfb-4246-9538-937a09a0c795","Learn more about our native MCP","https://directus.io/mcp",{"id":388,"external_url":8,"label":413,"color":414,"outline":267,"icon":8,"size":415,"target":416,"ph_event":8,"page":417,"resource":8},"Book a Demo","primary","medium","_self",{"permalink":418},"/demo",{"id":391,"external_url":420,"label":421,"color":422,"outline":267,"icon":8,"size":415,"target":416,"ph_event":8,"page":8,"resource":8},"https://directus.cloud/account/register","Get Started","secondary",{"id":394,"external_url":211,"label":424,"color":422,"outline":334,"icon":425,"size":415,"target":416,"ph_event":8,"page":8,"resource":8},"Log In","arrow_forward",{"title":427,"category":428,"date_published":429,"summary":430,"image":431,"author":433,"blocks":438,"type":444,"video":8,"seo":445,"related_resources":448},"Changing Our License: One Year Later","news","2024-06-14T09:41:59.000Z","Last year, we changed the license of the main Directus project from GPL3 to the BSL 1.1. Just over a year later, we want to share our experience of how the decision making process and implementation went and where we are at with the license now.",{"id":432,"description":8},"6e55adb5-5325-4b0e-8fd2-9c75ad702250",{"name":434,"job_title":435,"image":436,"slug":437},"Benjamin Haynes","CEO, Founder","02875d88-5dad-4aba-bdcf-36d67426fa2e","ben-haynes",[439],{"id":440,"collection":441,"item":442,"spacing":8,"sort":443},"de5e4dca-f0ac-4a2d-beb9-591757c6aa45","block_richtext","5775da41-c960-47b1-b720-c0a8a679d743",1,{"title":83},{"title":446,"meta_description":447,"no_follow":267,"no_index":267,"canonical_url":8,"json_ld":8},"BSL License Change: One Year Later | Directus Blog","Reflecting on Directus's license change one year later. Insights on the impact, community feedback, and lessons learned from transitioning to BSL.",[],{"resource_sidebar_cta_header":450,"resource_sidebar_cta_description":451,"resource_sidebar_cta_form":452},"Sign up for updates 🐇","Get insights, releases, and exciting news delivered directly to your inbox once a month. No spam - we promise. 🙂","2a1ce79b-5635-40f7-8723-ccb9e9174522",{"id":452,"alignment":454,"show_labels":267,"inline":267,"form":455},"left",{"hubspot_form_id":456,"typeform_form_id":8,"route_to_meeting_link_on_success":267},"d57a69e4-6f43-4768-a600-5f7d30306260",{"reps":458},[459,515],{"name":460,"sdr":8,"link":461,"countries":462,"states":464},"John Daniels","https://meet.directus.io/meetings/john2144/john-contact-form-meeting",[463],"United States",[465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514],"Michigan","Indiana","Ohio","West Virginia","Kentucky","Virginia","Tennessee","North Carolina","South Carolina","Georgia","Florida","Alabama","Mississippi","New York","MI","IN","OH","WV","KY","VA","TN","NC","SC","GA","FL","AL","MS","NY","Connecticut","CT","Delaware","DE","Maine","ME","Maryland","MD","Massachusetts","MA","New Hampshire","NH","New Jersey","NJ","Pennsylvania","PA","Rhode Island","RI","Vermont","VT","Washington DC","DC",{"name":516,"link":517,"countries":518},"Michelle Riber","https://meetings.hubspot.com/mriber",[519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,496,707,708],"Albania","ALB","Algeria","DZA","Andorra","AND","Angola","AGO","Austria","AUT","Belgium","BEL","Benin","BEN","Bosnia and Herzegovina","BIH","Botswana","BWA","Bulgaria","BGR","Burkina Faso","BFA","Burundi","BDI","Cameroon","CMR","Cape Verde","CPV","Central African Republic","CAF","Chad","TCD","Comoros","COM","Côte d'Ivoire","CIV","Croatia","HRV","Czech Republic","CZE","Democratic Republic of Congo","COD","Denmark","DNK","Djibouti","DJI","Egypt","EGY","Equatorial Guinea","GNQ","Eritrea","ERI","Estonia","EST","Eswatini","SWZ","Ethiopia","ETH","Finland","FIN","France","FRA","Gabon","GAB","Gambia","GMB","Ghana","GHA","Greece","GRC","Guinea","GIN","Guinea-Bissau","GNB","Hungary","HUN","Iceland","ISL","Ireland","IRL","Italy","ITA","Kenya","KEN","Latvia","LVA","Lesotho","LSO","Liberia","LBR","Libya","LBY","Liechtenstein","LIE","Lithuania","LTU","Luxembourg","LUX","Madagascar","MDG","Malawi","MWI","Mali","MLI","Malta","MLT","Mauritania","MRT","Mauritius","MUS","Moldova","MDA","Monaco","MCO","Montenegro","MNE","Morocco","MAR","Mozambique","MOZ","Namibia","NAM","Niger","NER","Nigeria","NGA","North Macedonia","MKD","Norway","NOR","Poland","POL","Portugal","PRT","Republic of Congo","COG","Romania","ROU","Rwanda","RWA","San Marino","SMR","São Tomé and Príncipe","STP","Senegal","SEN","Serbia","SRB","Seychelles","SYC","Sierra Leone","SLE","Slovakia","SVK","Slovenia","SVN","Somalia","SOM","South Africa","ZAF","South Sudan","SSD","Spain","ESP","Sudan","SDN","Sweden","SWE","Tanzania","TZA","Togo","TGO","Tunisia","TUN","Uganda","UGA","United Kingdom","GBR","Vatican City","VAT","Zambia","ZMB","Zimbabwe","ZWE","UK","Germany","Netherlands","Switzerland","CH","NL",{"id":442,"content":710,"color":711},"\u003Cp>Last year, we changed the license of the \u003Ca href=\"https://github.com/directus/directus\">main Directus project\u003C/a> from GPL3 to the BSL 1.1. Just over a year later, we want to share our experience of how the decision making process and implementation went and where we are at with the license now.\u003C/p>\n\u003Cp>To recap, the BSL 1.1 license change meant that:\u003C/p>\n\u003Cul>\n\u003Cli>Production use of Directus is still completely free for all users... unless your legal entity exceeds $5,000,000 USD in total finances per year (you can find a description of &ldquo;total finances&rdquo; in our FAQs).\u003C/li>\n\u003Cli>All Directus source code remained open and available on GitHub.\u003C/li>\n\u003Cli>Non-production use of Directus continued to be free for everyone.\u003C/li>\n\u003Cli>Code released under the new license converts to GPL3 after 3 years.\u003C/li>\n\u003Cli>Directus Cloud projects are unaffected as the license is included.\u003C/li>\n\u003C/ul>\n\u003Ch2>Setting the Scene\u003C/h2>\n\u003Cp>We wanted to ensure that Directus stays around and available to use, which meant we had to address the funding problem&trade;️ and find a solution that allows us to operate with long-term sustainability while staying true to our open source values.\u003C/p>\n\u003Ch3>Big Companies Don&rsquo;t Pay For Open Source\u003C/h3>\n\u003Cp>Before our license change, our only revenue stream was Directus Cloud &mdash; our managed infrastructure SaaS &mdash; and the professional services offered to enterprise customers (support and advisory consulting).\u003C/p>\n\u003Cp>We take pride in making Directus easy to self-host. But this also posed a challenge in that despite our software saving/making our customers money, with no legal requirement for them to contribute back, few ever did.\u003C/p>\n\u003Cp>This is a huge problem for open source generally. With many large corporations quick to use OSS projects, but rarely supporting them (financially, or otherwise).\u003C/p>\n\u003Ch3>Cloud Exclusives Were Distracting\u003C/h3>\n\u003Cp>We turned to the idea of &lsquo;Cloud Exclusives&rsquo; which dedicated some of our engineering time to building features that were only available on our paid Cloud offering.\u003C/p>\n\u003Cp>But this didn&rsquo;t sit right with us for three reasons:\u003C/p>\n\u003Col>\n\u003Cli>We want as many people as possible to benefit from the work we do, and cloud exclusives punish those who self-host.\u003C/li>\n\u003Cli>It was distracting, with much of our effort being focused on creating proprietary extensions, instead of the improving the core project itself.\u003C/li>\n\u003Cli>It placed us in competition with our community of extension authors.\u003C/li>\n\u003C/ol>\n\u003Ch3>A Genuine Exploration Into Sustainability\u003C/h3>\n\u003Cp>It&rsquo;s also important to note that this was not an investor-driven decision. We are fortunate that our amazing investors and board members fully believe in open source as a commercial model.\u003C/p>\n\u003Cp>As a collective, we understand that building a large user base around a project people love can unlock massive growth. After all, it&rsquo;s the individual developers who make and support tech stack decisions for their projects, and they tend to lean on tools they know well.\u003C/p>\n\u003Ch2>Involving the Community\u003C/h2>\n\u003Cp>There have been a good number of projects who have recently adopted permissive-but-not-quite-open-source licenses&hellip; and it usually hasn&rsquo;t gone well. We knew early on that involving our community in finding the ideal path forward for Directus was crucial.\u003C/p>\n\u003Cp>\u003Ca href=\"https://github.com/directus/directus/discussions/17977\">We opened a thread on our GitHub repo and received nearly 200 replies.\u003C/a> We ran Town Hall discussions. And we listened. The decision to re-license was not set, but the need for some change was clear, and by being open in sharing our challenges, we were able to gather and discuss potential solutions with our community.\u003C/p>\n\u003Cp>Most of the suggestions beyond the initial three we offered were ones we&rsquo;d already explored without success, but that only prompted more constructive problem solving discussion.\u003C/p>\n\u003Cp>That means, that when we did eventually decide that a license change was the correct approach for our project, it wasn&rsquo;t a surprise.\u003C/p>\n\u003Ch3>Previous Contributions\u003C/h3>\n\u003Cp>Accepting contributions is an important part to most open source projects, but changing a license with code that others have contributed to can get weird. We got in touch with all previous contributors who had made material contributions to ensure they knew what was happening and that we had their legal consent.\u003C/p>\n\u003Ch3>Why BSL?\u003C/h3>\n\u003Cp>There are a number of popular licenses to choose from, but we chose the BSL because it has the ability to have \u003Cem>custom usage grants\u003C/em>. This allowed us to make the default license \u003Cem>far\u003C/em> more permissive, adding a broad scope of users for whom Directus would be effectively open source.\u003C/p>\n\u003Cp>The BSL has been endorsed by the founder of the Open Source Initiative, Bruce Perens, who we consulted with, and has been successfully used by projects like MariaDB, Couchbase, Cockroach Labs, and Sentry.\u003C/p>\n\u003Ch2>Making the Change\u003C/h2>\n\u003Cp>Directus 10.0.0, released on April 26 2023, marked a significant change in the Directus project &mdash; through a single update to the LICENSE file. It was important to us that the change was not obfuscated or otherwise hidden, so we made it the only change in this version.\u003C/p>\n\u003Cp>For the vast majority of our users, this release did not introduce any change from their prior usage. They continue to access Directus without a paywall and have the added knowledge that the team is enabled to continue building a premium and consistent core product they can deploy for free.\u003C/p>\n\u003Cp>The main difference is that larger companies and governments using Directus in production now were required to financially contribute to the project. This enables our team of full-time engineers to maintain and improve the core platform indefinitely.\u003C/p>\n\u003Cp>Since we had been discussing this change openly a while, and involved our community, many of our users knew change was coming, and we believe this was paramount to navigating it successfully.\u003C/p>\n\u003Ch2>A Year Later\u003C/h2>\n\u003Cp>A year later, and this change has been overwhelmingly positive for our team and our users.\u003C/p>\n\u003Cp>On the product side, we are enabled to &ldquo;just&rdquo; build the best product possible for the benefit of everyone. The following release of Directus after the license change &mdash; 10.1.0 &mdash; contained all of our Cloud-only exclusives&hellip; making them available to everyone.\u003C/p>\n\u003Cp>On the business side, despite our impacted user base is estimated to be under 1%, just two weeks after the change enterprise self-hosted licenses comprised the majority of our new business. This led to phenomenal 200% growth (3x) in our annual recurring revenue 2023.\u003C/p>\n\u003Cp>On the community side, it&rsquo;s working rather well. We continue to have contributions in both our codebase and community. We have developers advocate for their businesses to use Directus in projects, and continue to use it for personal projects.\u003C/p>\n\u003Ch2>Wrapping Up\u003C/h2>\n\u003Cp>We&rsquo;re proud of the way we engaged with the community throughout this change and view a lot of the success as attributable to how involved they were with the decision making. While many other companies we saw adopt BSL or undergo similar transitions of licensing struggled with their community&rsquo;s backlash from the change, that wasn&rsquo;t something we experienced for the most part. In fact, our monthly downloads and GitHub Stars increased after the change!\u003C/p>\n\u003Cp>We understand that the BSL license does not meet all of the \u003Ca href=\"https://opensource.org/osd\">Open Source Initiative&rsquo;s 10 criteria for a license to be open source\u003C/a>, but we and our community understand the fundamental needs of sustainable open source, something which is only solved by \u003Cem>balance\u003C/em>.\u003C/p>\n\u003Cp>We&rsquo;re still learning and discovering how to best enforce this new license, even a year later still operating on an &ldquo;honor system&rdquo; policy that requires trust that our users will self-identify. But we&rsquo;re in no rush, and would rather do things the right way.\u003C/p>\n\u003Cp>As we&rsquo;re seeing more projects adopting this model, we feel reassured that we came to the right decision. The idea of \u003Ca href=\"https://www.theregister.com/2023/12/27/bruce_perens_post_open/\">Post-Open licenses\u003C/a> is becoming more common, and we hope that our successful adoption of one helps educate the larger developer community on what they are and how they work by increasing familiarity.\u003C/p>","foreground",1773850374597]