@dansophi/sidepanel
v0.2.0
Published
The settings page your codebase never had.
Maintainers
Readme
Sidepanel
The settings page your codebase never had.
Sidepanel gives coded websites a local visual interface for metadata, social previews, favicons, indexing, and other site settings.
No account. No cloud. No repository access. Your code stays on your machine.
Quick start
Once published, run this from an existing Next.js App Router or Vite + React project:
cd your-nextjs-project
npx @dansophi/sidepanelSidepanel scans the current working directory, starts a localhost-only interface on port 4242, and opens it in your browser. Use sidepanel --port 4321 to choose another port, sidepanel --no-open to skip the browser, or sidepanel audit for a terminal summary. The current release is package-ready but has not been published to npm yet.
Sidepanel runs entirely on your machine. Your source code is never uploaded anywhere.
Why Sidepanel?
When a site is built directly in code, changing a title, favicon, Open Graph image, canonical URL, or robots rule usually means opening a source file or prompting an agent. Sidepanel is the missing settings interface for that maintenance work. The source code stays the source of truth; Sidepanel only proposes and applies explicit, reviewable file changes.
Features
- Next.js App Router route discovery
- Source-aware root and page metadata
- Static metadata editing for titles, descriptions, canonical URLs, Open Graph, Twitter, and indexing
- Local search and social previews
- Favicon and local image replacement with collision-safe targets
- Robots and sitemap detection
- Deterministic audit findings with concrete actions
- Pending changes, readable diffs, and explicit Apply changes
- Git branch and working-tree awareness
- Light and dark themes
Supported frameworks
v0.2 supports Next.js with the App Router and Vite + React projects. React Router is detected inside Vite projects. Astro, Remix, Nuxt, and Next.js Pages Router projects are detected as unsupported rather than modified.
Vite + React support in v0.2 covers the common deterministic surface:
- root
index.html<title>, description, canonical, Open Graph title/description/image, Twitter/X card, and<html lang>metadata - favicon links pointing to local
public/favicon.icoorpublic/favicon.svg - local Open Graph images,
public/robots.txt,public/sitemap.xml, and linked or conventional manifest files for inspection - React Router detection and a normalized single-page
/route - static literal React Helmet / Helmet Async
<title>,<meta>, and canonical<link>values
Vite dynamic React metadata, runtime expressions, generated assets, and custom robots/sitemap implementations remain read-only. Sidepanel does not rewrite arbitrary React code.
How it works
The CLI selects a framework adapter, scans supported project files into a normalized project model, and serves a local React interface. Static export const metadata objects are parsed with the TypeScript compiler API. A mutation is only planned after the expected AST structure is confirmed, the transformed source parses cleanly, and a diff is available for review.
Dynamic generateMetadata functions, dynamic Helmet values, generated icon/OG files, and complicated robots or sitemap implementations are inspect-only in v0.2.
Privacy
Sidepanel binds to 127.0.0.1, has no account, makes no cloud requests, sends no source code to an LLM, includes no telemetry, and never reads .env, .env.local, or related environment files for display. It does not commit, push, change branches, or reset files.
Limitations
Reliability is prioritized over broad pattern coverage. Sidepanel does not execute application code or resolve runtime data. If a value cannot be safely located and transformed, the UI explains why and links to the source file.
Architecture
See docs/architecture.md for the project model, scanner, framework adapters, source tracking, mutation strategy, safety boundaries, and local server design.
packages/
core/ normalized model and audit
adapter-next/ Next.js App Router scanner and mutations
adapter-vite/ Vite + React HTML scanner and mutations
cli/ localhost server and terminal commands
apps/web/ React + Vite + Tailwind + shadcn primitives
fixtures/ representative Next.js projects
tests/ scanner and mutation testsContributing
npm install
npm test
npm run buildTo exercise the CLI from the repository against the included fixture:
npm run sidepanel -- fixtures/next-basic --no-open --port 4242The positional fixture path is a contributor convenience. End users do not pass a project path: npx @dansophi/sidepanel always treats process.cwd() as the target website.
Please add a fixture and tests for every new metadata pattern. Keep transformations conservative, source-aware, and independent of network services.
Publishing
Publishing is intentionally not performed by the repository's development workflow. The package is scoped as @dansophi/sidepanel for public npm access while its executable remains sidepanel.
After reviewing the package tarball, updating the name, and confirming npm authentication:
npm whoami
npm test
npm pack --dry-run
npm publish --access publicThe package root owns the public sidepanel executable. prepack builds the CLI, adapter, core scanner, and web assets into dist/, which is the only runtime directory included in the npm tarball besides the README and MIT license.
Roadmap
- More safe static patterns for Next.js metadata
- Richer diff review and file opening integrations
- Additional framework adapters after the Next.js adapter is mature
- Expanded terminal audit output
License
MIT. See LICENSE.
