Source: https://seerepo.com/r/go-shiori/shiori/built
Markdown source: https://seerepo.com/r/go-shiori/shiori/built.md
Description: shiori is a Go repo built with github.com/julienschmidt/httprouter, Vite, Vue, and vue-router. It stores its data in SQLite and MySQL.

# What is shiori built with?

shiori is a Go repo built with github.com/julienschmidt/httprouter, Vite, Vue, and vue-router. It stores its data in SQLite and MySQL, reaches it with github.com/jmoiron/sqlx and github.com/huandu/go-sqlbuilder, signs people in with github.com/golang-jwt/jwt/v5, makes its content with github.com/PuerkitoBio/goquery, github.com/disintegration/imaging, github.com/go-shiori/go-readability, and golang.org/x/image, is tested with github.com/stretchr/testify, github.com/mxschmitt/playwright-go, Docker, and github.com/testcontainers/testcontainers-go, deploys with github.com/sirupsen/logrus, and uses go-sqlite3, pq, github.com/patrickmn/go-cache, and Postgres. It has 58,908 written lines, with 69 test files.

Read on November 12, 2026, at commit aebb402.

Repository: https://github.com/go-shiori/shiori

## Backend (/)

### Data

- **[go-sqlite3](https://seerepo.com/uses/go-sqlite3)**
- **[pq](https://seerepo.com/uses/pq)**
- **[SQLite](https://seerepo.com/uses/sqlite)**: 4 files · [internal/database/sqlite.go, line 19](https://github.com/go-shiori/shiori/blob/aebb4021a56048eed4c8feb325399be5f46e5470/internal/database/sqlite.go#L19)
- **[github.com/patrickmn/go-cache](https://seerepo.com/uses/githubcom-patrickmn-go-cache)**: 2 files
- **[MySQL](https://seerepo.com/uses/mysql)**: 2 files · [internal/database/mysql.go, line 16](https://github.com/go-shiori/shiori/blob/aebb4021a56048eed4c8feb325399be5f46e5470/internal/database/mysql.go#L16)
- **[Postgres](https://seerepo.com/uses/postgres)**: 1 file · [go.mod, line 22](https://github.com/go-shiori/shiori/blob/aebb4021a56048eed4c8feb325399be5f46e5470/go.mod#L22)

### Data access

- **[github.com/jmoiron/sqlx](https://seerepo.com/uses/githubcom-jmoiron-sqlx)**: 8 files
- **github.com/huandu/go-sqlbuilder**: 7 files

### Sign-in

- **[github.com/golang-jwt/jwt/v5](https://seerepo.com/uses/githubcom-golang-jwt-jwt-v5)**: 1 file

## Support (/)

### The base

- **github.com/julienschmidt/httprouter**: 4 files

### Content

- **[github.com/PuerkitoBio/goquery](https://seerepo.com/uses/githubcom-puerkitobio-goquery)**: 2 files
- **[github.com/disintegration/imaging](https://seerepo.com/uses/githubcom-disintegration-imaging)**: 1 file
- **github.com/go-shiori/go-readability**: 1 file
- **[golang.org/x/image](https://seerepo.com/uses/golangorg-x-image)**: 1 file

### Testing

- **github.com/stretchr/testify**: 53 files
- **github.com/mxschmitt/playwright-go**: 5 files
- **[Docker](https://seerepo.com/uses/docker)**: 1 file
- **github.com/testcontainers/testcontainers-go**: 1 file

### Deploy

- **[github.com/sirupsen/logrus](https://seerepo.com/uses/githubcom-sirupsen-logrus)**: 10 files

### Tools

- **swag**
- **github.com/spf13/cobra**: 13 files
- **github.com/swaggo/http-swagger/v2**: 1 file

### Other

- **github.com/pkg/errors**: 7 files
- **github.com/gofrs/uuid/v5**: 4 files
- **github.com/spf13/afero**: 3 files
- **golang.org/x/crypto**: 2 files
- **github.com/blang/semver**: 1 file
- **github.com/fatih/color**: 1 file
- **github.com/muesli/go-app-paths**: 1 file
- **github.com/sethvargo/go-envconfig**: 1 file
- **github.com/spf13/pflag**: 1 file
- **golang.org/x/net**: 1 file
- **golang.org/x/term**: 1 file

## Frontend (webapp)

### The base

- **[Vite](https://seerepo.com/uses/vite)**: [in webapp/package.json](https://github.com/go-shiori/shiori/blob/aebb4021a56048eed4c8feb325399be5f46e5470/webapp/package.json)
- **[Vue](https://seerepo.com/uses/vue)**: 35 files · [in webapp/package.json](https://github.com/go-shiori/shiori/blob/aebb4021a56048eed4c8feb325399be5f46e5470/webapp/package.json)
- **[vue-router](https://seerepo.com/uses/vue-router)**: 12 files

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**

## Support (webapp)

### Other

- **vue-i18n**: 22 files
- **Pinia**: 6 files

## Other repos with a similar stack

- [go-gitea/gitea](https://seerepo.com/r/go-gitea/gitea/built): go-sqlite3, pq, SQLite, MySQL, Postgres, Vite, Vue, github.com/golang-jwt/jwt/v5, github.com/PuerkitoBio/goquery, golang.org/x/image, Tailwind CSS · [Compare](https://seerepo.com/compare/go-gitea/gitea/vs/go-shiori/shiori)
- [Wei-Shaw/sub2api](https://seerepo.com/r/Wei-Shaw/sub2api/built): pq, SQLite, github.com/patrickmn/go-cache, Postgres, Vite, Vue, vue-router, github.com/golang-jwt/jwt/v5, golang.org/x/image, Tailwind CSS · [Compare](https://seerepo.com/compare/go-shiori/shiori/vs/Wei-Shaw/sub2api)
- [usememos/memos](https://seerepo.com/r/usememos/memos/built): pq, SQLite, MySQL, Postgres, Vite, github.com/golang-jwt/jwt/v5, github.com/disintegration/imaging, Tailwind CSS · [Compare](https://seerepo.com/compare/go-shiori/shiori/vs/usememos/memos)
- [infiniflow/ragflow](https://seerepo.com/r/infiniflow/ragflow/built): pq, MySQL, Postgres, github.com/golang-jwt/jwt/v5, github.com/PuerkitoBio/goquery, golang.org/x/image, Tailwind CSS · [Compare](https://seerepo.com/compare/go-shiori/shiori/vs/infiniflow/ragflow)
- [siyuan-note/siyuan](https://seerepo.com/r/siyuan-note/siyuan/built): go-sqlite3, SQLite, github.com/patrickmn/go-cache, github.com/golang-jwt/jwt/v5, github.com/PuerkitoBio/goquery, github.com/disintegration/imaging, golang.org/x/image · [Compare](https://seerepo.com/compare/go-shiori/shiori/vs/siyuan-note/siyuan)
- [n8n-io/n8n](https://seerepo.com/r/n8n-io/n8n/built): SQLite, MySQL, Postgres, Vite, Vue, vue-router · [Compare](https://seerepo.com/compare/go-shiori/shiori/vs/n8n-io/n8n)

## Frequently asked questions

### What language is shiori written in?

shiori is written in Go, with 58,908 written lines.

### What framework does shiori use?

shiori is built with github.com/julienschmidt/httprouter, Vite, Vue, and vue-router.

### What database does shiori use?

shiori stores its data in SQLite and MySQL and reaches it with github.com/jmoiron/sqlx and github.com/huandu/go-sqlbuilder.

The proof: [internal/database/sqlite.go, line 19](https://github.com/go-shiori/shiori/blob/aebb4021a56048eed4c8feb325399be5f46e5470/internal/database/sqlite.go#L19)

### What does shiori sign people in with?

shiori signs people in with github.com/golang-jwt/jwt/v5.

### What services does shiori use?

shiori uses go-sqlite3, pq, github.com/patrickmn/go-cache, and Postgres.

### Does shiori have tests?

Yes. shiori has 69 test files and is tested with github.com/stretchr/testify, github.com/mxschmitt/playwright-go, Docker, and github.com/testcontainers/testcontainers-go.

### Which repos have a stack like shiori's?

The ones that share most of its stack: go-gitea/gitea, Wei-Shaw/sub2api, and usememos/memos.

## What is your repo built with?

Any public repo, with no account: https://seerepo.com/r/owner/repo/built, with the owner and name it has on GitHub.
