This is a summary of the architecture of Linkwarden. It's intended as a primer for collaborators to get a high-level understanding of the project.
When you start Linkwarden, there are mainly two components that run:
- The NextJS app, This is the main app and it's responsible for serving the frontend and handling the API routes.
- The Background Worker, This is a separate
ts-node
process that runs in the background and is responsible for archiving links.
Here's a summary of the main files and folders in the project:
linkwarden
├── components # React components
├── hooks # React reusable hooks
├── layouts # Layouts for pages
├── lib
│ ├── api # Server-side functions (controllers, etc.)
│ ├── client # Client-side functions
│ └── shared # Shared functions between client and server
├── pages # Pages and API routes
├── prisma # Prisma schema and migrations
├── scripts
│ ├── migration # Scripts for breaking changes
│ └── worker.ts # Background worker for archiving links
├── store # Zustand stores
├── styles # Styles
└── types # TypeScript types
We use semantic versioning for the project. You can track the changes from the Releases.