Overview
vimcolorschemes helps people discover Vim and Neovim colorschemes by turning GitHub repositories into searchable pages and rendered code previews.
The project is split into three main parts:
- The App displays colorschemes, repository metadata, rankings, filters, and preview UI at vimcolorschemes.com.
- The Worker finds candidate repositories, updates metadata, generates colorscheme data, and triggers app deploys.
- extractor.nvim runs inside Neovim and reads highlight groups from real colorschemes so previews reflect actual editor output.
What you can work on
Section titled “What you can work on”Many frontend changes can be made without running the full system.
Use the frontend path if your work is about the website experience. The app includes a local SQLite database for UI work that does not require Worker jobs.
Use the full stack path if your work changes data shape, repository import behavior, preview generation, or the interaction between the Worker and the app.
Project repositories
Section titled “Project repositories”| Part | Repository | Main Stack |
|---|---|---|
| App | vimcolorschemes/vimcolorschemes | Next.js, TypeScript, SQLite/libSQL |
| Worker | vimcolorschemes/worker | Go, SQLite/libSQL, GitHub API |
| Extractor | vimcolorschemes/extractor.nvim | Lua, Neovim API |
Mental model
Section titled “Mental model”The data flow has these steps:
- The Worker searches GitHub for repositories that may be Vim or Neovim colorschemes.
- The Worker stores repository metadata in SQLite/libSQL.
- The Worker installs candidate repositories as Neovim plugins.
extractor.nvimreads highlight groups from a real Neovim session.- The Worker stores generated colorscheme data in the database.
- A publish job triggers the frontend deploy after the daily data jobs succeed.
- The app reads the latest database and renders the public website.
For more detail, read the architecture map and data flow.