Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

feat: allow custom themes via registry extension

Open
#132 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Quiet
Tech stack
typescript
Domain
frontend

Research direction

Start with src/themes/registry.ts and inspect the existing ThemeLayoutProps and ThemePageProps definitions, then trace how chronicle.yaml theme settings are read. Define the module-loading and configuration behavior needed for a custom theme while preserving the default and paper themes. Done means a documented custom module can provide Layout, Page, and Skeleton without modifying Chronicle's source.

Written by the indexing model from the issue text.

Description

Problem

`src/themes/registry.ts` hardcodes two themes (default, paper). There's no way for site owners to register custom themes without modifying Chronicle's source code. The theme type system (`ThemeLayoutProps`, `ThemePageProps`) is well-defined but not exposed for external use.

Suggested Approach

  • Allow `chronicle.yaml` to reference a custom theme module path:
    ```yaml
    theme:
    name: custom
    module: ./themes/my-theme
    ```
  • The module would export `{ Layout, Page, Skeleton }` conforming to the existing theme types
  • Keep default and paper as built-in themes that don't need a module path
Dominant language
TypeScript
Stars
2
Forks
1
Avg merge
5h 16m
Merged PRs (30d)
10

Getting set up

  • Ships a Dockerfile or Docker Compose file
  • No pull request template
  • No contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from raystack/chronicle

All issues in raystack/chronicle

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.