{"id":35240268,"url":"https://github.com/nathanlesage/conference-timer","last_synced_at":"2026-04-06T07:01:37.780Z","repository":{"id":270724842,"uuid":"911274973","full_name":"nathanlesage/conference-timer","owner":"nathanlesage","description":"Visually time conference presentations","archived":false,"fork":false,"pushed_at":"2025-01-27T16:02:23.000Z","size":1746,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-03T21:23:52.272Z","etag":null,"topics":["conference","presentation","presentation-tools","talk","timer","timer-clock"],"latest_commit_sha":null,"homepage":"https://conf-timer.hendrik-erz.de/","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nathanlesage.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-02T16:30:14.000Z","updated_at":"2025-04-19T22:19:13.000Z","dependencies_parsed_at":"2025-01-02T17:41:28.778Z","dependency_job_id":"ed192e93-76a5-410c-b80b-d3c11a3f340b","html_url":"https://github.com/nathanlesage/conference-timer","commit_stats":null,"previous_names":["nathanlesage/conference-timer"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nathanlesage/conference-timer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nathanlesage%2Fconference-timer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nathanlesage%2Fconference-timer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nathanlesage%2Fconference-timer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nathanlesage%2Fconference-timer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nathanlesage","download_url":"https://codeload.github.com/nathanlesage/conference-timer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nathanlesage%2Fconference-timer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31463015,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-05T21:22:52.476Z","status":"online","status_checked_at":"2026-04-06T02:00:07.287Z","response_time":112,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["conference","presentation","presentation-tools","talk","timer","timer-clock"],"created_at":"2025-12-30T04:59:15.969Z","updated_at":"2026-04-06T07:01:37.764Z","avatar_url":"https://github.com/nathanlesage.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n  \u003ca href=\"https://conf-timer.hendrik-erz.de/\"\u003e\n    \u003cimg src=\"./src/assets/logo.svg\" alt=\"Conference Timer\" width=\"128\" height=\"128\" /\u003e\n  \u003c/a\u003e\n  \u003cbr/\u003e\n  Conference Timer\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eCommunicate presentation and Q\u0026A times to your speakers.\u003c/strong\u003e\n\u003c/p\u003e\n\n![Screenshot of running timer](./resources/screenshot_running_dark_frame.png)\n\nIf you have ever been at a conference, you know how difficult it can be to keep\nyour time; and you probably have experienced speakers overshooting their\nallotted time. Conference Timer is a tool intended to make managing time for\nconference presentations easier.\n\nKeeping time is difficult, both for session chairs and speakers:\n\n* Managing time as a speaker demands additional mental resources\n* Holding up \"x minutes left\"-signs from a back seat can look awkward\n* At many conferences, there are usually no professional time keeping systems\n\nConference Timer has been developed with common conference setups in mind and\nbalances the scarce resources we often have at conferences (at least an internet\nenabled device with a screen, that is, a laptop or tablet) with the mental\ncapacities of a speaker.\n\nConference Timer offers three benefits over other common time keeping methods:\n\n1. It can be configured for any presentation length within a few seconds and is\n   ready to go instantly.\n2. It offers very simple and fast-to-understand visual cues to inform speakers\n   of their remaining time.\n3. It can be run in any setup which includes a display and an internet browser.\n\n## Features\n\n* Focus on speed and ease of use\n* Many built-in templates with and without dedicated Q\u0026A time for:\n  * lightning talks;\n  * short and regular conference presentations;\n  * keynotes\n* Create custom templates for your own conference\n* Auto-fullscreen capability, and prevents the display from sleeping while the\n  timer is running\\*\n* Full control (start, pause, resume, stop, restart)\n* Built-in dark mode\n* Instructions for\n  [conference organizers](#instructions-for-conference-organizers),\n  [session chairs](#instructions-for-session-chairs), and\n  [speakers](#instructions-for-speakers)\n\n\\* *These features are not supported in every browser or every device. Please check beforehand.*\n\n## Getting Started\n\nTo get started, [open the Conference Timer website](https://conf-timer.hendrik-erz.de/),\nand either select a predefined template, or create your own. If you create your\nown template, you can copy a link to it to share with, e.g., all of your session\nchairs to use.\n\nAfter you have selected a template, you are redirected to the timer screen. If\nyou have several screens, you should now move the browser window onto the screen\nwhere it should appear.\n\nNow, press the \"Play\"-button or the spacebar to immediately start the timer. The\napp will now enter fullscreen and request your computer not to put its display\nto sleep.\n\nWhile the timer is running, it will show several pieces of information:\n\n* In the center, it will show the countdown, that is the remaining time for the\n  current phase. If the template is set to count up, the counter will go up\n  instead of counting down. If the template hides the counter, it will only show\n  \"Presentation\" during the presentation phase, and \"Q\u0026A\" during the Q\u0026A phase.\n* In the top left, you have the timer control buttons, allowing you to pause or\n  resume, or stop the timer.\n* In the top center, the app will show a warning if it couldn't acquire a wake\n  lock, that is, if the display may go to sleep during the presentation.\n* In the top right, you can exit the timer and return to the home screen.\n* The bottom left shows the template name. This can be your custom name.\n* The bottom center always shows the total remaining time (presentation + Q\u0026A\n  time combined), or counts up to the total time depending on your setting\n* The bottom right shows the current phase (presentation or Q\u0026A)\n\n## Instructions for Conference Organizers\n\nAs a conference organizer, you may want to prepare one or more templates suited\nto your various session or panel times and share them with your session chairs.\n\nIf one of the provided default templates work for you, select it on the home\nscreen to open the timer screen. To share this template with your session\nchairs, simply copy the URL and send it to them, e.g., via email.\n\nCreating a custom template works if you either want to display your conference's\nname in the bottom-left, or if you want to set custom reminders/times. To do so,\nclick the button to create a custom template on the home screen, adjust the\nsettings, and then click on \"Copy to clipboard.\" This will put a link into your\nclipboard that contains all your settings. Share this link with your session\nchairs. If someone opens the link, this will apply the settings and immediately\nredirect them to the correct timer screen so they can start it.\n\n## Instructions for Session Chairs\n\nAs a session chair, you should have received instructions from the organizer as\nto which template to use. Ideally, they should've sent you a link that you can\njust click to open the correct timer template. Otherwise, select the appropriate\ntemplate or create a new template and adjust the settings per the organizer's\ninstructions.\n\nIf you have more than one screen at the device you are using for the session\ntimer, prepare the session by dragging the window with the timer screen onto the\nappropriate display that the speaker can see.\n\nHit the spacebar or click the play button to start the timer. You should do this\nonce before the session starts to make sure everything works. If it does, click\nthe stop icon in the top left to reset the timer.\n\nWhen the first presentation starts, start the timer. After the first\npresentation is over and the finish message is shown, you can either press the\nstop button in the top left, or wait until the next presentation is set to\nstart. If you choose to wait, press the spacebar to reset and start the timer\nagain.\n\nIf you need to pause the presentation at some point, e.g., because an unexpected\nevent is happening, press spacebar to pause the timer. As soon as you press\nspace again, the timer will resume.\n\n## Instructions for Speakers\n\nIf you are a speaker, you can use the timer to estimate and better manage your\nallotted time. The app purposefully makes most of the information too tiny to\nproperly view, as you shouldn't focus on this; it is intended for the session\nchairs.\n\nWhat you should focus on are two elements. First, whatever is displayed in the\ncenter of the screen in large, bold letters. This will either be the countdown\n(or count-up), or the name of the current phase (presentation or Q\u0026A). Secondly,\nand more importantly, you should take note of the background of the app. The\nbackground will slowly fill with color from left to right as your presentation\nprogresses.\n\nThe background therefore gives you a very fast visual cue as to how much time\nyou have left. If the background is filled to one third with color during a 15\nminute presentation, this represents 5 elapsed minutes. If the color fills half\nthe screen, your presentation time is half over. Finally, if almost the entire\napp's background is filled with color, you should start to wrap up your\npresentation.\n\nSome templates add a dedicated space for a Q\u0026A section after your presentation.\nOnce the app's background has filled and the Q\u0026A section starts, the timer will\nreset to show the remaining time of the Q\u0026A phase. Simultaneously, the color\nwill leave the app background, again from left to right. Once all the color is\ngone, the Q\u0026A section is over.\n\nAt the very end, you will see a finish message, usually a \"Thank you!\",\nindicating that the time is up.\n\nDuring the presentation, you will see reminders with either a custom instruction\nor the remaining time. Each reminder will be shown for 10 seconds.\n\n## Creating a Custom Template\n\nTo create a custom template for your conference, click the appropriate button on\nthe home screen to enter the wizard. In there, you can adjust the settings for\nyour template:\n\n* **Name**: Provide a descriptive name for your template.\n* **Slug**: The slug cannot be modified, and is derived from the template name.\n  This is what the session chairs will see in the address bar of the timer app.\n* **Finish Message**: Write a custom \"Thank you\" message. This should be very\n  short, as space is limited!\n* **Presentation duration**: Adjust the amount of time for the presentation. You\n  can click on one of the provided standard durations, or enter a custom amount.\n  You need to set at least 1 minute.\n* **Q\u0026A Session duration**: Adjust the amount of time for the Q\u0026A. You can click\n  on one of the provided standard durations, or enter a custom amount. If you\n  don't want to add a Q\u0026A section, select 0 minutes.\n* **Count up**: If this checkbox is checked, the timer will count up, instead of\n  counting down.\n* **Show timer**: If this checkbox is not checked, the app won't show a big\n  timer, and instead only display \"Presentation\" or \"Q\u0026A\". This can be helpful\n  if you want to avoid inducing stress in the presenters. The background will\n  still slowly fill with color, even if this setting is not checked.\n* **Reminders**: Add reminders by setting the time mark (counting up from 0)\n  when the reminder will be shown, and optionally provide a custom label. Then,\n  click on \"Add new reminder.\" If you provide some text, this will be shown at\n  the provided time mark. If you don't, the app will show \"x minutes remaining\".\n  To remove a reminder, click the link after its row in the table.\n\nOnce you are happy with the settings, you can do one of two things. First, click\nthe button to copy a link to that specific template to your clipboard. As a\nconference organizer, this is a great way to provide your session chairs with it\nso they can immediately use it. Second, by clicking \"Create template,\" the\nsettings will be applied and you will be redirected to the timer screen. This is\nthe same as clicking the link that has been copied to your clipboard and can be\nused to double-check the settings. Note that you need to copy the link to your\nclipboard first, because you won't see it again after leaving the page.\n\n## Sharing a Template\n\nSharing a template works by providing the corresponding URL to your session\nchairs. If you use a provided standard template, simply give them the link with\nthe URL to the timer screen. If you use a custom template, give them the\nprovided link that contains the configuration amount. The custom link contains\nthe template slug, making it easy for anyone to quickly identify the correct\ntemplate in case you prepare more than one for different types of sessions.\n\n## Contributing\n\nThis app is provided as Open Source. It builds on Vue.js 3 with TypeScript and\nuses Vite as a bundler. To contribute, you need to have a Node.js environment.\nThe project uses Yarn, not NPM, for managing dependencies.\n\nUse the following commands to get started:\n\n```sh\ngit clone https://github.com/nathanlesage/conference-timer # Clone the repository\ncd conference-timer # Move into the directory\nyarn install --immutable # Install the dependencies\nyarn serve # Start the development server\nyarn build # Generate the static page\nyarn lint # Run ESLint over the code\n```\n\nPull Requests are appreciated.\n\n## License\n\nCopyright (c) 2025 Hendrik Erz \u003chendrik@zettlr.com\u003e\n\nThis program is free software: you can redistribute it and/or modify it under\nthe terms of the GNU Affero General Public License as published by the Free\nSoftware Foundation, version 3 of the License.\n\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY\nWARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A\nPARTICULAR PURPOSE.  See the GNU Affero General Public License for more details.\n\nFor more information, refer to the [LICENSE](./LICENSE) file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnathanlesage%2Fconference-timer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnathanlesage%2Fconference-timer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnathanlesage%2Fconference-timer/lists"}