{"id":21965660,"url":"https://github.com/owengage/infinite-monkeys","last_synced_at":"2026-05-14T20:02:25.915Z","repository":{"id":104028390,"uuid":"117883663","full_name":"owengage/infinite-monkeys","owner":"owengage","description":"Experimental rich-text logbook for taking diary like notes.","archived":false,"fork":false,"pushed_at":"2018-02-24T09:58:44.000Z","size":119,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-28T01:26:33.953Z","etag":null,"topics":["diary","logbook"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/owengage.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2018-01-17T19:36:49.000Z","updated_at":"2018-02-23T16:38:54.000Z","dependencies_parsed_at":null,"dependency_job_id":"bf1a0bf3-8340-491c-9441-4e427a8cf150","html_url":"https://github.com/owengage/infinite-monkeys","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/owengage%2Finfinite-monkeys","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/owengage%2Finfinite-monkeys/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/owengage%2Finfinite-monkeys/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/owengage%2Finfinite-monkeys/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/owengage","download_url":"https://codeload.github.com/owengage/infinite-monkeys/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245022607,"owners_count":20548567,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["diary","logbook"],"created_at":"2024-11-29T12:49:29.965Z","updated_at":"2026-05-14T20:02:20.894Z","avatar_url":"https://github.com/owengage.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg height=\"120\" src=\"resources/logo.png\" /\u003e\n\n# Infinite Monkeys\n\nInfinite Monkeys is a personal experiment to create a log book for taking daily\nor diary like notes.\n\nAll other note taking software I have used falls massively short of what I want\nfrom a note-taking application. Most offer fancy rich text editing, and maybe\nsome light tagging. I want something that can heavily self-reference itself, and\nshow all information about a topic you've logged about easily.\n\nThis is no where near done.\n\n## Technologies\n\nAt the moment I intend for the note taking application to be entirely a\nweb-frontend. It uses the local storage Web API to niavely persist state across\nsessions. Not a permanent solution, but good enough for some development.\n\nI'll be using the `contenteditable` attribute to create rich-text editing, and\ngenerally taking advantage of as many modern web APIs as possible. I don't have\nan intention at the moment to use an established framework such as Angular,\nReact or Vue.\n\n## Guiding principles\n\n### Everything is DOM\n\nAll information for the log should be stored in the DOM of the log itself, as if\nit was pencil and paper. Data can be hidden in attributes of elements, but\neverything is in the DOM of the log. There should be no separate storage of\ninformation. Some form of cache to speed up operations would be fine, but the\ntruth lies in the DOM.\n\n### Referencing\n\nSince everything will be in the DOM, information should be fairly accessible by\nreferencing other parts of the DOM.\n\nFor example, if basic tagging of entries was added to be able to tag things with\ninformation like 'personal' or 'work', then these two tags should have a home in\nthe DOM (Everything is DOM), and be referenced in order to tag that location.\n\nThe tag, that exists in the DOM, can then have arbitrary DOM around it to allow\nthings like filtering all things with or without that tag, or deleting it and so\non.\n\n## Testing\n\nYou can run the tests using `./run-tests.sh`. You can pass extra flags to mocha,\nso you can watch test files by doing `./run-tests.sh --watch`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fowengage%2Finfinite-monkeys","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fowengage%2Finfinite-monkeys","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fowengage%2Finfinite-monkeys/lists"}