TypeGraphQL
GraphQL
Apollo GraphQL
TypeORM
PostgreSQL
JSON web token
Framer motion
Swift
ExpressJS
TypeScript
NextJS
ReactJS
As the name suggests this is a bookmarking app that I am still working on. I often come across interesting resources online that I want to save for later. I have not yet found a good cross-platform, frictionless solution with a good export feature for saving links. Another problem that I face is forgetting links I have bookmarked. The app will support import and export, web/native app and extensions, notes, folders, and link rotting prevention.
Shortcuts
I want it to be really easy to navigate the app: You can just paste when viewing the home screen and it will automatically open the "create bookmark" form. The URL field will contain whatever was pasted. To save the bookmark you press "command + enter"
Automatic title and favicon
A title for the bookmark will be required. Since I want the bookmarking process to go fast, I have written a function that automatically fetches the site title. This can then be edited if wanted but is the default title. The site's favicon is also fetched.
Organising Bookmarks
There are two ways to organize bookmarks: categories and folders. Why not just folders? I have made the experience that things get lost in folders. You save it there but then forget about it. And you won't find it unless you open that exact folder or search the bookmark title. Categories are there to increase the chance that you see a bookmark that you may have forgotten or don't remember the exact title for. They allow for a broader search.
Safari extension
The bookmarking experience is supposed to be seamless. I have written an Ios Share Extension in Swift to enable a native feel when bookmarking links.
Random links
One of the main focuses of this app is reminding people of their bookmarks. The user will get a random suggestion of three bookmarks every time he refreshes the site.
GraphQL
decided to go with GraphQL to prevent over/under fetching and to simplify dealing with the client-side fetching.
Export/Import bookmarks
I'm planning to add exporting and importing functionality. The importing is essential to make it easier for the user to switch from browser bookmarks to this website. Exporting is important so the user does not completely rely on the website being up forever.
Archive links
Just because you can find an article under a URL now, does not mean you will be able to find it forever. The website will save a copy from the site when it is bookmarked to prevent this. You can then view the site directly in the app.
Shared folder
Another feature I'm planning on integrating is shared folders. This will allow users to save bookmarks to shared folders. This will for example be useful when a team researches and wants to have a central place for links
OAuth
For now, I have integrated Authentication using JSON web tokens. In the future, I want to use OAuth instead.
React Native App
I will code a React Native app to make it easier for mobile users to use the program.
This is my first big project where I use GraphQL, TypeORM, and TypeScript. I also learned how to make apple app extensions. I also used this project to get more familiar with different authentication methods.
Even though it is not finished yet, it is the project I use the most. I also find great joy in designing and developing this website. I also enjoy that I learn a lot about different frameworks and libraries while making a useful app.