{"id":25008826,"url":"https://github.com/junongx/justjot-backend","last_synced_at":"2025-07-11T17:43:07.927Z","repository":{"id":226941905,"uuid":"769797090","full_name":"JunoNgx/justjot-backend","owner":"JunoNgx","description":"Backend for JustJot, a keyboard-first note-taking app","archived":false,"fork":false,"pushed_at":"2025-03-27T14:21:28.000Z","size":159,"stargazers_count":9,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-01T20:31:12.841Z","etag":null,"topics":["backend","javascript","pocketbase"],"latest_commit_sha":null,"homepage":"https://justjot.app","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JunoNgx.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license.md","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}},"created_at":"2024-03-10T04:41:27.000Z","updated_at":"2025-05-27T10:14:52.000Z","dependencies_parsed_at":"2024-04-19T15:57:07.687Z","dependency_job_id":null,"html_url":"https://github.com/JunoNgx/justjot-backend","commit_stats":null,"previous_names":["junongx/justjot-backend"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/JunoNgx/justjot-backend","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JunoNgx%2Fjustjot-backend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JunoNgx%2Fjustjot-backend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JunoNgx%2Fjustjot-backend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JunoNgx%2Fjustjot-backend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JunoNgx","download_url":"https://codeload.github.com/JunoNgx/justjot-backend/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JunoNgx%2Fjustjot-backend/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264864064,"owners_count":23675286,"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":["backend","javascript","pocketbase"],"created_at":"2025-02-05T03:53:50.208Z","updated_at":"2025-07-11T17:43:07.882Z","avatar_url":"https://github.com/JunoNgx.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JustJot (backend)\n\nA minimalist keyboard-first note-taking Progressive Web App, tailored for fast operations.\n\nFrontend repository [here](https://github.com/JunoNgx/justjot-frontend).\n\n## Deployment status\n[![Deploy to ftp server](https://github.com/JunoNgx/justjot-backend/actions/workflows/main.yml/badge.svg)](https://github.com/JunoNgx/justjot-backend/actions/workflows/main.yml)\n\nThis production deployment of JustJot is provided by [PocketHost](https://pockethost.io/).\n\n## Overview\n\n[JustJot](https://justjot.app/) is powered by [PocketBase](https://pocketbase.io/). This repository is a set of JS hooks for PocketBase, catered to specific business logic beyond what PocketBase provided out of the box.\n\nIt should be noted that PocketBase's JS hooks are powered by [GoJa](https://github.com/dop251/goja), a VM implementation of JavaScript in Go, which come with a lot of caveats.\n\n## Features\n\nWith CRUD and authentication logic provided by PocketBase out of the box, the logic in this repository merely serves as extra fine-tuning and data processing to enrich the user data, such as item type classification, meta-data fetching, and management of test account.\n\n## Schemas and migrations\n\nRelated [PocketBase documentation](https://pocketbase.io/docs/js-migrations/).\n\nMigration scripts are stored in the `pb_migrations` directory, and is auto-generated from changes made in the schema in the admin UI (as per default settings).\n\nThe directory `_misc` stores the schema of the application at the release candidate milestone (in mid-April 2024). The migration scripts in this repository handles changes in the database schema from this point onwards.\n\nFor development purposes, to undo the previous migrations (aka, \"migrate down\"), run `./pocketbase migrate down [n]` (without brackets), with `n` being the number of migrations.\n\n## Branches\n\nAn alternative version of the logics implemented in this repository can be found in the `go` branch (incomplete and not up-to-date), where they are implemented in native Go, with PocketBase as a Go framework, compiling to custom binary executable.\n\n## Running locally\n\nThis repository requries a PocketBase executable. JustJot was first developed with PocketBase version `0.22.7`.\n\nWith PocketBase executable placed in this repository (which is already `gitignore`'ed):\n\n```\n./pocketbase serve\n```\n\n## Environment varible\n\nThis application does not require any environment variables for runtime.\n\nHowever, there are CI/CD pipelines via GitHub actions that would deploy the JS hooks into the PocketHost instance, whose secret variables are to be managed on GitHub:\n* FTP_PASSWORD\n* FTP_SERVER\n* FTP_USERNAME\n\n\n## Schema\n\nThe database schema used by JustJot is stored in the directory `_misc`.\n\n## Feature roadmap\n* Refactor to TypeScript.\n* Unit and integration tests.\n\n## Contribution\nFor bug reporting, issues, and design suggestions, please open new issues.\n\nDue to the highly personal nature of this, I am selective about what to be developed and merged into production. Please discuss with me prior to investing non-trivial efforts.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjunongx%2Fjustjot-backend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjunongx%2Fjustjot-backend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjunongx%2Fjustjot-backend/lists"}