📈 GH Trending Explorer 🎲 Surprise me

← all repos

gr8rstudio / gr8r-studio

git clone https://github.com/gr8rstudio/gr8r-studio.git

Gr8r Studio: a calm, structured project management workspace. Vite + plain ES modules.

+239
stars, 24h · #153
+~828
stars, 7 days · #261
+1.2k
stars, 30 days · #679
1.2k
★ total · +199% this week
267
forks · 5 open issues

Star history (as recorded here)

2026-10-20 · 890 ★ 2026-10-23 · 1,245 ★
LanguageJavaScript
License—
Created2026-10-07 (16d ago)
Last push16d ago
Watchers6
OwnerUser

Links

README excerpt
# Gr8r Studio
A calm, structured project management workspace: home dashboard, inbox, my tasks, projects with
board / list / table / calendar / timeline / files views, members, teams, activity and settings.
Built with plain JavaScript ES modules and CSS, bundled by Vite. There is no
UI framework and no runtime dependency.
## Getting started
Requires Node.js 18 or newer (`.nvmrc` pins 22).
 [code] 
## Project structure
 [code] 
### Layers
Dependencies point downward:
1. `core/` and `data/` depend on nothing else in the app.
2. `ui/`, `shell/`, `components/`, `pages/`, `views/`, `overlays/` and `features/` render HTML from state.
3. `actions/` change state and re-render. Each action module registers its handlers on the
 shared action table (`A`) when it loads, so `main.js` imports them after `actions/actions.js`.
## Conventions
- **Rendering:** each page or view is a function that returns an HTML string from the store
 (`S`). `render()` rebuilds the shell and keeps focus and scroll positions.
- **Interactions:** elements declare `data-a="actionName"`. `actions/events.js` delegates the
 click to `A.actionName`. Inputs use `data-in`, blur handlers use `data-blur`.
- **Layout:** every page edge uses `var(--gutter)`, so the breadcrumb, page header, toolbar,
 list, table and board start on the same line.
- **Dropdowns:** write a normal ` `. `ui/select.js` renders it as the
 design-system menu and keeps the native element as the source of truth.
- **Icons:** call `ic('name')` with any Lucide icon name. The
 `virtual:icons` plugin bundles only the icons the source uses.
## Continuous integration
Every push and pull request runs lint, the format check and a production build
(`.github/workflows/ci.yml`).
## Deploy
`vercel.json` builds with Vite and serves `dist/`.