The HTML Presentation Framework




reveal.js is an open source HTML presentation framework. It enables anyone with a web browser to create fully featured and beautiful presentations for free. Check out the live demo.

The framework comes with a broad range of features including nested slides, Markdown support, Auto-Animate, PDF export, speaker notes, LaTeX support, syntax highlighted code and much more.

Get Started


The full reveal.js documentation is available at

Online Editor

Want to create your presentation using a visual editor? Try the official reveal.js presentation platform for free at It's made by the same people behind reveal.js.


MIT licensed

Copyright (C) 2011-2020 Hakim El Hattab,

  • Vertically fill screen 100%?

    Vertically fill screen 100%?

    I have been playing with the CSS for this for days upon days now and have yet to be able to get the slides to fill the screen vertically. I tried adding a #reveal and .reveal in the css and sizing that, didn't work. I tried adding attributes to .reval .slides, couldn't get that to work.

    Has anyone been able to fill the vertical screen size 100%?

    opened by kapelskic 32
  • Help with Master/Client presentation

    Help with Master/Client presentation

    I'm trying to use the client/master presentation "thing", however, for me this all very new! I have installed node.js, installed "npm install" and runned "node plugin/multiplex". It is also possible for me to run the presentation from the localhost.

    After this it goes "wrong" however, I use an FTP server to put my presentation online. But I'm not able to control this presentation or whatsoever! It is even possible to run this presentation manually (which isn't the purpose I guess). the presentation is on So any advice is welcome!!! The only difference between the index.html from the internet with my localhost index.html is the configuration which is:

                controls: false,
                progress: true,
                history: true,
                center: true,
                 history: true,
                theme: Reveal.getQueryHash().theme, // available themes are in /css/theme
                transition: Reveal.getQueryHash().transition || 'default', // default/cube/page/concave/zoom/linear/fade/none
                multiplex: {
                // Example values. Generate your own.
                secret: 13719205123578474166, // Obtained from the server. Gives this (the master) control of the presentation
                id: '01e56dfefbc7d9af', // Obtained from server
                url: '' // Location of server
                // Optional libraries used to extend on reveal.js
                dependencies: [
                    { src: 'lib/js/classList.js', condition: function() { return !document.body.classList; } },
                    { src: 'plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
                    { src: 'plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
                    { src: 'plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } },
                    { src: 'plugin/zoom-js/zoom.js', async: true, condition: function() { return !!document.body.classList; } },
                    { src: '//', async: true },
                    { src: 'plugin/multiplex/master.js', async: true },
                    { src: 'plugin/notes/notes.js', async: true, condition: function() { return !!document.body.classList; } }
                    // { src: 'plugin/search/search.js', async: true, condition: function() { return !!document.body.classList; } }
                    // { src: 'plugin/remotes/remotes.js', async: true, condition: function() { return !!document.body.classList; } }

    Any help or further directions would be very welcome because I'm very enthousiastic about the whole program!



    opened by HHoofs 29
  • Change the style transition between two slides?

    Change the style transition between two slides?

    Is there any exemple of how can I change the default transition style for a specific slides? Can I define a "local transition style" between two slides?

    Thanks for advance!

    opened by xbelanch 29
  • New PDF export issue

    New PDF export issue

    I have been using, and loving, reveal.js and the pdf export functionality for a couple of weeks now, but something strange started happening yesterday, I think after a chrome update (I'm currently running Google Chrome version 33.0.1750.117). The issue is that the currently selected slide prints to pdf fine, but several slides before or after it end up blank or with just the background. After some number of slides it starts working as expected again. Just to check and see if it was my local copy somehow being corrupted, I printed the example presentation from the official site, and got this.

    There are no errors in the javascript log, and everything looks normal except printing. I'm at a loss, any thoughts on how I might debug this?

    opened by trws 27
  • SVG animation

    SVG animation

    I build a lot of SVG files with Inkscape to display figures inside reveal.js slides. I wonder to know if there is a way to animate these SVG ?

    For example I would like to display a group in the SVG file first and then display another group by pressing "space" or "right arrow".

    Thank you

    opened by hadim 25
  • Integrating Mermaid diagrams into Markdown slides

    Integrating Mermaid diagrams into Markdown slides

    Hey guys,

    Any thoughts on integrating Mermaid ( into Markdown slides?

    Basically let's say I have a giant Markdown doc used for slides, with separators etc. How would I be able to add a Mermaid graph, like this:

    <div class="mermaid">
    graph LR;
        A[Hard edge]-->|Link text|B(Round edge);
        C-->|One|D[Result one];
        C-->|Two|E[Result two];

    without having reveal.js interpret and translate the stuff between the div's, and just pass the stuff in between straight to mermaid?

    plugin markdown 
    opened by velvia 23
  • reveal.js 4.0.0

    reveal.js 4.0.0

    I've been hard at work on reveal.js 4.0.0 for a while now and wanted to share the progress so far. It's not ready to merge just yet, but it's getting close.

    The main changes in this release are:

    • New website, docs and logo
    • Modernized reveal.js core. The old reveal.js file with 6.2k lines of code (!) was refactored and split into ES modules.
    • You can now run multiple reveal.js presentations on the same page.
      import Reveal from 'reveal.js'
      let deck1 = new Reveal( document.querySelector( '.deck1' ) );
      let deck2 = new Reveal( document.querySelector( '.deck2' ) );
      deck1.initialize({ embedded: true });
      deck2.initialize({ embedded: true });
    • Converted all plugins to ES modules so that they can be bundled with reveal.js.
    • All plugins and reveal.js core are transpiled to ES5 for situations where you need to support older browsers.
    • Switched build systems from grunt to gulp (using rollup for bundling).
    • Added a major new Auto-Animate feature.
    • Added a new slidetransitionend event.
    • Reveal.add/removeEventListener -> Reveal.on/off.
    • Added support for code line numbers and highlights using Markdown
    • The initialize method now returns a promise that resolves when reveal.js has started Reveal.initialize().then( () => console.log( 'ready' ) ).
    • The highlight.js and marked libraries are now installed from npm. They were previously hard coded inside their corresponding plugins in this repository.

    There are a few breaking changes in this release:

    • All compiled assets (reveal.js, reveal.css, themes) have moved to /dist.
    • Print stylesheets are now baked into the reveal.css file so there is no need to separately include them in the presentation HTML.
    • The multiplex and server side speakers notes plugins have moved out to separate repos and can be installed via npm:

    Docs, upgrade instructions and a new will follow when it's ready to merge but hopefully this gives you an idea of what's to come! ✌️

    opened by hakimel 23
  • display pacing advice based on slide timings

    display pacing advice based on slide timings

    Display advice on whether the current pace of the presentation is on track for the right timing, and if not, whether the presenter should speed up or has the luxury of slowing down.

    By default this assumes 120 seconds per slide, which can be a reasonable rule of thumb, but this can be configured by the defaultTiming parameter in the Reveal configuration block, and also per slide <section> by setting the data-timing attribute. Both values are the number of seconds.

    Here is a screenshot:


    The pacing advice changes red when you are behind, and blue when ahead.

    opened by aspiers 20
  • added page number feature

    added page number feature

    Added a .pagenum option that displays both horizontal and vertical page numbers on upper right of page.

    opened by sressler 20
  • PDF export is broken : slides overlap

    PDF export is broken : slides overlap

    C.f. Visible in Chrome 43 & Firefox 38. Sorry to not give more details, but I think the result after the link jump is self-explanatory. I have no idea what is causing this, maybe css/print/pdf.css is broken ?

    opened by Lucas-C 19
  • the speaker view doesn't show on the demo page

    the speaker view doesn't show on the demo page

    The speaker view does not show up when I press "s" key as instructed on one of the slides on the demo page.

    opened by steelman 0
  • Trying to get in touch regarding a security issue

    Trying to get in touch regarding a security issue

    Hey there!

    I'd like to report a security issue but cannot find contact instructions on your repository.

    If not a hassle, might you kindly add a file with an email, or another contact method? GitHub recommends this best practice to ensure security issues are responsibly disclosed, and it would serve as a simple instruction for security researchers in the future.

    Thank you for your consideration, and I look forward to hearing from you!

    (cc @huntr-helper)

    opened by JamieSlome 2
  • Support multiple aside notes elements per slide

    Support multiple aside notes elements per slide

    So far, multiple notes per slide are only supported if they are attached to fragments (without fragments, only the first aside notes element on a slide is displayed). With this commit, the contents of all notes on a slide are displayed (except for fragments with notes, for which, as before, only each fragment's first/single note is displayed).

    opened by lechten 1
  • Enable r-stack to work inline

    Enable r-stack to work inline

    If r-stack is used with spans it forces them to work in block as if they were divs. It would be nice, for example, to swap words in a sentence.

    opened by kevreth 0
  • Speaker Note

    Speaker Note

    When a text inside Notes: contains the word Notes: reveal js can't parse and show the speaker's note correctly. parse it as a body instead of a note.

    I tested it with Notes: anywhere in the text and it doesn't work


    "data-separator-notes": "^Notes:",

    MD sample:

    * Docker also has server-side container frameworks for Linux and Windows
    * Windows versions run on top of Hyper-V
    Instructor Notes:
    Docker's name is almost synonymous with containers.   While arguably Docker's contribution
    is not the largest or the most significant to the container ecosystem, it is the one that
    is closest to the developer -- as the developer relies on Docker tools to create a container
    application images. 




    opened by mfoolady 0
  • Resync the slides (sections)

    Resync the slides (sections)

    Is there a way to get reveal.js to re-read all the sections in the reveal element? (After throwing away what was already read?).

    Can't get it to work. In version 4.1.3. Any help here appreciated.

    Ps: Tried removing all the sections and adding the new sections and calling 'sync'. Didn't help.

    opened by h-tendy 0
  • Drag objects around

    Drag objects around

    Is there a way to drag objects (title, equations, figures) during a presentation?

    opened by hgrecco 1
  • Question: content from headless cms

    Question: content from headless cms

    👋 I'm prototyping how to build presentations that pull content from headless CMS. Is there any API in reveal.js that can help with this? Something similar to API in, - which solves the problem theoretically since I can convert responses from headless cms to deck json. I wanted to try a simple version and run everything locally since I want to experiment with content transformations. Cheers! Roman

    opened by OperationalFallacy 0
  • keyCodes are deprecated

    keyCodes are deprecated

    keyCode is deprecated, but the binding mechanism relies on keyCodes. I ran into this recently because the keyCode for + depends on what keyboard you're using (on QWERTY, it's the same as =, while other QWERTZ keyboards have a primary + key).

    I believe it would be possible to modify Reveal.addKeyBinding to use key while being backward compatible: if keyCode is absent in the binding object, check for match against key instead. Reveal.removeKeyBinding can be extended too: if the argument is a number, assume it's a keyCode, while if it's a string, assume it's a key. Reveal.configure is harder, though, because we can't distinguish between keyCode of 7 vs. a key of "7". Perhaps there should be a different configuration such as keys to replace/augment the current keyboard?

    opened by edemaine 0
  • Plugins errors after gulp build process

    Plugins errors after gulp build process

    I'm getting plugins errors that fail running my presentation.

    notes.js:1 Uncaught TypeError: R is not a function
        at notes.js:1
        at notes.js:1
        at notes.js:1
    (anonymous) @ notes.js:1
    (anonymous) @ notes.js:1
    (anonymous) @ notes.js:1
    markdown.js:1 Uncaught TypeError: I is not a function
        at markdown.js:1
        at markdown.js:1
        at markdown.js:1
    (anonymous) @ markdown.js:1
    (anonymous) @ markdown.js:1
    (anonymous) @ markdown.js:1
    highlight.js:1 Uncaught TypeError: qs is not a function
        at highlight.js:1
        at highlight.js:1
        at highlight.js:1
    (anonymous) @ highlight.js:1
    (anonymous) @ highlight.js:1
    (anonymous) @ highlight.js:1
    (index):36 Uncaught ReferenceError: RevealMarkdown is not defined
        at (index):36

    Reveal.js 7.1.2 System: Windows 10 + node v14.15.4 + npm 7.20.0

    Steps to repdroduce: Download 7.1.2 zip archive (or master) npm i, npm run build, npm run start Open localhost:8000 and see the errors in a browser console.

    Replacing the plugins from the archive resolves the issue.

    opened by kovart 2
  • 4.1.2(Jun 9, 2021)


    • Adds support for data-auto-animate-restart and data-auto-animate-id. These properties give you finer control over which slides that should auto-animate between each other (@coffeenotfound in #2896).
    • Theme properties are now available as CSS variables, making them easy to override. Full list of variables (#2740 + #2968). Here's an example you can drop into your presentation's HTML:
    <style type="text/css">
    :root {
      --r-background-color: indigo;
      --r-main-color: #f5f5f5;
      --r-main-font: monospace;


    • Markdown enabled speaker notes (<aside class="notes" data-markdown>) are no longer visible on-slide.
    Source code(tar.gz)
    Source code(zip)
  • 4.1.1(May 20, 2021)

    Mostly bug fixes and enhancements 🐛


    • Adds support for Node.js 16.
    • data-background-image now accepts multiple images (#2940).
    • New Markdown config option animateLists — automatically turns all lists into stepped fragments (#2956).
    • Reduce the tab size in code blocks from 8 to 2.
    • More accurate calculation of which slide to jump to when clicking on the progress bar (#2836).
    • Optimize DOM interactions and reduce forced layouts when exporting to PDF (#2843).


    • Video/audio inside of a fragment now stop playing when the fragment is hidden.
    • Markdown is now split into individual slides by the default separator (---) as advertised.
    • The r-fit-text layout helper now sizes text correctly in PDF exports.
    • Fixes an issue where some slide-specific transitions were incorrectly overridden by the global transition setting.
    • The has-dark-background helper class now works when using named colors for data-background-color (#2933).
    Source code(tar.gz)
    Source code(zip)
  • 4.1.0(Oct 12, 2020)


    • New: Add data-visibility="hidden" to a slide to hide it from view. Docs & examples
    • New: Add the r-fit-text class to make a text node grow to be as large as possible without overflowing the slide. Docs & examples
    • The configured slide width/height is now exposed as CSS variables (--slide-width/--slide-height).
    • The shuffle config option now shuffles vertical slides as well.
    • All themes now invert the text color based on the current slide background color.
    • Include /css and /js in npm package.


    • Don't append #/ to the URL on first slide.
    • Don't fill the progress bar when there's only one slide in a deck
    • Correct slide count when using data-visibility="uncounted" (#2675)
    Source code(tar.gz)
    Source code(zip)
  • 4.0.2(May 29, 2020)


    • Enables caching for JavaScript builds, making subsequent builds ~50% faster.
    • In auto-sliding presentations, the data-autoslide attribute now takes precedence over automatic detection of <video> durations.
    • Remove overzealous reset styles when printing to PDF.
    • Reveal.configure and Reveal.isReady are now available in the pre-initialized reveal.js API, to match v3.x behavior.
    • Switches to serving demo presentation assets from a CDN.

    Bug fixes

    • Fixes polyfills and adds IE 11 support.
    • Fixes the progress bar direction in right-to-left mode.
    Source code(tar.gz)
    Source code(zip)
  • 4.0.1(May 25, 2020)

    Bug fixes

    • Fixed issues when printing speaker notes to PDF (#2671 by @s-l-lee)
    • Fixed incorrect auto-animations when there are multiple auto-animated presentations on the same page
    Source code(tar.gz)
    Source code(zip)
  • 4.0.0(May 20, 2020)

    Breaking Changes 🚨

    This release includes a small number of breaking changes. Please read the Upgrade Instructions if you want to migrate an existing presentation.


    • New website, docs and logo! 🚀
    • Auto-Animate lets you create complex animations by automatically transitioning between matched elements across slides. Duration, delay and easing can be set on a per-slide or per-element basis.
    • We now support multiple presentations on the same page.
      • This also introduces a new embedded config option, which allows presentations to reside within a portion of a page. Previously reveal.js always covered 100% of the page width and height.
      • The new keyboardCondition: 'focused' config option lets presentations capture keyboard events only when they're focused by the viewer.
    • The reveal.js core and built-in plugins have been rewritten as ES modules. This makes the project easier to maintain and makes reveal.js itself easier to include in a bundle. Two bundles are provided:
      • dist/reveal.js uses UMD and has broad cross browser support (ES5).
      • dist/reveal.esm.js is an ES module. More info
    • Code highlights are now automatically scrolled into view and it looks soooo good. You've got to try it out.


    • The Reveal.initialize method now returns a promise that resolves once reveal.js is ready and all plugins have finished initializing.
    • Switches build systems from to gulp, using rollup for bundling.
    • Moves all compiled CSS (reveal.css, reset.css and themes) from css/ to dist/. See Upgrade Instructions.
    • Moves all print CSS into reveal.js. The old script-based print styles can be removed. by @quilicicf
    • Adds a new slidetransitionend event.
    • Adds a new r-stack layout helper for placing elements on top of each other.
    • Adds support for data-visibility="uncounted" to exclude slides from the progress bar and slide number count. #2543 by @lassepe
    • Adds Reveal.getComputedSlideSize API method.
    • Renames the Reveal.addEventListener and Reveal.removeEventListener API methods to Reveal.on and Old names are aliased for backwards compatibility.
    • Removes the default border style from <img>s. Can be added with the r-frame class.
    • Removes bower.json.


    • New syntax for registering plugins.
    • All built-in plugins—such as markdown and highlight—are now available as ES modules. More info
    • Notes: No longer depends on resolving an external notes.html file to work. Everything is baked into the plugin JS.
    • Highlight: Upgraded to highlight.js 10.0.1.
    • Highlight: Moved highlight themes from lib/css/monokai.css to plugin/highlight/monokai.css.
    • Highlight: 'highlight.js' library is now installed from npm instead of being saved in the repo.
    • Markdown: Support for line numbers and highlights in syntax highlighted code.
    • Markdown: Support for boolean data- attributes. by @Bagira80
    • Markdown: 'marked' library is now installed from npm instead of being saved in the repo.
    • Multiplex: Moved out to
    • Notes Server: Moved out to

    Bug fixes

    • Fixes a bug that prevented links from working in exported PDFs. #2628 by @telliott22
    • Fixes a bug where navigationMode: 'linear' incorrectly hid valid vertical directions. #2582 by @earboxer
    • Fixes an issue that caused reveal.js to incorrectly block keyboard events when an element with contentedtable=false was focused. #2650
    Source code(tar.gz)
    Source code(zip)
  • 3.9.2(Jan 31, 2020)

    Fixes a security vulnerability in the postMessage API. The follow methods are now blacklisted and can not be called via the postMessage API: registerPlugin, registerKeyboardShortcut, addKeyBinding, addEventListener.

    Source code(tar.gz)
    Source code(zip)
  • 3.9.1(Jan 29, 2020)

    This version contains no changes. It was only released to bump the published version on npm.

    3.9.0 was published to npm with local edits 🤦‍♂️

    Source code(tar.gz)
    Source code(zip)
  • 3.9.0(Jan 29, 2020)


    • Adds step-by-step code highlights! Step through multiple line highlights on the same code block.
    • Adds postMessage callbacks. Makes it possible to use the postMessage API to invoke reveal.js methods with return values.
    • The pacing timer functionality now accepts a total time for the whole presentation. Timing was previously worked out on a per-slide level. (#2400 by longtime reveal.js contributor @fghaas!)
    • Background iframes no longer preload by default. They load when you arrive at the given slide. This unifies the behavior of in-slide and background iframes. Learn how to turn on preloading.
    • The slide number format specified through slideNumber is now honored in PDF exports. (#2337 by @dougalsutherland) (4c557a5959b3ad909056df6cb46c5bf56a0da8ee)
    • Adds data-fragment=<index> to any slide
      with fragments in it. This lets you target specific fragment states with CSS like section[data-fragment="2"] { ... }.
    • Adds Reveal.getHorizontalSlides() and Reveal. getVerticalSlides() for getting all horizontal/vertical slides in a deck.
    • Adds Reveal.hasHorizontalSlides() and Reveal. hasVerticalSlides() for checking whether or not a deck contains any horizontal or vertical slides.
    • Adds mobileViewDistance configuration option. Mobile view distance was previously hardcoded at 2. (#2513 by @TuurDutoit)
    • Adds allow="autoplay" to iframes to comply with Chrome's Autoplay Policy Changes (#2437 by @TehDmitry)
    • Switches to CSS transforms to scale decks up on HDPI displays. Previous use of CSS zoom produced sharper results but led to side effects such as iframes not scaling with the deck content.
    • Switches first/last slide keyboard shortcuts from ⌘←/⌘→ to Shift←/Shift→. The old shortcut conflicted with browser back/forward.
    • Updates highlight.js from 9.11.0 to 9.18.0

    Bug fixes:

    • Fixes an issue where the navigation down-arrow was blocked by the progress bar (#2410 by @NoriSte).
    • Fixes swipe navigation for decks with navigationMode set to linear (#2416 by @earboxer).
    • Fixes vertical overflow in iPadOS Safari.
    • Fixes inconsistent fragment slide animations by translating by a fixed unit.
    • Fixes failing npm install because of outdated dependencies.
    • Fixes exception when highlighting empty code blocks.

    And more...

    Source code(tar.gz)
    Source code(zip)
  • 3.8.0(Apr 1, 2019)


    • The cursor is now automatically hidden after five seconds of inactivity. The timeout can be adjusted with hideCursorTime: <milliseconds>, or you can disable the feature entirely with hideInactiveCursor: false.
    • Presentations can be zoomed on touch devices using the standard pinch-to-zoom gestures.
    • New navigationMode: <default/linear/grid> config option. Set to "grid" to navigate across adjacent vertical stacks. Learn more in the docs. (#2307)
    • New hash: <boolean> config option. When set to true, reveal.js will reflect the current slide in the address bar without pushing each slide change to the browser history. (#2286 by @asottile)
    • New preloadIframes config option for flagging if iframes should be preloaded or not. Can be set per-frame using the data-preload attribute. More info. (#2354 by @maxrothman)
    • A resize event is now dispatched anytime the presentation scale changes. (#2300 by @mw75)
    • The "Resume" button in the pause overlay is hidden if controls are set to false. (#2215 by @anderslemke)
    • New keyboard shortcut: CMD/CTRL + left or right arrow to go to first or last slide.
    • Adds Reveal.getRevealElement() for retrieving the presentation's root element (<div class="reveal">).
    • Removes Head JS as it is no longer required to load dependencies.
    • Removes classList polyfill since browser support caught up.
    • Removes the reset styles from reveal.css to make styles easier to override. Reset styles are now included as a separate reset.css file. (6abc6e00581e66690416978de118145e854c3c1e #1952 & #2248)
    • The zoom transition now zooms between all slides, previously it zoomed between horizontal slides and used a slide transition between vertical.
    • Upgrade to Socket.IO 2.2.0.

    Plugin Changes:

    • Adds a new API for registering plugins Reveal.registerPlugin( 'myPlugin', MyPluginInstance ). If a registered plugin returns a promise when initialized, reveal.js will wait for that promise to be fulfilled before firing the ready event. Learn more in the docs.
    • Code highlighting: Support for line numbers! Just add data-line-numbers to your code blocks.
    • Code highlighting: Highlight specific lines by providing a comma separated list of line numbers to data-line-numbers. Line ranges, like 5-15, are supported too.
    • Speaker view: No longer requires a web server, it now works when opened directly from the filesystem. (#2104 by @jurca)
    • Markdown: External .md files are now loaded asynchronously.
    • Markdown: Upgrade to marked 0.6.0. (@sestegra)
    • MathJax config options can now be set via the reveal.js math config option. (#2090 by @bnjmnt4n)

    Bug fixes:

    • Fixes npm security warnings by updating all dependencies.
    • Fixes an issue that prevented the same internal link from being clicked twice. (#2350 by @rparree)
    • Fixes an issue with data-transition not working on vertical slides. (b6ce0a9724f123396b59e9b7b90ab2d44dda2534 #1947)
    • Fixes an issue that needless caused the slide method—and all of its corresponding performance heavy DOM operations—to be invoked twice for each slide change. (#2263 by @mbotsch)
    • Fixes a layout bug with overlaid speaker notes when reveal.js is smaller than the browser window.
    • Fixes an error that caused Reveal.getProgress() to return a value higher than 1 when there were fragments on the last slide.
    • The speaker view no longer stops working when opened multiple times. (#2251 by @oyron)
    • Prevents presentations from overflowing vertically in some mobile browsers.
    • Elements using .stretch now show up in the overview mode. (@sanand0)

    And more...

    Source code(tar.gz)
    Source code(zip)
  • 3.7.0(Aug 1, 2018)


    • Key Binding API (#1885 by @ denehyg)
    • Adds pdfSeparateFragments option for exporting fragments on separate PDF pages (@koehlma)
    • Adds fragmentInURL option for including fragments in the URL (@dougalsutherland)
    • Adds hashOneBasedIndex option for switching slide URLs from 0 to 1-based index (@sean-parent)
    • Adds data-background-opacity attribute for fading out background media
    • Adds a "Resume presentation" button to the pause overlay
    • Adds two new fragment styles
      • semi-fade-out: starts fully visible and fades out to 50% opacity
      • fade-in-then-semi-out: fades in like a normal fragment and remains visible but faded out when you move to the next fragment
    • New API method Reveal.syncSlide: same use as Reveal.sync but more efficient when you've only made changes to one specific slide
    • New API method Reveal.syncFragments: same use as Reveal.sync but more efficient when you've only made changes to fragments on one specific slide
    • Removes arbitrary restrictions on slide IDs, all IDs are now valid
    • The slide number is now an anchor pointing to the current hash, making it possible to copy the current slide URL even when history is disabled (#2133 by @sean-parent)
    • Whitespace is now allowed in background image names (@RobertBaron)

    Bug fixes:

    • The left/right navigation arrows no longer appear when there are no horizontal slides
    • Navigating to the same slide twice in a row no longer drops its "present" class
    • The loop option now works correctly in presentations with only vertical slides
    • More graceful error handling of duplicate slide IDs
    • Interactive iframe backgrounds now work in vertical slides

    And more...

    Source code(tar.gz)
    Source code(zip)
  • 3.6.0(Nov 23, 2017)


    • New project domain:
    • New presentation control arrows:
      • Redesigned for improved aesthetics and clarity.
      • Arrows bounce to attract attention until the viewer first navigates. The downwards arrow bounces the first time you arrive at a vertical stack too, making vertical slides harder to miss. This can be turned off by setting the controlsTutorial config option to false.
      • Arrows automatically change color to contrast the slide background. Step left/right here to test.
      • Initialize reveal.js with controlsLayout: "edges" to have the controls appear along the edges of the screen instead of the bottom right corner. Try it out. revealjs-controls
    • New mobile-friendly layout for presentations shared with visible speaker notes.
    • The showNotes config option no longer shows the notes UI if there are no notes.
    • Improved search plugin: added CTRL+SHIFT+F shortcut, now searches inside of <span>. (#1909 by @linux-man)
    • Lazy-loaded videos are now unloaded when they move out of view.
    • Set the autoSlide option to false to prevent ALL auto-sliding (including data-autoslide attributes).
    • New API method Reveal.isSpeakerNotes() to check if the current instance of reveal.js is running inside of the speaker view.
    • New API methods Reveal.loadSlide()/Reveal.unloadSlide() for manually triggering the content on a slide to load or unload.
    • Always show video/audio controls on mobile devices.
    • Themes now use default quotation marks for <q>.

    Bug fixes:

    • Fixed an issue that prevented Reveal.configure() from being called directly before or after Reveal.initialize().
    • Don't apply text-transform uppercase inside of code tags. (#1978 by @sfairchild)
    • Mobile Safari browser chrome no longer covers presentation content in landscape mode.
    • Fixed a feature test exception that prevented speaker notes from working in Safari.

    And more...

    Source code(tar.gz)
    Source code(zip)
  • 3.5.0(May 5, 2017)


    • Add display config option to control the display mode slide section elements. (#1324 by @mojavelinux)
    • Add Reveal.toggleHelp()for toggling the help overlay. (#1816 by @frazer)
    • Slide fragments can now hold their own speaker notes. (#1636 by @traff)
    • The speaker view can now provide pacing advice. This makes it easy to detect if you're running out of time, or going too quickly. (#1564 by @aspiers, more info)
    • Switch to a <textarea data-template></textarea> wrapper for Markdown to avoid HTML parsing issues. (#1780 by @ccqgithub)
    • Background videos now autoplay in iOS. (#1851 by @astone123)
    • Background iframes are now interactive when there is no content in the slide or data-background-interactive is present on the slide element.
    • Shift dependencies to devDependencies (#1764 by @demoneaux)
    • MathJax is now loaded from cdnjs since was shut down. (#1866 by @christianp)

    Bug fixes:

    • Fix multiple issues with autoplaying <video> and <audio>, particularly on slow connections.
    • Fix overview rendering issues in Firefox.

    And more...

    Source code(tar.gz)
    Source code(zip)
  • 3.4.1(Jan 25, 2017)

  • 3.4.0(Jan 10, 2017)


    • Add a layout selector to the speaker view with four different options (see example)
    • Add ability to pass options to Markdown parser (#1765 by @demoneaux)
    • Auto-playing content inside of a fragment now play automatically when the parent fragment is displayed
    • Improve indentation correction for code blocks using the data-trim (#1756 by @ jmpp)
    • Show an error when an iframe can't be previewed (#1577 by @huxpro)
    • Improve accuracy of zoom plugin (#1572 by @jesstelford)
    • PDF exports:
      • Add showNotes: 'separate-page' to print speaker notes on separate pages (#1518)
      • Prevent printed pages from overflowing
      • Dispatch a pdf-ready event when the presentation is initialized, laid out and ready to print
      • Add pdfMaxPagesPerSlide config value for controlling how many pages a slide can split into when printing to PDF 55581035228aba9a0d061a6969797327c626b0bf
    • Accessibility:
      • Make speaker notes keyboard accessible (#1586 by @jasonkiss)
      • Update disabled attribute on nav buttons for screen reader accessibility (#1586 by @jasonkiss)
      • Don't call out aria-hidden="true" and display: none; elements (#1665 by @Sonaryr)
    • New API method Reveal.showHelp() can be called to display a help overlay with keyboard shortcuts #1611
    • Increased default font sizes and max presentation scale
    • In addition to dispatching a ready event, reveal.js now adds a ready class to the .reveal container that CSS can hook into
    • Updated dependencies

    Bug fixes:

    • Fix disappearing theme background when going fullscreen in Firefox
    • Fix occasional null pointer errors related to iframes and slide backgrounds
    • Fix blurred content when using the none/fade/slide transitions (#1002)
    • Fix incorrect duration calculation for video/audio with playbackRate
    • Fix exception when initializing with no slides
    • Fix mousewheel-event based navigation when using a trackpad (#1607 by @gera2ld)

    And more...

    Source code(tar.gz)
    Source code(zip)
  • 3.3.0(Apr 19, 2016)


    • New default HTML files:
      index.html – barebones presentation suitable to add your own content into
      demo.html – example presentation where many reveal.js features are demonstrated
    • Add Reveal.shuffle() for randomizing slide order, also available through config Reveal.initialize({ shuffle: true }) (#1506)
    • Add data-background-video-muted for muting background video (#1360 by @oslego)
    • Add autoSlideMethod config option for controlling how auto-slide navigates. For example, for backwards navigation you can use Reveal.configure({ autoSlideMethod: Reveal.navigatePrev }) (#1437 by @der-michik)
    • Add four new fragment styles: fade-up, fade-down, fade-right and fade-left (#1445 by @kewitz)
    • Add the grunt-cli as a dependency instead of assuming global Grunt (#1473 by @vicapow)
    • Add Reveal.VERSION (#1451 by @SethosII)
    • Add table of contents to README (#1545 by @ducin)
    • Multiplexing is compatible with now, deployment is as easy as now plugin/multiplex
    • The notes plugin no longer syncs changes to the overview mode
    • 2x auto-slide controls for HDPI displays
    • Remove unused dependencies (#1521 by @demoneaux)
    • Update highlight.js to 9.0.0
    • Update head.js to 1.0.3

    Bug fixes:

    • Fix issues with how presentations were scaled up in Safari and Edge
    • Fix issue where background videos did not play on the first slide (#1376 by @alexbatista)
    • Fix issue with formatting of Markdown notes (#1405 by @jetzhliu)
    • Fix error where parallax backgrounds did not work in a presentation with only vertical slides (#1434 by @mikemellor11)
    • Fix error when using speaker notes on a presentation with a query string in the URL (#1522 by @demoneaux)
    • Fix watching of Markdown files for livereload (#1553 by @0xR)
    • Fix broken overview when reveal.js is configured with percentage based width/height (#1247)
    • Remove extra border in some table configurations (by @flying-sheep)

    And more...

    Source code(tar.gz)
    Source code(zip)
  • 3.2.0(Nov 9, 2015)


    • Turn on the showNotes option to show your speaker notes along the bottom of the presentation. Also works with PDF exports!
    • If slideNumber is turned on slide numbers will now be included in PDF exports.
    • Changed the format and style of slide numbers.
    • Added a bower.json manifest #1067
    • Use data-prevent-swipe to flag that swiping across an element shouldn't trigger slide navigation (more info, #951 by @calyhre)
    • Accessibility: control arrows were changed from <div> to <button>.
    • Updated all dependencies, see ef1402e64567a41be8ac56ad129fdeb54a275218
    • The Multiplexing and Speaker Notes plugins have been upgraded from 0.9.x to 1.3.7.
    • The server side speaker notes plugin now syncs changes from within the notes window to the main presentation window.
    • We no longer use zoom to scale down presentations since that was causing slight shifts in text layout. Instead we're relying on transforms which always interpolate smoothly although things don't look as crisp.
    • The Leap Motion plugin was moved out of reveal.js core:
    • The plugin was removed.
    • Updated highlight.js from 8.2 to 8.9.1

    Bug fixes:

    • Custom-bound togglePause keys can now correctly be used to resume again (#959 by @davidbanham).
    • Fix early access error with video backgrounds (#1310 by @teawithfruit).
    • Fix an issue where the 'none' transition did not apply to vertical slides.
    • Fix initial visibility of strike fragments.
    • Fix an issue where the presentation background turned black in fullscreen mode.
    • Fix an issue where code highlighting didn't load for Markdown-only presentations (#1225 by @gre)
    • Fix an issue where printing to paper would cause text to get cut off (#1381 by @lordsutch)
    • And more...
    Source code(tar.gz)
    Source code(zip)
  • 3.1.0(May 18, 2015)


    • Slides can now have different in/out transitions (more info, #1106 by @jammon)
    • Custom formatting support for slide numbers (more info, #965)
    • Lazy loaded iframe elements now only load when the containing slide becomes visible and unload again once hidden
    • GIFs now restart when they become visible
    • Support for slide backgrounds in the overview mode
    • Config options for controlling parallax background movement per slide (#733 by #lukekarrys)
    • Simplified build script now compiles all CSS in themes folder
    • Only preload last slide when we're configured to loop
    • Add data-background-loop option (#1138 by @denehyg)
    • Core CSS no longer overrides text selection color
    • Removed roll-in fragment style as it was consistently crashing Chrome (#1150)

    Bug fixes:

    • Fix Markdown table column alignment (#1050 by @fehmer)
    • Fix view distance calculation for looped presentations
    • Fix inverse progress bar navigation in RTL mode
    • Fix error where Markdown slide separators did not work on some systems (#929 thanks @callahad)
    • Resolve conflict which caused auto-sliding not to work on a slide with a data-autoplay configured media element (#1170)
    • Input focus inside of iframe elements no longer breaks slide layout
    • And more...
    Source code(tar.gz)
    Source code(zip)
  • 3.0.0(Jan 12, 2015)

    reveal.js 3.0 changes the default style of the framework (demo). If you want to return to the old defaults please take a look at the migration guide.

    Major updates:

    • New default theme "black"
    • New theme "white", same typography as "black" but inverse colors
    • Default transition changed from 3D rotation to 2D sliding
    • Presentations scale up to make better use of high resolution viewports
    • Video backgrounds (more info)
    • Iframe backgrounds (more info, #1029 by @lutangar)
    • Lazy loading of image, iframe, video and audio (more info)
    • Help overlay when pressing ? (#943 by @navateja)
    • Slide content is now announced to screen readers (#854 by @mpnkhan)
    • Rewritten PDF export layout, fixes a number of issues and adds support for vertical centering
    • Markdown separator attributes renamed from data-notes and data-verticalto data-separator-notes and data-separator-vertical.

    Other updates:

    • Minified files (reveal.min.js and reveal.min.css) are no longer tracked in the repo
    • Core stylesheet is now precompiled using Sass
    • Core stylesheet is now using autoprefixer (#1007 by @burnpanck)
    • Built-in postMessage API (more info)
    • The .reveal element is given a "has-light-background" or "has-dark-background" class when a per-slide background color is detected
    • Speaker view
      • New design
      • Now works when running a presentation from file://
      • Disabled slide transitions to improve main presentation performance
      • Disabled auto-sliding to prevent conflicts with main presentation
      • Disabled 'S' shortcut from working inside of speaker view
    • New API method: getState/setState (more info)
    • New API method: getProgress
    • New API method: getTotalSlides (#858)
    • Fragments are included in progress calculation
    • highlight.js updated to 8.2, now includes all supported languages rather than a subset
    • Removed transitions into and out of the overview mode
    • Simplified .slides container layout, no more -50% offset on individual slide elements
    • Renamed "linear" transition to "slide"
    • Renamed "default" transition to "convex"
    • Background images, videos and iframes are lazy loaded
    • Moved content related styles out of core stylesheet into themes
    • Removed Ruby dependency by switching to node-sass (#975 by @miira)
    • Removed theme config option (#1061)
    • Included version of League Gothic is no longer subset (#989)
    • UMD support (#869 by @ahdinosaur)
    • Refreshed content in default presentation

    Bug fixes:

    • Invisible fragments no longer catch mouse events (#845)
    • Prevent named links with non-latin characters from skipping to presentation end (#836)
    • data-autoplay attribute now works on the first slide
    • Auto-sliding now works for fragments on last slide (#974)
    • Fix issues with RTL navigation
    • Fix edge cases where isFirstSlide incorrectly returned true
    • Fix issue with automatically playing/pausing YouTube and Vimeo embeds
    • Fix double-navigation on touch for some Android devices
    • Fix calculation of fragment index when multiple fragments have the same index
    • Many more...
    Source code(tar.gz)
    Source code(zip)
  • 2.6.2(Apr 16, 2014)

  • 2.6.1(Dec 2, 2013)

    • Changed default syntax for Markdown slide and element attributes (#734)
    • Fixed bug related to initial visibility of vertical slides
    • Improved parsing of query strings for Reveal.getQueryHash()
    Source code(tar.gz)
    Source code(zip)
  • 2.6.0(Nov 28, 2013)

    Major changes:

    • Parallax backgrounds (more info, example, thanks @michalsmolinski)
    • Added UI for controlling auto slide playback. Appears in the bottom left and includes a visual indicator for when the slide is about to change (more info, example)
    • Added support for displaying the current page number (more info, thanks @urielha)
    • All configuration values can now be overridden through query parameters, for example:

    Other changes:

    • Unit tests are now available with ever increasing coverage, run via grunt test
    • Fixed vertical slide related bug where isLastSlide() incorrectly returned false
    • Updated highlight.js build to include all supported languages
    • Fixed bug where smart links (like .navigate-right) did not work when controls were disabled
    • Updated grunt and node dependencies to current versions
    • Fixed perspective of vertical slide transition in IE10
    • The grunt serve task now accepts a port number, for example: grunt server 8181
    • Added contribution guidelines
    • Fixed issue where keyboard controls did not work after clicking on an external link inside of a presentation and then coming back
    • Added support for SVG background images
    • Overview mode and progress bar are now disabled in the notes window slide previews
    • Added support for per-slide vertical centering, simply add a .center class to the <section>
    • If an iframe is embedded inside of a slide it will now receive two postMessages: slide:start when the slide is shown and slide:stop when it is hidden (more info)
    • Videos are no longer auto-played in the note window previews
    • The data-autoslide of a slide stack is now inherited by its vertical children
    • Disabled background transitions between consecutive identical data-backgrounds to avoid flicker
    • Added convex, concave and zoom background transitions
    • Refactored fragment implementation to fix multiple bugs (see #721)
    • Adjusted background transition speed to match slide transitions
    • When there is embedded media with data-autoplay set and auto-sliding is on, the auto-slide duration is increased to the duration of the media

    Markdown plugin:

    • Added support for element attributes (more info, thanks @VonC)
    • Added support for slide attributes (more info, thanks @VonC)
    • Fixed bug where notes in last Markdown slide were not picked up
    • If RevealMarkdown.initialize() is called multiple times it won't repeatedly try to parse the same content
    Source code(tar.gz)
    Source code(zip)
  • 2.5.0(Aug 20, 2013)

    Major changes:

    • MathJax plugin (more info)
    • Leap Motion plugin (more info, thanks @gneatgeek)
    • Added .stretch helper class which dynamically resizes an element to fill its parent slide (more info)
    • Added support for notes in external Markdown (more info, thanks @adamhepton)

    Other changes:

    • The framework no longer queries the DOM before Reveal.initialize() is called, this allows reveal.js to be loaded in the <head>
    • URL hash now updates immediately, was previously delayed to account for a legacy Chrome bug
    • Rolling links are now turned off by default, will be removed entirely in the long term
    • Fragments on upcoming slides are no longer visible when navigating back and forth in the presentation
    • Added an none transition setting for slide backgrounds
    • O key can now be used to toggle the overview mode, useful since ESC does not work in fullscreen mode
    • Greatly simplified client-side notes plugin, fixes issues where fragments went out of sync
    • Fixed bug that caused slideshow to break if an invalid named link was referenced
    • Fixed bug with auto-slide on first slide (#525)
    • Fixed issues where past/future slides were clickable even if they weren't visible
    • Optimization:
      • More precise way of hiding slides that are out of view
      • Configurable viewDistance (# of slides from current that should be hidden)
      • Limited view distance for mobile devices, fixes some out of memory errors
    Source code(tar.gz)
    Source code(zip)
  • 0.3.0(Jul 2, 2013)

  • 1.0.0(Jul 2, 2013)

    • New and improved style
    • Added controls in bottom right which indicate where you can navigate
    • Reveal views in iteratively by giving them the .fragment class
    • Code sample syntax highlighting thanks to highlight.js
    • Initialization options (toggling controls, toggling rolling links, transition theme)
    Source code(tar.gz)
    Source code(zip)
  • 1.1.0(Jul 2, 2013)

    • Added an optional presentation progress bar
    • Images wrapped in anchors no longer unexpectedly flip in 3D
    • Slides that contain other slides are given the 'stack' class
    • Added transition option for specifying transition styles
    • Added theme option for specifying UI styles
    • New transitions: box & page
    • New theme: neon
    Source code(tar.gz)
    Source code(zip)
  • 1.2.0(Jul 2, 2013)

    • Big changes to DOM structure:
      • Previous #main wrapper is now called #reveal
      • Slides were moved one level deeper, into #reveal .slides
      • Controls and progress bar were moved into #reveal
    • CSS is now much more explicit, rooted at #reveal, to prevent conflicts
    • Config option for disabling updates to URL, defaults to true
    • Anchors with image children no longer rotate in 3D on hover
    • Support for mouse wheel navigation (naugtur)
    • Delayed updates to URL hash to work around a bug in Chrome
    • Included a classList polyfill for IE9
    • Support for wireless presenter keys
    • States can now be applied as classes on the document element by adding data-state on a slide
    Source code(tar.gz)
    Source code(zip)
  • 1.3.0(Jul 2, 2013)

    • Revised keyboard shortcuts, including ESC for overview, N for next, P for previous. Thanks mahemoff
    • Added support for looped presentations via config
    • Fixed IE9 fallback
    • Added event binding methods (Reveal.addEventListener, Reveal.removeEventListener)
    • Added slidechanged event
    • Added print styles. Thanks skypanther
    • The address bar now hides automatically on mobile browsers
    • Space and return keys can be used to exit the overview mode
    • Events for fragment states (fragmentshown / fragmenthidden)
    • Support for swipe navigation on touch devices. Thanks akiersky
    • Support for pinch to overview on touch devices
    Source code(tar.gz)
    Source code(zip)
  • 1.4.0(Jul 2, 2013)

    • Main #reveal container is now selected via a class instead of ID
    • API methods for adding or removing all event listeners
    • The slidechange event now includes currentSlide and previousSlide
    • Fixed bug where slidechange was firing twice when history was enabled
    • Folder structure updates for scalability (see /lib & /plugin)
    • Slide notes by rmurphey
    • Bumped up default font-size for code samples
    • Added beige theme
    • Added autoSlide config
    • Bug fix: The slidechanged event is now firing upon hashchange. Thanks basecode
    • Bug fix: JS error when the progress option was true but there was no progress DOM element
    • keyboard config flag for disabling all keyboard navigation
    Source code(tar.gz)
    Source code(zip)
  • 2.0.0(Jul 2, 2013)

    • New API method Reveal.getPreviousSlide()
    • New API method Reveal.getCurrentSlide()
    • New API method Reveal.getIndices()
    • Fixed bug where the .present class was sometimes left on the previous slide
    • Added support for slides written using markdown
    • Added helped method Reveal.getQueryHash()
    • Added EOT, WOFF, and SVG fonts for IE support as well as older Opera & more. Thanks OwenVersteeg
    • IE8 support. Thanks OwenVersteeg
    • Fixed bug where hovering 3D links in Chrome caused them to disappearf
    • Disable 3D links in IE and more accurate CSS feature detection
    • CSS is more relative in sizing to allow for low resolutions. Thanks OwenVersteeg
    • PDF export (instructions)
    • Revamped CSS to enable theming, themes now live separately from main.css in /css/theme
    • Built in dependency-loading and more concise init code 49e8e0d205d...
    • Fixed bug that caused all vertical slides to move when navigating up/down in overview #122
    • Support for named internal links, instructions in the readme #55
    • Added Sky theme
    • Fixed issue with multiline text in <small>
    • The overview mode can now be disabled via the overview config option
    • Support for markdown in notes
    Source code(tar.gz)
    Source code(zip)
Hakim El Hattab
Swedish JavaScript coder and CSS tweaker • Co-founder of @slides • Creator of reveal.js
Hakim El Hattab
An Alert Management Web Application

What is 411? Search scheduling Configure Searches to periodically run against a variety of data sources. You can define a custom pipeline of Filters t

Etsy, Inc. 960 Aug 27, 2021
Open source API management platform

About Fusio is an open source API management platform which helps to build and manage REST APIs. Fusio provides all tools to quickly build an API from

Apioo 997 Sep 15, 2021
Virtual Mailbox Administration

ViMbAdmin Virtual Mailbox Administration The ViMbAdmin project (vim-be-admin) provides a web based virtual mailbox administration system to allow mail

Open Solutions 451 Aug 10, 2021
Read-only mirror of

GPARTED ======= Gparted is the GNOME Partition Editor for creating, reorganizing, and deleting disk partitions. A hard disk is usually subdivided int

GNOME Github Mirror 179 Sep 24, 2021
OpenProject is the leading open source project management software.

OpenProject OpenProject is a web-based project management software. Its key features are: Project planning and scheduling Product roadmap and release

OpenProject 5.2k Sep 25, 2021
Phishing Campaign Toolkit

King Phisher Phishing Campaign Toolkit Installation For instructions on how to install, please see the file. After installing, for instruct

RSM US LLP 1.5k Sep 16, 2021
Graphical program used to map keyboard buttons and mouse controls to a gamepad. Useful for playing games with no gamepad support

antimicro ?? Important update ?? This repo is currently unmaintained. The code hasn't been updated for a while. But not all is lost, antimicro has a f

null 1.5k Sep 24, 2021
Open source back-end server for web, mobile and IoT. The backend for busy developers. (self-hosted or hosted)

A scalable, multitenant backend for the cloud. Para is a scalable, multitenant backend server/framework for object persistence and retrieval. It helps

Erudika 408 Sep 20, 2021
Skygear - an open source serverless platform for modern secure app development

Next is the V2 of Skygear that aim to follow Support multi tenant at core, make cloud deploy scalable at first day. Simplify deployment. Give back app

SkygearIO 390 Aug 26, 2021
visualCaptcha's Main Repo. This is a collection of all the different versions/repos of visualCaptcha.

visualCaptcha Please note visualCaptcha is no longer actively developed. It still works and should continue to, but it won't be improved by the initia

null 405 Sep 2, 2021
The Linux PowerTOP tool -- please post patches to the mailing list instead of using github pull requests

PowerTOP PowerTOP is a Linux* tool used to diagnose issues with power consumption and power management. In addition to being a diagnostic tool, PowerT

Arjan van de Ven 543 Sep 24, 2021
Extremely fast tool to remove duplicates and other lint from your filesystem

rmlint finds space waste and other broken things on your filesystem and offers to remove it. Features: Finds… …Duplicate Files and duplicate directori

Chris Pahl 1.1k Sep 17, 2021
Calibre OPDS (and HTML) PHP Server : web-based light alternative to Calibre content server / Calibre2OPDS to serve ebooks (epub, mobi, pdf, ...)

COPS COPS stands for Calibre OPDS (and HTML) Php Server. See : COPS's home for more details. Don't forget to check the Wiki. Why ? In my opinion Calib

Sébastien Lucas 1.2k Sep 22, 2021
A simple webfont hosting. Google Fonts alternative for your own fonts.

Web fonts repository A simple webfont hosting inspired by Google Fonts. It runs on your server, stores and distributes webfont files and generates CSS

Surgie Finesse 67 Sep 12, 2021
Sharetribe Go is a source available marketplace software, also available as a hosted, no-code SaaS product. For a headless, API-first marketplace solution, check out Sharetribe Flex:

Sharetribe Sharetribe develops advanced marketplace software for every business life cycle stage. Sharetribe Go gives you the complete feature set to

Sharetribe 2.2k Sep 24, 2021
Kimai v1 open source time-tracking - please switch to Kimai v2

?? Kimai v1 is not maintained any more Go ahead to and update to use the latest release, rewritten from scratch,

Kimai - Time Tracking Software 580 Aug 25, 2021
Squash’s front-end and API host.

Squash: A squarish bug spray An open-source project from Square Squash is a collection of tools that help engineers find and kill bugs in their code b

null 968 Sep 9, 2021
🔥 Open source static (serverless) status page. Uses hyperfast Go & Hugo, minimal HTML/CSS/JS, customizable, outstanding browser support (IE8+), preloaded CMS, read-only API, badges & more.

Über fast, backwards compatible (IE8+), tiny, and simple status page built with Hugo. Completely free with Netlify. Comes with Netlify CMS, read-only

cState 1.4k Sep 17, 2021