(window.webpackJsonp=window.webpackJsonp||[]).push([[70],{"3jpk":function(e,t,a){"use strict";a.r(t),a.d(t,"_frontmatter",(function(){return s})),a.d(t,"default",(function(){return m}));var o=a("k1TG"),r=a("8o2o"),p=(a("q1tI"),a("7ljp")),n=a("hhGP"),s=(a("qKvR"),{});void 0!==s&&s&&s===Object(s)&&Object.isExtensible(s)&&!s.hasOwnProperty("__filemeta")&&Object.defineProperty(s,"__filemeta",{configurable:!0,value:{name:"_frontmatter",filename:"src/pages/docs/roadmap-page.mdx"}});var c={_frontmatter:s},i=n.a;function m(e){var t=e.components,a=Object(r.a)(e,["components"]);return Object(p.b)(i,Object(o.a)({},c,a,{components:t,mdxType:"MDXLayout"}),Object(p.b)("h2",{id:"roadmap"},"Roadmap"),Object(p.b)("p",null,"You can find the approximate public roadmap for Superset ",Object(p.b)("a",Object(o.a)({parentName:"p"},{href:"https://github.com/apache-superset/superset-roadmap/projects/1"}),"here"),"."),Object(p.b)("a",{href:"https://github.com/apache-superset/superset-roadmap/projects/1"},Object(p.b)("img",{src:"/images/roadmap.png",style:{maxWidth:"100%",boxShadow:"rgb(170, 170, 170) 0px 0px 3px 1px"}})),Object(p.b)("p",null,"Keep in mind that the roadmap represents only a subset of what's\nahead. Many contributions come directly without ever making it onto the roadmap.\nFind out more about how the roadmap is managed in\n",Object(p.b)("a",Object(o.a)({parentName:"p"},{href:"https://github.com/apache/superset/issues/10894"}),"SIP (Superset Improvement Proposal) 53")))}void 0!==m&&m&&m===Object(m)&&Object.isExtensible(m)&&!m.hasOwnProperty("__filemeta")&&Object.defineProperty(m,"__filemeta",{configurable:!0,value:{name:"MDXContent",filename:"src/pages/docs/roadmap-page.mdx"}}),m.isMDXComponent=!0}}]);
//# sourceMappingURL=component---src-pages-docs-roadmap-page-mdx-f7b560794983f3a0cad2.js.map