{"id":377714,"date":"2026-09-30T10:30:48","date_gmt":"2026-09-30T10:30:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/dev-time-tracker\/"},"modified":"2026-09-30T10:30:19","modified_gmt":"2026-09-30T10:30:19","slug":"devlapse-time-logging","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/devlapse-time-logging\/","author":20942698,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.2","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"Devlapse Time Logging","header_author":"Peter Kagunda","header_description":"Track development time, log site changes to an audit trail, and produce billable summaries for clients. All data stays on your own site.","assets_banners_color":"95a9aa","last_updated":"2026-09-30 10:30:19","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/peterkagunda.com","header_author_uri":"https:\/\/peterkagunda.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":42,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"kagunda","date":"2026-09-30 10:30:19","revision":3720985}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3720985,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3720985,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3720985,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3720985,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3720985,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"meta\":{\"title\":\"Devlapse Time Logging\",\"description\":\"Preview the Devlapse timer, timesheets and project settings in a disposable WordPress site.\",\"author\":\"kagunda\",\"categories\":[\"time tracking\",\"productivity\"]},\"landingPage\":\"\\\/wp-admin\\\/admin.php?page=devlapse-time-logging\",\"preferredVersions\":{\"php\":\"8.2\",\"wp\":\"latest\"},\"steps\":[{\"step\":\"login\",\"username\":\"admin\",\"password\":\"password\"},{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"devlapse-time-logging\"},\"options\":{\"activate\":true}}]}"}},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3720985,"resolution":"1","location":"assets","locale":"","width":1440,"height":900},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3720985,"resolution":"2","location":"assets","locale":"","width":1440,"height":900},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3720985,"resolution":"3","location":"assets","locale":"","width":1440,"height":900},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3720985,"resolution":"4","location":"assets","locale":"","width":1440,"height":900}},"screenshots":{"1":"Dashboard &amp; Timer: the running session, today's tracked time and billable amount, a note field and recent sessions. The live counter also shows in the admin bar.","2":"Timesheets: every logged session with project, task, tags, duration, rate and total, plus Add manual entry and Export CSV.","3":"Settings: default hourly rate, currency, billable default, per-project client, colour and rate, and the opt-in activity logging controls.","4":"Printable billing summary: hours, effective rate and subtotal per project, with a Print or save as PDF button."}},"plugin_section":[262246],"plugin_tags":[8531,277285,12480,15154,27109],"plugin_category":[45],"plugin_contributors":[280930],"plugin_business_model":[],"class_list":["post-377714","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-activity-log","plugin_tags-billable-hours","plugin_tags-invoice","plugin_tags-time-tracking","plugin_tags-timesheet","plugin_category-ecommerce","plugin_contributors-kagunda","plugin_committers-kagunda"],"banners":{"banner":"https:\/\/ps.w.org\/devlapse-time-logging\/assets\/banner-772x250.png?rev=3720985","banner_2x":"https:\/\/ps.w.org\/devlapse-time-logging\/assets\/banner-1544x500.png?rev=3720985","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/devlapse-time-logging\/assets\/icon-128x128.png?rev=3720985","icon_2x":"https:\/\/ps.w.org\/devlapse-time-logging\/assets\/icon-256x256.png?rev=3720985","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/devlapse-time-logging\/assets\/screenshot-1.png?rev=3720985","caption":"Dashboard &amp; Timer: the running session, today's tracked time and billable amount, a note field and recent sessions. The live counter also shows in the admin bar."},{"src":"https:\/\/ps.w.org\/devlapse-time-logging\/assets\/screenshot-2.png?rev=3720985","caption":"Timesheets: every logged session with project, task, tags, duration, rate and total, plus Add manual entry and Export CSV."},{"src":"https:\/\/ps.w.org\/devlapse-time-logging\/assets\/screenshot-3.png?rev=3720985","caption":"Settings: default hourly rate, currency, billable default, per-project client, colour and rate, and the opt-in activity logging controls."},{"src":"https:\/\/ps.w.org\/devlapse-time-logging\/assets\/screenshot-4.png?rev=3720985","caption":"Printable billing summary: hours, effective rate and subtotal per project, with a Print or save as PDF button."}],"raw_content":"<!--section=description-->\n<p>Devlapse Time Logging is a self-contained time tracker for people who build and maintain WordPress sites. Start a timer from the admin bar, note what you worked on, and the entry is saved to your own database with its project, duration and rate.<\/p>\n\n<p>It is aimed at freelancers, agencies and in-house developers who need to show a client or a manager where the hours went, but it works just as well for keeping your own private record of how you spend your time.<\/p>\n\n<p>Despite the name, the plugin does not record your screen or capture video. It logs hours, tasks and billable time.<\/p>\n\n<p>Everything runs locally. The plugin makes no external HTTP requests, contains no analytics or tracking, requires no account, and sends no data to the author or any third party.<\/p>\n\n<h4>What it does<\/h4>\n\n<ul>\n<li>A start\/stop timer on the Dashboard &amp; Timer screen and a live counter in the admin bar that shows the running project, so you can see at a glance whether the clock is running.<\/li>\n<li>Dashboard totals for time tracked today, billable amount today and sessions currently running.<\/li>\n<li>Notes and commit references you can add to a running session, so the entry records what actually happened.<\/li>\n<li>Manual entries for work done away from the keyboard, such as calls, planning or meetings.<\/li>\n<li>Projects you define yourself, each with its own client name, colour and hourly rate. A project's rate overrides your default rate.<\/li>\n<li>Billable and non-billable time, with a setting that decides whether new sessions are billable by default, so internal work never ends up on a client's summary by accident.<\/li>\n<li>Timesheets listing date, user, project, task, duration, rate and total, with short tags on each entry, plus CSV export for your own spreadsheets or accounting tools.<\/li>\n<li>An optional Audit Log recording plugin activations, theme switches, changed setting names and post saves, with the user responsible.<\/li>\n<li>A Reports &amp; Invoicing screen with time grouped by project, and a printable billing summary showing hours, effective rate and subtotal per project. Print it or save it as a PDF from your browser.<\/li>\n<li>A currency selector with common currencies (USD, EUR, GBP, KES, NGN, ZAR, INR, JPY, AUD, CAD, CHF) and a custom option for anything else.<\/li>\n<li>Optional session summary emails, sent to the address you choose.<\/li>\n<li>REST endpoints under <code>devlapse-time-logging\/v1<\/code> for your own tooling.<\/li>\n<\/ul>\n\n<h4>Who it is for<\/h4>\n\n<ul>\n<li><strong>Freelancers<\/strong> who bill by the hour and want an honest record without paying for a separate service.<\/li>\n<li><strong>Agencies<\/strong> who need to show clients how much time went into maintenance, support and new work.<\/li>\n<li><strong>Site maintainers<\/strong> who want a simple log of what changed on a site and when, next to the time spent on it.<\/li>\n<li><strong>Anyone<\/strong> who prefers to keep their working data on their own server instead of a third-party cloud.<\/li>\n<\/ul>\n\n<h4>A typical workflow<\/h4>\n\n<ol>\n<li>Add your projects, client names, colours and hourly rates in Devlapse &gt; Settings, and choose a currency and default rate.<\/li>\n<li>Open Dashboard &amp; Timer, choose a project, describe the task and start the timer.<\/li>\n<li>Work as normal. The admin bar shows the running project and time on every admin screen, and you can add a note or commit reference to the session at any point.<\/li>\n<li>Stop the timer when you finish. The entry is saved with its duration, rate and billable status.<\/li>\n<li>At the end of the week or month, open Timesheets to review your totals or export a CSV, then open Reports &amp; Invoicing to print a billing summary for a client.<\/li>\n<\/ol>\n\n<h4>Permissions<\/h4>\n\n<p>Users who can edit posts can track their own time and see their own timesheets. Administrators can see everyone's entries, the activity log, reports and settings.<\/p>\n\n<h4>Privacy<\/h4>\n\n<p>The plugin stores time entries in two custom tables in your site's database. Each entry records the user who created it, a task description, a project name, start and end times, an hourly rate and whether the time is billable.<\/p>\n\n<p>If you switch on activity logging, the plugin also records which user activated or deactivated a plugin, switched themes, changed a setting or saved a post. Only the <strong>name<\/strong> of a changed setting is stored, never its value. Log entries are deleted automatically after the retention period you choose.<\/p>\n\n<p>Activity logging and email notifications are both off until you turn them on. Session summary emails, when enabled, are sent from your site by WordPress to the address you configure.<\/p>\n\n<p>Time entries are included in WordPress's personal data export and erase tools, and the plugin adds suggested wording to your privacy policy draft.<\/p>\n\n<h4>Performance<\/h4>\n\n<p>The plugin's admin styles and scripts load only on its own screens, and the admin bar loads a small separate stylesheet. Read queries use the WordPress object cache. Nothing from the plugin is loaded on the public side of your site.<\/p>\n\n<h4>Customization and support<\/h4>\n\n<p>Need something the plugin does not do yet? Custom reports, extra fields, integrations with your invoicing or accounting tools, client-specific summaries or a tailored workflow for your team are all possible.<\/p>\n\n<p>If you need any customization, please get in touch through <a href=\"https:\/\/peterkagunda.com\">peterkagunda.com<\/a>. For bugs and general questions, please use the plugin's support forum on WordPress.org so that other users can benefit from the answer too.<\/p>\n\n<p>If Devlapse Time Logging saves you time, a review on WordPress.org helps other people find it and is much appreciated.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>devlapse-time-logging<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install the ZIP through Plugins &gt; Add New.<\/li>\n<li>Activate the plugin through the Plugins menu.<\/li>\n<li>Open Devlapse &gt; Settings to add your projects and set a default hourly rate.<\/li>\n<li>Start the timer from Devlapse &gt; Dashboard &amp; Timer or from the admin bar.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20send%20my%20data%20anywhere%3F\"><h3>Does this send my data anywhere?<\/h3><\/dt>\n<dd><p>No. There are no external requests of any kind. Everything is stored in your own database, and the only outbound mail is the optional session summary, which WordPress sends to the address you choose.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20record%20my%20screen%20or%20take%20screenshots%3F\"><h3>Does the plugin record my screen or take screenshots?<\/h3><\/dt>\n<dd><p>No. Despite the name, Devlapse Time Logging does not record your screen, capture video, take screenshots or monitor what you type. It only stores the entries you create: a task description, a project, start and end times, a rate and a billable flag.<\/p><\/dd>\n<dt id=\"do%20i%20need%20an%20account%20or%20a%20licence%20key%3F\"><h3>Do I need an account or a licence key?<\/h3><\/dt>\n<dd><p>No. There is nothing to sign up for. Install it, activate it and start tracking.<\/p><\/dd>\n<dt id=\"can%20other%20users%20see%20my%20time%20entries%3F\"><h3>Can other users see my time entries?<\/h3><\/dt>\n<dd><p>Only administrators can see other users' entries. Everyone else sees their own.<\/p><\/dd>\n<dt id=\"who%20can%20track%20time%3F\"><h3>Who can track time?<\/h3><\/dt>\n<dd><p>Any logged-in user who can edit posts can track their own time and view their own timesheets. Administrators can also see everyone's entries, the activity log, reports and settings.<\/p><\/dd>\n<dt id=\"can%20i%20track%20time%20for%20more%20than%20one%20project%20or%20client%3F\"><h3>Can I track time for more than one project or client?<\/h3><\/dt>\n<dd><p>Yes. Define as many projects as you need in Devlapse &gt; Settings. Each project has its own client name, colour and hourly rate.<\/p><\/dd>\n<dt id=\"can%20i%20set%20a%20different%20hourly%20rate%20for%20each%20project%3F\"><h3>Can I set a different hourly rate for each project?<\/h3><\/dt>\n<dd><p>Yes. Every project has its own rate, and you can also set a default hourly rate that is used when a project does not have one.<\/p><\/dd>\n<dt id=\"can%20i%20log%20time%20i%20forgot%20to%20track%3F\"><h3>Can I log time I forgot to track?<\/h3><\/dt>\n<dd><p>Yes. Use the manual entry form on the Timesheets screen to add hours, minutes and a task description for work done away from the timer.<\/p><\/dd>\n<dt id=\"can%20i%20mark%20some%20time%20as%20non-billable%3F\"><h3>Can I mark some time as non-billable?<\/h3><\/dt>\n<dd><p>Yes. Each entry has a billable flag, and billable totals are calculated separately from total duration, so internal or unpaid work does not appear on a client's billing summary.<\/p><\/dd>\n<dt id=\"which%20currencies%20are%20supported%3F\"><h3>Which currencies are supported?<\/h3><\/dt>\n<dd><p>The currency field offers a dropdown of common currencies (USD, EUR, GBP, KES, NGN, ZAR, INR, JPY, AUD, CAD, CHF). If yours is not listed, choose \"Custom...\" and type it in.<\/p><\/dd>\n<dt id=\"can%20i%20export%20my%20data%3F\"><h3>Can I export my data?<\/h3><\/dt>\n<dd><p>Yes. Timesheets can be exported to CSV, which you can open in Excel, Google Sheets or any accounting tool. Administrators export all entries; other users export only their own.<\/p><\/dd>\n<dt id=\"does%20it%20create%20invoices%3F\"><h3>Does it create invoices?<\/h3><\/dt>\n<dd><p>The Reports &amp; Invoicing screen produces a printable billing summary rather than a full invoicing system. It shows hours, effective rate and subtotal for each project, plus a grand total. Use it as the basis for an invoice in whatever invoicing tool you already use, or get in touch about a custom integration.<\/p><\/dd>\n<dt id=\"how%20do%20i%20give%20a%20client%20a%20copy%20of%20the%20hours%3F\"><h3>How do I give a client a copy of the hours?<\/h3><\/dt>\n<dd><p>Open Reports &amp; Invoicing, open the billing summary and click \"Print or save as PDF\". In your browser's print dialog, choose \"Save as PDF\" to get a file you can send. You can also export the timesheet as a CSV.<\/p><\/dd>\n<dt id=\"can%20i%20add%20a%20note%20to%20a%20timer%20that%20is%20already%20running%3F\"><h3>Can I add a note to a timer that is already running?<\/h3><\/dt>\n<dd><p>Yes. While a session is running, the Dashboard &amp; Timer screen has a field where you can add a note or commit reference. Use it to record what you did, such as a ticket number or a commit hash.<\/p><\/dd>\n<dt id=\"what%20is%20the%20%22effective%20rate%22%20in%20the%20billing%20summary%3F\"><h3>What is the \"effective rate\" in the billing summary?<\/h3><\/dt>\n<dd><p>It is the hourly rate actually applied to a project's time: the project's own rate if it has one, otherwise your default hourly rate. Projects with a rate of 0, such as internal admin work, add hours but no billable amount.<\/p><\/dd>\n<dt id=\"can%20new%20sessions%20be%20non-billable%20by%20default%3F\"><h3>Can new sessions be non-billable by default?<\/h3><\/dt>\n<dd><p>Yes. In Devlapse &gt; Settings, under Rates &amp; Billing, turn off \"Mark new sessions as billable\". You can still change the billable flag on individual entries.<\/p><\/dd>\n<dt id=\"where%20do%20i%20find%20the%20activity%20log%3F\"><h3>Where do I find the activity log?<\/h3><\/dt>\n<dd><p>Administrators will find it on the Audit Log tab of the plugin. It shows only what you have chosen to record, and it stays empty until you switch on \"Record site activity\" in Settings.<\/p><\/dd>\n<dt id=\"is%20the%20activity%20log%20on%20by%20default%3F\"><h3>Is the activity log on by default?<\/h3><\/dt>\n<dd><p>No. It is off until you enable it in Settings. When enabled it records only the names of changed settings, never their values.<\/p><\/dd>\n<dt id=\"what%20does%20the%20activity%20log%20record%3F\"><h3>What does the activity log record?<\/h3><\/dt>\n<dd><p>Plugin activations and deactivations, theme switches, the names of settings that were changed, and post saves, each with the user who did it. It skips transient and cron noise. Old entries are pruned automatically after the period you set under \"Keep log entries for\" in Settings.<\/p><\/dd>\n<dt id=\"are%20email%20notifications%20on%20by%20default%3F\"><h3>Are email notifications on by default?<\/h3><\/dt>\n<dd><p>No. Session summary emails are off until you enable them, and they default to your site's administration email address.<\/p><\/dd>\n<dt id=\"is%20the%20plugin%20gdpr%20friendly%3F\"><h3>Is the plugin GDPR friendly?<\/h3><\/dt>\n<dd><p>The plugin stores data only in your own database, makes no external requests and uses no tracking. Time entries are included in WordPress's personal data export and erase tools, and the plugin adds suggested wording to your privacy policy draft. You remain responsible for your own compliance, so please review your privacy policy with your own advisers if needed.<\/p><\/dd>\n<dt id=\"will%20it%20slow%20down%20my%20site%3F\"><h3>Will it slow down my site?<\/h3><\/dt>\n<dd><p>No. The plugin does nothing on the public side of your site. Its admin CSS and JS load only on its own screens, and read queries use the WordPress object cache.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20my%20theme%20or%20page%20builder%3F\"><h3>Does it work with my theme or page builder?<\/h3><\/dt>\n<dd><p>The plugin works entirely in the WordPress admin, so it does not depend on your theme or page builder. The only thing it adds elsewhere is the timer counter in the admin bar.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20data%20if%20i%20delete%20the%20plugin%3F\"><h3>What happens to my data if I delete the plugin?<\/h3><\/dt>\n<dd><p>Deactivating keeps everything. Deleting the plugin from the Plugins screen removes both custom tables and all plugin options, on every site of a multisite network. Export your timesheets to CSV first if you want to keep a copy.<\/p><\/dd>\n<dt id=\"can%20i%20use%20the%20rest%20api%3F\"><h3>Can I use the REST API?<\/h3><\/dt>\n<dd><p>Yes. Routes live under <code>devlapse-time-logging\/v1<\/code> and require a logged-in user with the matching capability. Send a <code>wp_rest<\/code> nonce with each request.<\/p><\/dd>\n<dt id=\"can%20i%20get%20custom%20features%20or%20an%20integration%3F\"><h3>Can I get custom features or an integration?<\/h3><\/dt>\n<dd><p>Yes. If you need any customization, such as extra fields, custom reports, or a connection to your invoicing or project management tools, please contact me through <a href=\"https:\/\/peterkagunda.com\">peterkagunda.com<\/a>.<\/p><\/dd>\n<dt id=\"where%20do%20i%20report%20a%20bug%20or%20ask%20for%20help%3F\"><h3>Where do I report a bug or ask for help?<\/h3><\/dt>\n<dd><p>Please open a topic in the plugin's support forum on WordPress.org. Include your WordPress and PHP versions and the steps to reproduce the problem, and I will do my best to help.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Track development time from the admin bar, keep an optional activity log, and produce billable summaries. All data stays on your site.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/377714","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=377714"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/kagunda"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=377714"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=377714"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=377714"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=377714"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=377714"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=377714"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}