index.ejs 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. <section id="hero" class="IndexHero">
  2. <img class="IndexHero-logo" title="Uppy" alt="Uppy" src="<%- config.logo_medium %>">
  3. <h1 class="IndexHero-title">
  4. Sleek, modular open source JavaScript file uploader
  5. </h1>
  6. <div class="IndexHero-description">
  7. <%- config.description %>
  8. </div>
  9. <div class="IndexHero-buttons">
  10. <a href="/docs/" class="button button--cta">Get Started</a>
  11. <a href="https://github.com/transloadit/uppy" class="button button--secondary">
  12. Uppy on GitHub
  13. <span class="GithubStars">★ <%- partial('partials/generated_stargazers') %></span>
  14. </a>
  15. </div>
  16. </section>
  17. <section class="IndexLogos">
  18. <div class="IndexLogos-container">
  19. <h2 class="IndexLogos-title">Integrates well with</h2>
  20. <div class="IndexLogos-logos">
  21. <a class="IndexLogos-item IndexLogos-item--js" href="/docs/" title="Vanilla JS">
  22. <%- inline_svg('/images/integrations/js.svg') %>
  23. </a>
  24. <a class="IndexLogos-item IndexLogos-item--react" href="/docs/react/" title="React">
  25. <%- inline_svg('/images/integrations/react.svg') %>
  26. </a>
  27. <a class="IndexLogos-item IndexLogos-item--vue" href="/docs/vue/" title="Vue.js">
  28. <%- inline_svg('/images/integrations/vue.svg') %>
  29. </a>
  30. <a class="IndexLogos-item IndexLogos-item--svelte" href="/docs/svelte" title="Svelte">
  31. <%- inline_svg('/images/integrations/svelte.svg') %>
  32. </a>
  33. </div>
  34. </div>
  35. </section>
  36. <section class="IndexDemo">
  37. <div class="IndexDemo-tabContent">
  38. <div class="TabPane TabPane--active" id="live-demo">
  39. <div class="IndexDemo-uppyWrapper">
  40. <div class="IndexDemo-uppy" id="demo"></div>
  41. </div>
  42. </div> <!-- /live-demo -->
  43. <div class="TabPane" id="video">
  44. <div class="IndexDemo-video">
  45. <video autoplay loop muted playsinline>
  46. <source src="/images/uppy-2-0-demo-aug-2021.mp4" type="video/mp4">
  47. Your browser does not support the video tag, you can <a href="/images/uppy-2-0-demo-aug-2021.mp4">download the video</a>
  48. to watch it.
  49. </video>
  50. </div>
  51. </div> <!-- /video -->
  52. <div class="TabPane" id="code">
  53. <div class="IndexDemo-code">
  54. <%- partial('partials/frontpage-code-sample') %>
  55. </div>
  56. </div> <!-- /code -->
  57. </div>
  58. <ul class="Tabs">
  59. <li class="Tabs-item">
  60. <a class="Tabs-link Tabs-link--active" href="#live-demo">
  61. <span class="Tabs-icon">
  62. <svg width="11" height="15" viewBox="0 0 11 15">
  63. <path d="M0 0v12.5L3.667 9l3.143 6 2.619-1.5L5.762 8 11 7.5z" fill-rule="evenodd" />
  64. </svg>
  65. </span>
  66. Live demo
  67. </a>
  68. </li>
  69. <li class="Tabs-item">
  70. <a class="Tabs-link" href="#video">
  71. <span class="Tabs-icon">
  72. <svg width="19" height="19" viewBox="0 0 19 19">
  73. <path
  74. d="M9.5 19a9.5 9.5 0 1 1 0-19 9.5 9.5 0 0 1 0 19zm0-2a7.5 7.5 0 1 0 0-15 7.5 7.5 0 0 0 0 15zM14 9.5l-6.75 3.897V5.603L14 9.5z"
  75. fill-rule="nonzero" />
  76. </svg>
  77. </span>
  78. Video
  79. </a>
  80. </li>
  81. <li class="Tabs-item">
  82. <a class="Tabs-link" href="#code">
  83. <span class="Tabs-icon">
  84. <svg width="29" height="17" viewBox="0 0 29 17">
  85. <path
  86. d="M8.45 5.748L2.402 8.484 8.45 11.22v2.16L.17 9.6V7.44l8.28-3.78v2.088zm11.34 5.544l6.048-2.736L19.79 5.82V3.66l8.28 3.78V9.6l-8.28 3.78v-2.088zm-9.7 5.308L15.85.4h2.16l-5.76 16.2h-2.16z"
  87. fill-rule="nonzero" />
  88. </svg>
  89. </span>
  90. Code
  91. </a>
  92. </li>
  93. </ul>
  94. </section>
  95. <section class="IndexFeatures">
  96. <h2>Features</h2>
  97. <ul class="IndexFeatures-list">
  98. <li><strong>Lightweight</strong> and modular, plugin-based architecture, easy on dependencies <img width="16" align="absmiddle" src="/images/emojis/zap.png" /></li>
  99. <li>Large uploads survive network hiccups thanks to <strong>resumable file uploads</strong> via the open <strong><a href="https://tus.io/">tus</a></strong> standard</li>
  100. <li><img width="16" align="absmiddle" src="/images/emojis/battery.png" /> Saves battery and data plan by letting users pick files from <strong>Webcam, Dropbox, Google Drive and Instagram</strong>, while letting servers do the heavy lifting via <strong><a href="/docs/companion/">Companion</a></strong></li>
  101. <li>Works great with the file encoding and processing backend from <strong><a href="https://transloadit.com/">Transloadit</a></strong>, but also works great without <img width="16" align="absmiddle" src="/images/emojis/transloadit.png" /></li>
  102. <li><strong>Open source and driven by the community</strong> We listen closely and adjust the project based on your feedback <img width="16" align="absmiddle" src="/images/emojis/heart.png" /></li>
  103. <li><strong>Sleek user interface <img width="16" align="absmiddle" src="/images/emojis/sparkles.png" /></strong></li>
  104. <li>File recovery (after a browser crash or accidental navigation) via <strong><a href="/docs/golden-retriever/">Golden Retriever</a></strong></li>
  105. <li>Speaks <strong><a href="/docs/locales/#List-of-locale-packs">multiple languages</a></strong> (i18n) <img width="16" align="absmiddle" src="/images/emojis/earth_africa.png" /></li>
  106. <li>Built with accessibility in mind</li>
  107. <li><strong>Free to the world, forever</strong></li>
  108. <li>Cute as a puppy, also accepts cat pictures <img width="16" align="absmiddle" src="/images/emojis/dog.png" /></li>
  109. </ul>
  110. </section>
  111. <section class="IndexReviews">
  112. <ul class="IndexReviews-list">
  113. <li class="IndexReviews-item">
  114. <a class="IndexReviews-link" href="https://books.producthunt.com/bestof2017" target="_blank"
  115. rel="noreferrer noopener">
  116. <div class="IndexReviews-imgWrapper">
  117. <img class="IndexReviews-img" src="/images/testimonials/producthunt.png"
  118. srcset="/images/testimonials/producthunt@2x.png 2x" alt="Product Hunt">
  119. </div>
  120. The Best Product Launches
  121. </a>
  122. </li>
  123. <li class="IndexReviews-item">
  124. <a class="IndexReviews-link" href="https://stackshare.io/posts/top-developer-tools-2017" target="_blank" rel="noreferrer noopener">
  125. <div class="IndexReviews-imgWrapper">
  126. <img class="IndexReviews-img" src="/images/testimonials/stackshare.png" srcset="/images/testimonials/stackshare@2x.png 2x" alt="StackShare">
  127. </div>
  128. Top 10 tools of the year
  129. </a>
  130. </li>
  131. <li class="IndexReviews-item">
  132. <a class="IndexReviews-link" href="https://twitter.com/smashingmag/status/1097870169043546112" target="_blank" rel="noreferrer noopener">
  133. <div class="IndexReviews-imgWrapper">
  134. <img class="IndexReviews-img" src="/images/testimonials/smashing-magazine.png" srcset="/images/testimonials/smashing-magazine@2x.png 2x" alt="Smashing Magazine">
  135. </div>
  136. “Soooo useful”
  137. </a>
  138. </li>
  139. </ul>
  140. </section>
  141. <section class="IndexLogos IndexLogos--customers">
  142. <div class="IndexLogos-container">
  143. <h2 class="IndexLogos-title">Used by</h2>
  144. <div class="IndexLogos-logos">
  145. <a href="https://www.coursera.org/" class="IndexLogos-item IndexLogos-item--coursera">
  146. <%- inline_svg('/images/featured-customers/coursera.svg') %>
  147. </a>
  148. <a href="https://www.photobox.com/" class="IndexLogos-item IndexLogos-item--photobox">
  149. <%- inline_svg('/images/featured-customers/photobox.svg') %>
  150. </a>
  151. <a href="https://issuu.com/" class="IndexLogos-item IndexLogos-item--issuu">
  152. <%- inline_svg('/images/featured-customers/issuu.svg') %>
  153. </a>
  154. <a href="https://zulipchat.com/" class="IndexLogos-item IndexLogos-item--zulip">
  155. <%- inline_svg('/images/featured-customers/zulip.svg') %>
  156. </a>
  157. </div>
  158. <div class="IndexLogos-join">
  159. Using Uppy in your project? <a href="https://github.com/transloadit/uppy/issues/769" rel="noreferrer noopener" target="_blank">Let us know ›</a>
  160. </div>
  161. </div>
  162. </section>
  163. <section class="IndexActivity">
  164. <h2>Activity Feed</h2>
  165. <div class="on-the-githubs" data-event-source="repos/transloadit/uppy">Loading...</div>
  166. </section>
  167. <section>
  168. <%- partial('partials/social') %>
  169. </section>
  170. <footer class="IndexFooter">
  171. <p><img class="IndexFooter-logo" title="Uppy" alt="Uppy" src="<%- config.logo_medium %>"></p>
  172. <p>Released under the <a href="http://opensource.org/licenses/MIT" rel="noreferrer noopener" target="_blank">MIT License</a> ⋅ <a href="/privacy-policy/">Privacy Policy</a></p>
  173. <p>© <%- date(Date.now(), 'YYYY') %> <a href="https://transloadit.com" target="_blank">Transloadit</a></p>
  174. </footer>
  175. <link href="https://releases.transloadit.com/uppy/v2.0.2/uppy.min.css" rel="stylesheet">
  176. <script src="https://releases.transloadit.com/uppy/v2.0.2/uppy.min.js"></script>
  177. <script>
  178. var TUS_ENDPOINT = 'https://tusd.tusdemo.net/files/'
  179. var COMPANION_ENDPOINT = 'http://localhost:3020'
  180. if (location.hostname === 'uppy.io') {
  181. COMPANION_ENDPOINT = '//companion.uppy.io'
  182. }
  183. var uppy = new Uppy.Core({ debug: true })
  184. .use(Uppy.Dashboard, {
  185. target: '#demo',
  186. inline: true,
  187. metaFields: [
  188. { id: 'license', name: 'License', placeholder: 'specify license' },
  189. { id: 'caption', name: 'Caption', placeholder: 'describe what the image is about' }
  190. ]
  191. })
  192. .use(Uppy.GoogleDrive, { target: Uppy.Dashboard, companionUrl: COMPANION_ENDPOINT })
  193. .use(Uppy.Instagram, { target: Uppy.Dashboard, companionUrl: COMPANION_ENDPOINT })
  194. .use(Uppy.Dropbox, { target: Uppy.Dashboard, companionUrl: COMPANION_ENDPOINT })
  195. // .use(Uppy.Box, { target: Uppy.Dashboard, companionUrl: COMPANION_ENDPOINT })
  196. .use(Uppy.Facebook, { target: Uppy.Dashboard, companionUrl: COMPANION_ENDPOINT })
  197. .use(Uppy.OneDrive, { target: Uppy.Dashboard, companionUrl: COMPANION_ENDPOINT })
  198. .use(Uppy.Webcam, { target: Uppy.Dashboard })
  199. .use(Uppy.Url, { target: Uppy.Dashboard, companionUrl: COMPANION_ENDPOINT })
  200. .use(Uppy.Tus, { endpoint: TUS_ENDPOINT})
  201. uppy.on('success', function (files) {
  202. console.log('Upload complete! We’ve uploaded these files:', files)
  203. })
  204. </script>