keep track of things you learn / discover everyday!

Overview

πŸ—„ Personal Archive

Docker Image Size (latest semver) GitHub repo size Lines of code GitHub go.mod Go version GitHub commit activity GitHub Release Date GitHub last commit

Personal-Archive keeps track of things you learn / discover everyday!

πŸ’‘ Why

I face tons of articles every day. Via googling or RSS or email newsletter or blog. Among them, some useful article go into Pocket or Instapaper, but I didn't bring them out again. I completely forgot.

Oh, I thought I needed to organize these things. I had to sort out the important ones and sort them properly so that I could find them again later. I needed something like an article database, an article management tool, and second brain. I looked for a suitable tool for me, but nothing found. So I made it myself.

πŸ“‹ Features

  • You just throw a URL for an article. It will automatically convert them into markdown and save them.
    • You can read all of those articles in same UI which is optimized for reading. without any distraction like ads.
    • Of course, you can edit them. There's a VI editor for you.
  • You can add multiple tags on an article.
  • Did you get an insight from article? You can create some note that has a reference to that article.
  • Full text search also supported.
  • Tired of entering a URL manually? It can integrates with Pocket. All the article in your Pocket will be synced automatically.
  • No external database, specific language runtime or dependency required. All you need is just a machine with docker.
    • All data is stored in embedded sqlite3 database.
  • Lightweight. Thanks for golang.

πŸ–₯ Screenshot

screenshot

βœ’οΈ How do I use it?

How do I use it

πŸ•Ή Quick Start

$ docker run -td -v ~/.personal-archive:/data -p 1121:1121 --name personal-archive lastiverse/personal-archive:latest

πŸ”¨ Development

Run backend:

$ make run-local

Run frontend:

$ make run-webui

πŸ”­ Future work

  • Dark mode.
  • Support mobile environment.
  • Authentication.
  • Nested tag tree.
  • Personalized reader configuration (e.g. font family / size ...)
You might also like...
GORE is a bulk file renamer written in Go as a personal project to learn programming.

GORE is a bulk file renamer written in Go as a personal project to learn programming. Run GORE in the directory you want to rename fil

Advent of Code 2021 - Time to learn Go

aoc2021 Advent of Code 2021 - Time to learn Go Will contain my solutions for aoc2021, so avoid reading the files in .src/aoc2021/ unless you want spoi

Personal Advent of Code challenges to force me to learn Go.

Advent of Code 2021 A list of 31 challenges I am completing using Golang for the month of December. Day 1: Quicksort Variables Constants Lists Comment

learn mit 6.824 lab

MIT6.824 lab1 MapReduce timeout: command not found - brew install coreutils panic data race - εŠ ι” ε†…ε±‚ε˜ι‡δΌšε±θ”½ε€–ιƒ¨εŒεε˜ι‡ test1 word-count ζ΅‹θ―•εŸΊζœ¬εŠŸθƒ½ test2 indexer

Assembly syntax that makes you feel like you're writing code in a high-level language.

shasm Assembly syntax that makes you feel like you're writing code in a high-level language. Shasm is not an Assembler. Shasm simply compiles Shasm sy

The package manager for macOS you didn’t know you missed. Simple, functional, and fast.
The package manager for macOS you didn’t know you missed. Simple, functional, and fast.

Stew The package manager for macOS you didn’t know you missed. Built with simplicity, functionality, and most importantly, speed in mind. Installation

If you accept that 1 day is 24 hours in some situations, you might want to parse it in Go too.

relaxduration If you accept that 1 day is 24 hours in some situations, you might want to parse it in Go too. This package tries to handle situations w

:chart_with_upwards_trend: Monitors Go MemStats + System stats such as Memory, Swap and CPU and sends via UDP anywhere you want for logging etc...

Package stats Package stats allows for gathering of statistics regarding your Go application and system it is running on and sent them via UDP to a se

James is your butler and helps you to create, build, debug, test and run your Go projects
James is your butler and helps you to create, build, debug, test and run your Go projects

go-james James is your butler and helps you to create, build, debug, test and run your Go projects. When you often create new apps using Go, it quickl

Comments
  • Add syntax highlighting feature

    Add syntax highlighting feature

    Add syntax-highlighting feature from react-syntax-highlighter.

    It is just using of demo codes at react-markdown

    It has some problems,

    1. react-syntax-highlighter doesn't support typescript. issues
    2. I just copy&paste demo codes, so highlighting theme is dark.

    Thanks for your good work! I really enjoy your works. personal-archive is essential tool for my development.

    opened by illusionist-osmin 2
  • support simple text editor

    support simple text editor

    • for whom doesn't use vi and mobile.
    • setting page should have editor config.
      • editor config value should be stored in misc table, and local storage in frontend
    opened by Jaeyo 0
  • add main page

    add main page

    I don't know what specific items should be included yet. but I think it would be good to show "recently added article", "favorite tags" ...

    opened by Jaeyo 0
  • note should be also searchable

    note should be also searchable

    • search result page should be consist of 2 panel (article, note) and has no pagination.
      • each panel have show more link to each search result page which has pagination.
      • each panel only show 15 items.
    opened by Jaeyo 0
Releases(v0.8.1)
Owner
Lee Jaeyong
Lee Jaeyong
You could leverage Alfred and Google Sheets to track your time with ease.

You could leverage Alfred and Google Sheets to track your time with ease. The goal is to track your time in a way that is easy to understand how much time you spend on.

Kai-Chu Chung 1 Dec 25, 2022
A bin which will keep screen open by moving a mouse

Stay Awake This is a small program which will move mouse up and down to keep screen on. This stimulates like user is doing something. Motivation I had

Nirav Patel 0 Oct 21, 2021
Squizit is a simple tool, that aim to help you get the grade you want, not the one you have learnt for.

Squizit is a simple tool, that aim to help you get the grade you want, not the one you have learnt for. Screenshots First, input PIN Then enjoy! Hoste

cyan 11 Mar 11, 2022
Marquee for bar and other things.

Marquee for bar and other things.

Gabriel 1 Oct 5, 2021
Names things like they're action movies from the mid 90s.

thing-namer Names things like they're action movies from the mid 90s. Installing You know the drill. go get github.com/Unquabain/thing-namer Building

Ben C. Forsberg 0 Nov 6, 2021
An application to track my net worth

retire-early A summer holiday project to track my net worth and also learn Go. Inspired by a Programmer's Guide to Saving, Investing, and Retiring Ear

null 0 Aug 14, 2022
Track health of various dependencies - golang

Background This package helps setup health check based on status of external dependencies. The idea is to add all external dependencies like database,

Dave Amit 1 Dec 17, 2021
Bird Watcher on Exercism's Go Track

Bird Watcher Welcome to Bird Watcher on Exercism's Go Track. If you need help ru

Jor-El Hernandez 0 Dec 30, 2021
Solutions to Exercism's Go track

Exercism Go Track Running the tests To run the tests run the command go test from within the exercise directory. If the test suite contains benchmarks

Kim Hallberg 3 May 19, 2022
Application to learn and demo Tekton pipelines

Tekton sample Application to learn and demo Tekton pipelines Building $ go test ./pkg/api && go build Running it locally $ podman-compose up --force-r

Sergi Jimenez 1 Oct 28, 2021