urlStash

A webapp for sharing urls.

[Currently WIP]

This project is currently Work in Progress. Some functionality might not be implemented yet.

Table of Contents

Motivation

While there are several existing services that allow you to bookmark or share links, many are closed-source and lack the flexibility and customization. With urlStash, you get the power and control over your data by self hosting your own instance.

Features

  • Easily create collections of links (stashes) and organize them with descriptive titles.
  • Easily Add/Remove more links to your Stashes

Tech Used

  • Golang net/http for building the REST API
  • Postgres as the Database
  • Sveltekit for the frontend

Getting Started

Prerequisities:

  • Go >=1.22
  • Nodejs and npm
  • A Postgres Database up and running on your system

Download:

git clone https://github.com/ary82/urlStash.git && cd urlStash

Run:

  • First, you'll need to populate the env vars required for the project. Copy the .env.example files and populate them
cp ./.env.example ./.env
cp ./web/.env.example ./web/.env
# Populate the empty fields
  • Next, prepare your DB by running
psql -h localhost -p PORT -U USERNAME -W urlStash -f ./migrations/init_up.sql
  • Build and run the REST API
make run
# Or watch for changes using air
make watch
  • Build and run frontend. Install dependencies using your node package manager(npm, yarn, pnpm). I'm using pnpm for this project.
cd web
# Install dependencies
pnpm install
# Run in dev mode
pnpm run dev
# Or build
pnpm run build

Todo

  • Code

    • Complete basic functionality
    • Decouple Database logic completely, pass behaviour instead
    • Add More Tests
    • Make middleware more readable
  • Features

    • Sharing with specific users
    • Make Google auth optional in build step
    • Dockerize and make self hostable
    • Allow importing/exporting from browser

Top categories

svelte logo

Want a Svelte site built?

Hire a Svelte developer
Loading Svelte Themes