index.ejs 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  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="IndexDemo">
  18. <div class="IndexDemo-tabContent">
  19. <div class="TabPane TabPane--active" id="live-demo">
  20. <div class="IndexDemo-uppyWrapper">
  21. <div class="IndexDemo-uppy" id="demo"></div>
  22. </div>
  23. </div> <!-- /live-demo -->
  24. <div class="TabPane" id="video">
  25. <div class="IndexDemo-video">
  26. <video autoplay loop muted playsinline>
  27. <source src="/images/uppy-demo-oct-2018.mp4" type="video/mp4">
  28. Your browser does not support the video tag, you can <a href="/images/uppy-demo-oct-2018.mp4">download the video</a>
  29. to watch it.
  30. </video>
  31. </div>
  32. </div> <!-- /video -->
  33. <div class="TabPane" id="code">
  34. <div class="IndexDemo-code">
  35. <%- partial('partials/frontpage-code-sample') %>
  36. </div>
  37. </div> <!-- /code -->
  38. </div>
  39. <ul class="Tabs">
  40. <li class="Tabs-item">
  41. <a class="Tabs-link Tabs-link--active" href="#live-demo">
  42. <span class="Tabs-icon">
  43. <svg width="11" height="15" viewBox="0 0 11 15">
  44. <path d="M0 0v12.5L3.667 9l3.143 6 2.619-1.5L5.762 8 11 7.5z" fill-rule="evenodd" />
  45. </svg>
  46. </span>
  47. Live demo
  48. </a>
  49. </li>
  50. <li class="Tabs-item">
  51. <a class="Tabs-link" href="#video">
  52. <span class="Tabs-icon">
  53. <svg width="19" height="19" viewBox="0 0 19 19">
  54. <path
  55. 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"
  56. fill-rule="nonzero" />
  57. </svg>
  58. </span>
  59. Video
  60. </a>
  61. </li>
  62. <li class="Tabs-item">
  63. <a class="Tabs-link" href="#code">
  64. <span class="Tabs-icon">
  65. <svg width="29" height="17" viewBox="0 0 29 17">
  66. <path
  67. 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"
  68. fill-rule="nonzero" />
  69. </svg>
  70. </span>
  71. Code
  72. </a>
  73. </li>
  74. </ul>
  75. </section>
  76. <section class="IndexFeatures">
  77. <h2>Features</h2>
  78. <ul class="IndexFeatures-list">
  79. <li><strong>Lightweight</strong> and modular, plugin-based architecture, easy on dependencies <img width="16" align="absmiddle" src="/images/emojis/zap.png" /></li>
  80. <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>
  81. <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>
  82. <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>
  83. <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>
  84. <li><strong>Sleek user interface <img width="16" align="absmiddle" src="/images/emojis/sparkles.png" /></strong></li>
  85. <li>File recovery (after a browser crash or accidental navigation) via <strong><a href="/docs/golden-retriever/">Golden Retriever</a></strong></li>
  86. <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>
  87. <li>Built with accessibility in mind</li>
  88. <li><strong>Free to the world, forever</strong></li>
  89. <li>Cute as a puppy, also accepts cat pictures <img width="16" align="absmiddle" src="/images/emojis/dog.png" /></li>
  90. </ul>
  91. </section>
  92. <section class="IndexReviews">
  93. <ul class="IndexReviews-list">
  94. <li class="IndexReviews-item">
  95. <a class="IndexReviews-link" href="https://books.producthunt.com/bestof2017" target="_blank"
  96. rel="noreferrer noopener">
  97. <div class="IndexReviews-imgWrapper">
  98. <img class="IndexReviews-img" src="/images/testimonials/producthunt.png"
  99. srcset="/images/testimonials/producthunt@2x.png 2x" alt="Product Hunt">
  100. </div>
  101. The Best Product Launches
  102. </a>
  103. </li>
  104. <li class="IndexReviews-item">
  105. <a class="IndexReviews-link" href="https://stackshare.io/posts/top-developer-tools-2017" target="_blank" rel="noreferrer noopener">
  106. <div class="IndexReviews-imgWrapper">
  107. <img class="IndexReviews-img" src="/images/testimonials/stackshare.png" srcset="/images/testimonials/stackshare@2x.png 2x" alt="StackShare">
  108. </div>
  109. Top 10 tools of the year
  110. </a>
  111. </li>
  112. <li class="IndexReviews-item">
  113. <a class="IndexReviews-link" href="https://twitter.com/smashingmag/status/1097870169043546112?lang=ca" target="_blank" rel="noreferrer noopener">
  114. <div class="IndexReviews-imgWrapper">
  115. <img class="IndexReviews-img" src="/images/testimonials/smashing-magazine.png" srcset="/images/testimonials/smashing-magazine@2x.png 2x" alt="Smashing Magazine">
  116. </div>
  117. “Soooo useful”
  118. </a>
  119. </li>
  120. </ul>
  121. </section>
  122. <section class="IndexActivity">
  123. <h2>Activity Feed</h2>
  124. <div class="on-the-githubs" data-event-source="repos/transloadit/uppy">Loading...</div>
  125. </section>
  126. <section>
  127. <%- partial('partials/social') %>
  128. </section>
  129. <footer class="IndexFooter">
  130. <p><img class="IndexFooter-logo" title="Uppy" alt="Uppy" src="<%- config.logo_medium %>"></p>
  131. <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>
  132. <p>© <%- date(Date.now(), 'YYYY') %> <a href="https://transloadit.com" target="_blank">Transloadit</a></p>
  133. </footer>
  134. <link href="https://transloadit.edgly.net/releases/uppy/v1.9.3/uppy.min.css" rel="stylesheet">
  135. <script src="https://transloadit.edgly.net/releases/uppy/v1.9.3/uppy.min.js"></script>
  136. <script>
  137. var TUS_ENDPOINT = 'https://master.tus.io/files/'
  138. var COMPANION_ENDPOINT = 'http://localhost:3020'
  139. if (location.hostname === 'uppy.io') {
  140. COMPANION_ENDPOINT = '//companion.uppy.io'
  141. }
  142. var uppy = Uppy.Core({ debug: true })
  143. .use(Uppy.Dashboard, {
  144. target: '#demo',
  145. inline: true,
  146. replaceTargetContent: true,
  147. metaFields: [
  148. { id: 'license', name: 'License', placeholder: 'specify license' },
  149. { id: 'caption', name: 'Caption', placeholder: 'describe what the image is about' }
  150. ]
  151. })
  152. .use(Uppy.GoogleDrive, { target: Uppy.Dashboard, companionUrl: COMPANION_ENDPOINT })
  153. .use(Uppy.Instagram, { target: Uppy.Dashboard, companionUrl: COMPANION_ENDPOINT })
  154. .use(Uppy.Dropbox, { target: Uppy.Dashboard, companionUrl: COMPANION_ENDPOINT })
  155. .use(Uppy.Webcam, { target: Uppy.Dashboard })
  156. .use(Uppy.Url, { target: Uppy.Dashboard, companionUrl: COMPANION_ENDPOINT })
  157. .use(Uppy.Tus, { endpoint: TUS_ENDPOINT})
  158. uppy.on('success', function (files) {
  159. console.log('Upload complete! We’ve uploaded these files:', files)
  160. })
  161. </script>