Linky is a tag-based bookmark manager written in Node/React and uses MongoDB for persistence.
Note: The demo runs Linky without a user and hence you cannot add or remove links!
- Node `>= 8.0`
- MongoDB `>= v3.2.11` up and running
Backend:
The available configuration options are specified in linky-api/config.js.example
. Copy this file to linky-api/config.js
and change the parameters as per your needs.
Since Linky was designed to be used as a personal tool, signing up new users is currently not implemented. When you first deploy Linky, a new user is created using the username/password provided in config.js
.
Frontend:
The frontend configuration options are specified in linky-website/src/config.js.example
. Copy this file to linky-api/src/config.js
and change the ApiURL
to point to your backend installation.
If you intend to run Linky in a sub-path rather than at the server root (https://mydomain.com/linky
instead of https://mydomain.com
):
> echo "BASE_PATH=https://<server root>" > ./linky-website/.env
You will also need to set the the baseName
to the base path of Linky in this case, eg: export const BaseName = "/linky"
The frontend is a browser-rendered React app created using create-react-app. You can refer to its README for any further customisations.
Backend:
Ensure you have MongoDB up and running. And then:
cd linky-api npm install node app.js
Frontend:
cd linky-website npm install npm run build node server.js
You can edit linky-website/server.js
to change the server port or do any other custom actions. By default the api is served on port 3060
and the website on port 3061
.
The homepage allows specifying tags to select as a query parameter: https://mydomain.com?tags=design,work
.
The add-link path allows you to specify the url to add as a query parameter: https://mydomain.com/add?link=<url>
- Allow editing and deleting tags
- Allow logical operations between tags, eg:
'tools' && 'design'
- Allow saving a filter as a bookmark
- Show proper loading animations and error messages