TablissNG banner

TablissNG

41 devlogs
165h 34m 47s

My version of Tabliss that I will be maintaining in the future. A beautiful, and infinitely customisable New Tab page for Firefox, Chrome, and Edge. This is a fork of the original Tabliss (an extremely popular unmaintained New Tab extension) with…

My version of Tabliss that I will be maintaining in the future. A beautiful, and infinitely customisable New Tab page for Firefox, Chrome, and Edge. This is a fork of the original Tabliss (an extremely popular unmaintained New Tab extension) with many more features, bug fixes and improvements.
Updated Project: I started this project long before Flavortown, but only really started doing major work during Flavortown. You an see all the changes if you look at CHANGELOG.md in my repo! (Version 1.6.0 and onwards)

Demo Repository

Loading README...

Simon

More Safari Work

The safari extenwion is now at the point where I can put it on tesflight. its not public yet because it has to be reviewed unfortunately. This was a few small changes to the workflow, the icons, the manifest, etc…

Remove Jest

As it turns out Jest bundles thousands of dependencies and is really slow. Since I’m already in the Rspack ecosystem, I’m now using rslint which was a pretty much drop in replacement. I’m down from ~7k packages to ~3k which is just insane!

Changelog

Attachment
0
Simon

Shipped this project!

Hours: 12.62
Cookies: 🍪 398
Multiplier: 26.31 cookies/hr

This is the last ship for the week of the “Locking In” sidequest.

Since the last ship, TablissNG has some major improvements, especially with the 5 day forecast, translations, e2e tests, set highlighting improvements, and a toggle for the clock seperator.

Simon

Translation System Overhaul (few more fixed + MERGED!)


Not much has actually changed with it since the last devlog, but I merged it and everything seems to be working well!


Weather Improvements


The weather widget got a solid upgrade with a new 5-day forecast view and conditional visibility controls.

You can now choose to show or hide the each of the sections of the widget independently, which should help declutter the UI for users who just want the basics (or just the 5 day forecast).


Work on new icon system


I don’t have much to say about this for now, and its just on an experimental branch for now, but I started work on a new system for handling icons. The goal is to move away from the current approach of having multiple different packages of icons, and having slow loading, with a new system that cache, prechaces, and other things.


e2e Testing


Testing coverage has been expanded with new Playwright end-to-end tests covering widgets, backgrounds, and settings. This is a lifesaver, although not merged to main yet.


Build / Tooling Updates


  • Updated Rspack to stable v2

  • Disabled lazy compilation

  • Integrated translation compilation directly into the build process

  • Added a custom ESLint rule requiring explicit value props on <option> elements to avoid subtle React errors/issues


Commits

Commits are in comments, word count 🤷


Attachment
1
Simon

Translation System Overhaul (Merged & Finalized)


Replaced static locale imports with a fully dynamic, code-split locale registry and runtime message loading system backed by extracted default messages. This effectively completes the long-running translation refactor and removes most of the old ad-hoc i18n wiring.

Introduces a new end-to-end translations tooling suite covering extraction, synchronization, status reporting, creation, migration, purging, and compilation. The workflow is now driven by FormatJS with updated npm scripts and CI checks ensuring translations remain consistent and up to date. The previous package I was relying on was extremely old (10+ years ince last update) and had a lot of issues.

I also added and fixed a bunch of translations along the way, although there is nothing super important in there.


Tiny bit of Safari work


Safari extension support has been worked on a tiny bit. I worked on getting it build correctly, but nothing much beyond that.


Small other thing


For Rspack, I updated to stable v2, disabled lazy compilation, and integrated translation compilation directly into the build process.

Added a custom ESLint rule enforcing explicit value props on <option> elements to prevent subtle annoying react errors.


Commits

Commits are in comments, word count 🤷


Attachment
1
Simon

Shipped this project!

Hours: 10.6
Cookies: 🍪 341
Multiplier: 26.84 cookies/hr

TablissNG Progress Update

I continued major optimization work on TablissNG, focusing on reducing dependencies, improving performance, and cleaning up the project structure.

Key Changes

  • Replaced react-markdown and react-dropdown-select with custom lightweight implementations for better efficiency, simpler code, and more control over styling/functionality.
  • Resolved dependency security vulnerabilities.
  • Ran package cleanup/optimization with pnpm up and pnpm dedupe.
  • Added a toki pona translation.
  • Improved Unsplash image loading by lowering quality to 75% and enabling auto=format to reduce file sizes.
  • Finished (surprisingly) complex center icon positioning fixes for more accurate alignment.

Webpack -> Rspack and NPM -> PNPM

  • Migrated build system from Webpack to Rspack for dramatically faster builds and better DX.
  • Switched from ts-loader to SWC.
  • Upgraded project to TypeScript 6.
  • Migrated package management from npm to pnpm, including CI, scripts, docs, and monorepo improvements.

Overall, TablissNG is becoming faster, leaner, and easier to maintain.

Simon

Continuing major optimization work

I’ve continued improving our dependency situation by replacing react-markdown and react-dropdown-select with custom implementations. The reason for this is that these libraries were large (ish not really actually) and there was no good reason to be using a library for them, it was just convoluting the implenentation for no real benefit. The custom implementations are much smaller and more efficient, and also allow us to have more control over the styling and functionality.


I also fixed up all security vulns in the deps. Also use pnpm up and pnpm dedupe, etc.


Finally, I added a toki pona translation (yes someone actually wanted this), changed the unsplash image quality to be 75% and use auto=format to reduce image sizes and improve performance, and finally finished the middle icon positioning to make the centereing work correctly (this was suprisingly complicated to get right).


Changelog

Attachment
0
Simon

HUGE Build System Modernization

TablissNG is going through a major build system overhaul, transitioning from Webpack to Rspack for significantly improved performance and developer experience. This migration included replacing ts-loader with the faster SWC transpiler, refactoring to use native asset modules, replacing a ton of packages with other ones or just native rspack. Rspack is so unbelieveably better than webpack omg! I also updated deps and whatever and finally upgraded to typescript 6 now that everything supports it. This was a huge amount of work and is why this devlog took so long.


Package Management Migration (pnpm)

Migrated the entire project from npm to pnpm, and made docs/ act as a proper monorepo type thing. This was a massive pain. It involved updating all docs, build scripts, CI, husky hooks, etc. Mostly the reason I did this is because pnpm is objectively better :)


All of this is a branch right now, undergoing the final verification before merge. Then I will go around simplifying a ton more packages and remove bad/uneeded packages such as react-markdown (its huge and I barely use it) Image shows that builds are WAY faster now.


Commits:

Commits are in comments (word count limit)

Attachment
1

Comments

Simon
Simon 13 days ago
  • feat(ui): change hide settings icon to toolbar and fix loader race conditions (f10f1e8)
  • feat(backgrounds): add sort order option for background rotation (125e44d)
  • feat: Github Issue Forms (af5b0eb)
  • chore: remove old templates (07b2700)
  • Rename issue templates and add config (47e4520)
  • chore: remove colon from bug report title (d215ede)
  • fix: change wording so github stops annoying me (fef2540)
  • fix: default scale input display (f34ff05)
  • feat(dashboard): add transform origin based on widget position (017ecf5)
  • ci(workflows): add auto-close workflow for fixed-not-released issues (c940b83)
  • fix(workflows): improve fixed-not-released close message clarity (98540aa)
  • feat(ui): add centre position options for settings icon (2396d2f)
  • style(dashboard): adjust bottomCentre overlay position conditionally (84bd87f)
  • ci: update GitHub Actions workflows to use pnpm (929d414)
  • chore: fix docs build + docs deps (5d6aa07)
  • chore(docs): fix docs eslint and other pnpm (++) stuff (0570b02)
  • fix: add docs to pnpm workspace and update CI build (b547e48)
  • fix: oooops forgot to install (be9030e)
  • deps(typescript): upgrade to version 6! (afcd900)
  • refactor(webpack): migrate to native asset modules (89fc8b6)
  • perf(build): replace ts-loader with swc-loader (117f363)
  • refactor(build): migrate from webpack to rspack (29bf359)
  • ci: bump actions/setup-node to v6 (4c51d83)
  • chore(deps): fix prettierignore, remove unused packages, update npmcheckrc (912d1b3)
  • fix(test): enforce TypeScript compilation before running tests (87b878b)
  • fix(build): add back service worker with workbox caching strategies (138e2dd)
  • random small changes (6bc36d3)
  • Merge branch ‘main’ into pnpm (f74cd06)
  • fix: prettier on pnpm workspace (c5c2176)
  • ci: update all actions (531fbf2)
  • ci: update all actions (actually this time) (b120bfb)
  • refactor(deps): replace dotenv and glob with native Node.js fs module (bbf6792)
Simon

Shipped this project!

Hours: 13.44
Cookies: 🍪 475
Multiplier: 29.47 cookies/hr

TablissNG

Since the last release, a lot of foundational work has gone into making the project more stable, testable, and maintainable. This update is less about flashy features and more about making sure future work doesn’t break things silently.


End-to-End Testing (Playwright)

Testing has always been a weak point, especially once the app became more complex. Unit tests helped, but they couldn’t fully simulate real user behavior, especially for fragile systems like quick links.

To address this, Playwright was introduced for true end-to-end testing in a real browser environment. This is still in its early stages (only one widget is currently covered), but it establishes a much stronger foundation for confidence in future changes.


Better Links System Refactor

A major refactor was completed on the links system, focusing on simplifying architecture and removing accumulated technical debt. (The quick links overhaul is still not finished, but at least much farther along.)

Key improvements:

  • Legacy migration logic was extracted into its own module, isolating old-format handling from runtime logic
  • Introduced a strongly-typed IconConfig structure, replacing the previous string-based icon system (this is the BIG ONE)

Workflow Improvements for GitHub Issues

A new workflow was introduced to improve issue handling transparency.

When an issue is marked as fixed-not-released, it is now automatically closed with a comment explaining that the fix exists but has not yet been released to stores.

This reduces confusion around whether a fix is live or still pending release.


UI and Layout Fixes

Several long-standing UI issues were addressed:

  • Fixed widget transform origin so widgets no longer overflow when scaled near screen edges
  • Improved background control layout with proper centering and ellipsis handling
  • Fixed settings icon positioning logic introduced by the new center-position option

GitHub Issue Forms Migration

Markdown issue templates were replaced with GitHub Issue Forms.

This enforces structured input from users and improves consistency of reported issues.

One constraint discovered during this migration is that GitHub’s restriction on certain phrasing blocks the name of my project for some reason lol.


Background System Improvements

A sort order option was added for background rotation, initially used in the media widget.


CI and Release Improvements

Several improvements were made to CI and release automation:

  • Node version upgraded from 22 → 24
  • Webpack build system improved
  • Version injection automated into manifest files (single source of truth)
  • Test parallelization improvements
  • Fixed persistent loader UI bug
  • Improved settings toolbar hiding behavior
Simon

End to End Testing, Finally


Testing has always been a pain point in this project. Once things got complex, I had no real confidence that everything still worked. Unit tests helped a bit, but they did not cover real widget usage, especially quick links. Quick links are more fragile than they look. I’ve been spending a LOT of time on refactoring them and I’m never sure if I broke something until I manually test it. This is not sustainable, especially considering how complex the widget is.


The fix

I added Playwright for end to end testing so I can test real user flows in a real browser.

The idea is simple:

  • Load the app
  • Perform real interactions
  • Assert real outcomes

There is only one end to end tested widget right now. I am extremely excited to be able to expand it though, althout not as excited to have to make all of these tests :(


Commits (on a branch, not main yet):

  • fix: jest picking up playwright tests (cd212ac)
  • test: add playwright timeout configs and remove jest (json lol) from eslint (572c173)
Attachment
0
Simon

Huge progress on better-links

This batch of changes was mostly about cleaning up technical debt and making the links system way more predictable going forward. A lot of the previous logic had grown pretty messy (especially around icons and legacy data), so this refactor focuses on simplifying data flow and making things easier to extend later.


Highlights

  • Extracted legacy migration logic
    Moved all legacy data migration into its own module instead of keeping it mixed into runtime logic. This makes the main code cleaner and isolates all the “old format → new format” handling in one place.
    (c8ed832e)

  • Simplified custom image handling
    Switched from more complex handling to just using direct URLs for custom images. This was actually kinda a bug/mistake on my part (lol), but it becomes almost obsolete after this next commit. ⬇️
    (b5a2aa2)

  • Introduced IconConfig type!!!!!!!
    Replaced the old string-based icon field with a proper typed IconConfig. This is a big win for clarity and future features, icons are now structured data instead of a bunch of random strings in the data. It was such a big mess before, it’s almost incomprehensible. I’ve been wondering how to apporach this issue for a while, and thank goodness I finally figured it out.
    (aadcc55)


Overall, this sets a much cleaner foundation for better-links. The system is now more modular, easier to reason about, and better prepared for future features without piling on more hacks. Its definitely NOT perfect yet and still needs a LOT of refinement.

Attachment
0
Simon

Workflow improvements

I addded a new workflow that makes managing GitHub issues way easier. When an issue is resolved, I’m always hesitent to close it because the user might think that the fix has been released to the stores already when it hasn’t. This new workflow automatically closes issues and adds a comment to them explaining the issues has been fixed but not released yet. This happens when I markan issue as “fixed-not-released” in the issue labels.


Closing more GH issues

I fixed a few more issues and closed them. These were relatively simple fixes. One of them had been around for a while. First of all, the transform origin of widgets was always the center of the screen, so they overflowed off the screen when scaled while being positioned at the edges. I also redid the way that the controls for backgrounds are positioned to add better ellipsis for long titles and to make the controls actually centered. (can you believe they weren’t centered before? I can’t…). This was all because of the centre position option I added for the settings icon, which is pretty self explanatory.


Commits:

  • feat(dashboard): add transform origin based on widget position (017ecf5)
  • ci(workflows): add auto-close workflow for fixed-not-released issues (c940b83)
  • fix(workflows): improve fixed-not-released close message clarity (98540aa)
  • feat(ui): add centre position options for settings icon (2396d2f)
Attachment
Attachment
0
Simon

Github Issue Forms

I spent WAY too changing our simple markdown issue tempaltes for full github issues forms. This means that the user fills out a form that creates the issue for them. Not super important, but it means that the template is followed more closely now. One major issue is that apparently the wors TablissNG Version are not allowed and I have to use Extension Version instead. Its literally says “Body[3]: label contains forbidden word”


Sort order option

On the request of a user, I added a sort order option for background rotation. Right now it is only used in the media widget where before its modernization the sort order was random, but now its in sequence by defaut which is very bad Luckily this was a relatively easy fix.


Commits:

  • feat(backgrounds): add sort order option for background rotation (125e44d)
  • feat: Github Issue Forms (af5b0eb)
  • chore: remove old templates (07b2700)
  • Rename issue templates and add config (47e4520)
  • chore: remove colon from bug report title (d215ede)
  • fix: change wording so github stops annoying me (fef2540)
Attachment
Attachment
0
Simon

Some ci changes

Released version 1.6.6, and to along with this I had the renew my microsft partner api key AGAIN. I really wish they didn’t expire very three months.
I also automated the update for the extension manifests so that there is only one source of truth for versions instead of 3+. Ci was bumbed from node 22 -> node 24 (for almost no reason). Soon I will switch to pnpm (cause its infinitely better than npm.)


Nice loader fixes

This has been a bug for WAY too long, but basically I had broken the loading icon/loader thing so basically the “loading new content” icon never disappeared. I fixed that and also changed the hide srttings icon to hide settings toolbar and made it properly hide everything isntead of leaving floating icons.


Commits:

  • build: automate version injection into manifest files via webpack (7d35e3d)
  • chore: release v1.6.6 (c56cec3)
  • ci: node 24, webpack cache, parallelise tests (89dedd9)
  • feat(ui): change hide settings icon to toolbar and fix loader race conditions (f10f1e8)
Attachment
0
Simon

Shipped this project!

Hours: 126.84
Cookies: 🍪 1820
Multiplier: 27.43 cookies/hr

[1.6.6] - 4/4/2026 | LeetCode widget, APOD improvements, and bugfixes

Adds a new LeetCode calendar widget, APOD video support and cache improvements, a backgrounds controls visibility toggle, configurable quote refresh timeout, and a critical quick link upload bugfix. Also includes translation updates and A LOT OF INTERNAL REFACTORS.

Added

  • feat(leetcode): add Leetcode calendar widget (#121). a9e6eed3

  • feat(apod): add video support and background handling. 62d202f5

  • feat(apod): add cache freshness check for data retrieval. dbf0f0ef

  • feat(backgrounds): add controls visibility toggle setting. 1d00b432

  • feat(quote): add configurable timeout for quote refresh. cfebaf2e

Changed

  • feat(cache): change image caching strategy to NetworkFirst. cfacda40

  • style: add inline-flex display to summary and link elements to correctly center them vertically. 21fcf026

Fixed

  • fix: critical issue with quick link upload bug. fdefc435

Translations

  • Update Spanish and Catalan translations (#120). ce357784

  • Update fr.json (#131). 9ec671e1

Internal

  • refactor(tsconfig): modernization updates and cool stuff. f5a7e3f2

  • refactor(plugins): consolidate unknown widget configuration and remove unused exports. 62cf0a07

  • chore: react-codemod auto fix react imports. cf362ef2

  • fix(hooks): fix lint by handling nullish callback in useKeyPress hook. d26742f3

  • fix(ts): clean up unused variables and improve checkbox handlers. fb776682

  • fix: eslint trello auth lint error. 56150650

  • deps go brrrrrrrr. ef9824aa

  • chore(deps): yay more dep updates. 638fb288

  • chore: pin serialize-javascript to ^7.0.4. 175a5fcc

  • feat(docs): add google site verification metadata. 57cf7578

  • refactor: convert React namespace imports to named imports across codebase. a9921099

  • style: sort imports across codebase. 4835fd8b

  • chore: docs deps override again. e0a1162d

Closed Issues

  • #124 [BUG] Only one URL user icon can be assigned, user icons on other URLs dissapearing
  • #123 [FEATURE] Hide background switching buttons
  • #119 [BUG] Bad caching behavior by service worker
  • #115 [BUG] IP Info widget seems to be broken
  • #44 [BUG] APOD provider shows a black screen when the daily media is a video

What’s Changed

New Contributors

Full Changelog: https://github.com/BookCatKid/TablissNG/compare/v1.6.5...v1.6.6

Simon

Merged Leetcode calendar

This was a pr from @Sbrjt, and I finally got it merged. Now you can be motivated by double the amount of green squares! Pretty simple implementation, mostly just follows the github calendar widget. The click action has the ability to redirect you to the POTD which is cool!


Fix react imports…

I recently ran a codemod after switching to “jsx-react”, meaning that I don’t have to import react inot every file for jsx to work. The codemod however just replace import React from "react" with import * as React from “react”` which doesn’t really help my situation. I went through almost every single file in the codepsace and painstakingly replace those with named imports which is great.
Also added yet another eslint plugin that lets me easily sort all imports across the codepsace to keep everything organized.


Commits:

  • chore: update changelog (ec21ebc)
  • style: sort imports across codebase (4835fd8)
  • refactor: convert React namespace imports to named imports across codebase (a992109)
  • Leetcode calendar widget (#121) (a9e6eed)
Attachment
0
Simon

Ohhh Quick Links + More translations work

My goal is to start making smaller devlogs now!


Who could have guessed that the quick links widget was broken in even more beatiful ways? Me… Seriously though this widget will have a major refactor soon (already in a draft pr), I just haven’t been able to fully stress test it yet. For now I’m closing an issue which practically made image uploading completely useless 😭. Anytime you changed the cache it would overide the whole cache in its entirety.


Additionaly, translations are now on the final stretch, and will be merged into main very soon! There are some annoying bugs, especially with how the dynamic loading works on first page load though.


Commit:

  • fix: critical issue with quick link upload bug (fdefc43)
Attachment
0
Simon

Random (but important) improvements

These changes are pretty random, and mostly just to close existing issues. There are some unreleased changed included in this time as well!


Docs and Deps (lol)

I added Google site verification metadata to the docs, which means that now I can have the url to the docs linked on the chrome web store. I also updated deps way too much, and spent way too long on them because of some stupid npm packages refusing to updating their own deps.


Localization

Spanish and Catalan translations were updated, and French translations also got a refresh. In addition to this, I spent multiple hours modernizing the translations mangement system on another branch, which has been a very “fun” undertaking. The old package we were using hadn’t been updated in yeeeeeaaars, so now I’m using the formatjs cli along with a ton of custom workflow scripts.


APOD improvements

APOD got two solid upgrades: video support with better background handling, plus a cache freshness check so data retrieval stays more reliable.


Caching and settings

Image caching now uses a NetworkFirst strategy (closing an issue where cache-control headers were not respected), and you can now hide the controls on backgrounds as well and the “title”


Quotes

Quote refreshes now support a configurable timeout, giving a bit more control over how long the app waits before trying again. (again this was a github issue)


Refactors and cleanup

This is really cool/important

I modernized all of the configs, especially to tsconfig and eslint configs so that I have the most up to date and efficient workflows, React import codemods were applied, unused variables were cleaned up, checkbox handlers were improved, and unknown widget configuration was consolidated with unused exports removed.


UI polish

Summary and link elements now use inline-flex so they center vertically the way they should, which tightens up a bunch of little alignment issues.


Commits:

Commits are incldued in the comment becuase I reached to character limit 😭

Attachment
Attachment
1

Comments

Simon
Simon 29 days ago

Commits:

  • feat(docs): add google site verification metadata (57cf757)
  • chore: docs deps overide again (e0a1162)
  • Update Spanish and Catalan translations (#120) (ce35778)
  • feat(apod): add video support and background handling (62d202f)
  • feat(apod): add cache freshness check for data retrieval (dbf0f0e)
  • feat(cache): change image caching strategy to NetworkFirst (cfacda4)
  • chore(deps): yay more dep updates (638fb28)
  • refactor(tsconfig): modernization updates and cool stuff (f5a7e3f)
  • chore: react-codemod auto fix react imports (cf362ef)
  • fix(hooks): fix lint by handling nullish callback in useKeyPress hook (d26742f)
  • fix(ts): clean up unused variables and improve checkbox handlers (fb77668)
  • feat(backgrounds): add controls visibility toggle setting (1d00b43)
  • style: add inline-flex display to summary and link elements to correctly center them vertically (21fcf02)
  • feat(quote): add configurable timeout for quote refresh (cfebaf2)
  • refactor(plugins): consolidate unknown widget configuration and remove unused exports (62cf0a0)
  • Update fr.json (#131) (9ec671e)
Simon

Was sick af and couldn’t work on this for a while :(


Yeah so this is just some dep updates and fixing and whatever, nothing important really.

I did have problems with google’s workbox-build having the most outdated deps ever, and so to resolve to npm audit errors I had to override the version of one of its packages, but whatever. (go google amiright)


Commits:

  • chore(release): bump version to 1.6.5 and update changelog (0147474)
  • chore: signed firefox nightly build (17aa731)
  • deps go brrrrrrrr (ef9824a)
  • chore: pin serialize-javascript to ^7.0.4 (175a5fc)
  • fix: eslint trello auth lint error (5615065)
Attachment
Attachment
0
Simon

Shipped this project!

Hours: 15.79
Cookies: 🍪 208
Multiplier: 13.16 cookies/hr

[1.6.5] - 2/20/2026 | Error logging, new widgets, and quality-of-life improvements

A solid release featuring a comprehensive error logging system, a new random color palette widget, drag-and-drop todo reordering, weather auto-update, and several UI improvements and fixes.

Added

  • feat: improve error logging and user feedback with comprehensive error log management, global error capture, and sharing functionality. 41d25f9a

  • feat(palette): add random color palette widget. 82fb9df6

  • feat(todo): add drag-and-drop reordering for todo items. f19e15e1

  • feat(weather): add auto-update location feature. 52476cfa

  • feat(search): add special URL handling. 5e14bcda

  • feat: add scroll-to-top button in Settings panel. 3fd010e3

  • feat(github): add tooltips to calendar widget. f70eeb1b

Changed

  • feat(ip-info): more robust fallbacking and parsing. 70d071da

  • Updated ES & IT files (#114). 762e4f48

  • Update Vietnamese (vi) translation (#110). 9d6cb68e

Fixed

  • fix: less gimmicky scroll to top button. decec927

  • fix(search): missing/broken translation. f54a423a

  • fix: remove whole background on chromium dev. fb9dbb52

Chore / Cleanup

  • chore: run translations. bed18d2e

  • ci: update actions to latest versions in workflows. 3add9da4

Closed Issues

  • #107 [FEATURE] font size slider?
  • #106 [FEATURE] accent colour?
  • #105 [FEATURE] distinguish “Display ..” checkboxes by indenting related sub options
  • #104 [FEATURE] make Custom CSS snippet textarea be taller by default?
  • #101 Docs are live! 🎉
  • #70 [FEATURE] Widget Placement Improvements
  • #57 Created bookmarks manager widget
  • #28 [FEATURE] Momentum Tab Inspiration

What’s Changed (PRs)

New Contributors

Full Changelog: https://github.com/BookCatKid/TablissNG/compare/v1.6.4...v1.6.5

Simon

Easy error log sharing!


Added much more error handling to the error menu. This makes it capture more errors (such as widget crashes), but also adds a button that copies the error log plus a stack trace (mostly useless, but sort of places it kinda).
Also fixed a bunch of translations that weren’t included because intl.formatMessage was defined inline :(.


Commits:

  • fix: less gimmicky scroll to top button (decec92)
  • feat: improve error logging and user feedback (41d25f9)
  • chore: run translations (bed18d2)
Attachment
0
Simon

Minigames

so that you can distract yourself…. yay…


Added a mingames widget with pong, snake, breakout, wackamole. More can be added later (maybe). Spent way too long on this, but whatever I guess.


main

  • Update Spanish and Italian translations (#114) (762e4f4)
    seperate branch
  • feat(widgets): add minigames widget with four playable games (a6f7e08)
Attachment
Attachment
Attachment
Attachment
0
Simon

Struggling to find easy things to do now … 😭


I added better fallbacks to the ip info widget, they used to be broken and the top api broke.
I added a non-intrusive button to settings to scroll back to the top of the screen.
I added drag and drop re-ordering to the todo widget. This and the previous one are issues opening on the og tabliss repo that I went through and fixed 🎉


Commits:

  • feat(ip-info): more robust fallbacking and parsing (70d071d)
  • feat: add scroll-to-top button in Settings panel (3fd010e)
  • feat(todo): add drag-and-drop reordering for todo items (f19e15e)
0
Simon

Very old (og tabliss) issues closed!

Weather auto-update location, random color palette!


I went through and found two issues from the old tabliss repo that looked fun to work on and implemented them. These were an auto updating location for the weather widget and a very advanced color palette widget. The color palettte widget had already been partly implemented by someone, but I made it much more complete and advanced


Commits:

  • feat(weather): add auto-update location feature (52476cf)
  • feat(palette): add random color palette widget (82fb9df)
0
Simon

Some really small stuff


Fixed a few minor issues and played around with some stuff that never really developed. I tried to get online/hosted translations working, but omg its impossible*. If anyone knows how to do it, help would be very appreciated! I got a pr set up for “bettter links” and “profiles” finally too.


  • Update Vietnamese (vi) translation (#110) (9d6cb68)
  • fix: remove whole background on chromium dev (fb9dbb5)
  • feat(search): add special URL handling (5e14bcd)
  • fix(search): missing/broken translation (f54a423)
0
Simon

Tooltips + CI Updates


Added tooltips to the github calendar widget. This was made MUCH easier because of the addition of built in tooltips in v5! I also updated all of my gh actions worflows deps to the latest version.


Commits:

  • feat: v1.6.4! (1a1f45a)
  • feat(github): add tooltips to calendar widget (f70eeb1)
  • ci: update actions to latest versions in workflows (3add9da)
Attachment
0
Simon

Shipped this project!

Hours: 24.09
Cookies: 🍪 672
Multiplier: 27.91 cookies/hr

[1.6.4] - 2/13/2026 | Theming, search customization, tally counter, and online documentation

A feature-packed release with centralized theming via CSS variables, search widget customization, a new tally counter widget, and full online documentation! Additionally, the since and countdown widgets are now deprecated in favor of TimeTracker, and a lot of development work has been done under the hood to prepare for future updates and make contributions easier.

Added

  • feat(ui): add customizable global accent color. b8ffd6fb

  • feat(time): indent settings and add showHours. e08dcb35

  • feat: add tally counter widget. 5a79bf13

  • feat(search): add custom width settings. cb8aa009

  • feat(search): add style customization to search widget. 48b0706e

  • feat(docs): add full online documentation! (#98). b4570ef7

Changed

  • refactor: implement centralized CSS variables for theming (#109). d170e10f

  • change: expand the default rows for custom css/js/html widgets. e289d4ea

  • feat: add deprecation warning to since and countdown widgets. a52d6e65

  • Updated ES & IT files (#108). c2c80b6b

Fixed

  • fix: visible instead of auto (oops…). 62e87b4d

Chore / Cleanup

  • chore: improve lint-staged configuration. 1743f601

  • ci: refactor workflows to use reusable templates. 8f81b721

  • build: remove service worker from manifest in dev. 41e6e6e2

  • chore: migrate some project styles from CSS to SASS. 4fa02de2

  • chore: deps. e3269c8f

Simon

Accent color + merge css


I merged (and updated) the css changes from thee previous devlog, but mainly I added accent color! Accent colors is something that was implemented on Tab-nine (another Tabliss fork that was also stopped). A recent “switcher” asked me to implement it so here we are!


The way that this works is that there is now an accent color settings in the global settings page. When changed, eveything that uses the accent color (previously the talbiss blue color) changes color. In the font settings of a widget, its text color can be set to “use accent color” to (obviously) use the accent color. Handily, I used the same format as Tab-nine so their accent colors are compatible. This was made way easier because of the css overhaul that was previously mentioned.


Commits:

  • refactor: implement centralized CSS variables for theming (#109) (d170e10)
  • feat(ui): add customizable global accent color (b8ffd6f)
Attachment
Attachment
Attachment
0
Simon

CSS Variables Now!

I have refactored the colors and stuff of the extension fully to use css variables and ascially make verything a lot better to use. This was mainly so that I can add the accent color thing in the future.


I KNOW that it seems like this shouldn’t have taken this long, but its actually very somplicated to make everything this much better. I also have to make sure to keep contrast and eveyrthing the same and barely change the ui.


  • refactor: implement centralized CSS variables for theming (c08a026)
  • refactor: replace some obvious colors with variables (cd99921)
  • add some small classes I guess (99e667e)

Comparison is availalb ein the iamges (first is new, second is old)

Attachment
Attachment
0
Simon

Got distracted by other projects for a few days…


Barely any visual changes, but some great dev/workflow changes. Closed a few issues from an invite from tab-nine :)


Commits on main:

  • build: remove service worker from manifest in dev (41e6e6e)
  • ci: refactor workflows to use reusable templates (8f81b72)
  • chore: prettier (2512cec)
  • chore: improve lint-staged configuration (1743f60)
  • change: expand the default rows for custom css/js/html widgets (e289d4e)
  • Updated ES & IT files (#108) (c2c80b6)
  • feat(time): indent settings and add showHours (e08dcb3)
Attachment
0
Simon

Loooooong Time No See…. (oops)

tl;dr: Counter widget, Old css -> Sass, Quick Links rework in progress


I added a tally counter widget which is something that someone requested. Very simple widget honestly. I also converted some of the old css files to sass, for some reason there were a few left. I finally began the massive mgiration of quick links to not suck anymore. They were one of the first things I worked on back when I had no idea what I was doing so yeah… Its gonna be rough.


Commits on better-links:

  • refactor(links): restructure components and migrate icon storage (75562c3)
  • fix: allow aspect ratio changing on svgs (c1953d6)
  • refactor(links): simplify iconify identifier logic (ca36922)
  • refactor(links): move icon migration logic to Links component (23ca5c0)
  • refactor: improve Modal component and IconPicker UI (fc9be3a)

Commits on main:

  • chore: migrate some project styles from CSS to SASS (4fa02de)
  • feat: add tally counter widget (5a79bf1)
Attachment
Attachment
0
Simon

Docs Released + Search Style Options!

I merged the documentation into main, and everything appears to be working, so yay! I added a warning that users should use the TimeTracker widget instead of countdown or since.


Mainly though, I added two new styles of search bar to the search widget and an option to overide its width. This could of course be done with custom css before, but having it built in is a nice touch :)


Commits:

  • feat(docs): add full online documentation! (#98) (b4570ef)
  • chore: deps (e3269c8)
  • feat: add deprecation warning to since and countdown widgets (a52d6e6)
  • feat(search): add style customization to search widget (48b0706)
  • feat(search): add custom width settings (cb8aa00)
Attachment
Attachment
Attachment
Attachment
0
Simon

Shipped this project!

Hours: 15.66
Cookies: 🍪 425
Multiplier: 27.14 cookies/hr

[1.6.3] - 2/5/2026 | Bugfixes and minor improvements

Minor bugfix release with quality of life improvements. Focus on older issues, and a lot of unfinished work :(

Added

  • feat(release): add closed issues summary to release body. d9c56024

  • feat(links): add URL normalization and extension tab option. bd53b7ab

  • feat(media): hide controls with 1 or less images. 8d92f1aa

Fixed

  • fix: translations. 3434f6c0

  • fix(dates): date parsing causing incorrect days. 40d6c942

  • fix(bookmarks): properly set iconSize to 24 by default. 378fdc72

  • fix: don’t include unused service-worker on firefox. 505525ac

  • fix(trello): minor fixes (#97). 4ccd112d

Closed Issues

  • #100 [BUG] Enormous favicons in bookmarks widget
  • #99 [BUG] Secure Connection Failed to certain websites (resolved)
  • #94 [BUG] Unsplash background provider causes “Sorry this plugin has crashed!” error
  • #92 [BUG] When starting Vivaldi browser, the Start Page is empty.
  • #90 [Help Wanted] Firefox does not seem to support service workers in add-ons
  • #89 Add a bookmark folder and let it look like quick links?
  • #86 [FEATURE] Use opentype features with font selection in widgets
  • #81 [BUG] Widgets positioning not accounting for rotation
  • #51 [FEATURE] Background position option
  • #47 [FEATURE] Add cycle buttons for “Upload Image” background option
  • #37 [BUG] Possible google update breaking bookmarks widget
  • #34 Custom widget positioning doesn’t retain relative position
  • #2 Weird date thing

What’s Changed (PRs)

Full Changelog: https://github.com/BookCatKid/TablissNG/compare/v1.6.2...v1.6.3

Simon

Version 1.6.3 Released!

(Minor bugfix release with quality of life improvements.)

Didn’t do much else really. Here is a list of closed issues since the previous list:

Closed Issues

  • #100 [BUG] Enormous favicons in bookmarks widget
  • #99 [BUG] Secure Connection Failed to certain websites (resolved)
  • #94 [BUG] Unsplash background provider causes “Sorry this plugin has crashed!” error
  • #92 [BUG] When starting Vivaldi browser, the Start Page is empty.
  • #90 [Help Wanted] Firefox does not seem to support service workers in add-ons
  • #89 Add a bookmark folder and let it look like quick links?
  • #86 [FEATURE] Use opentype features with font selection in widgets
  • #81 [BUG] Widgets positioning not accounting for rotation
  • #51 [FEATURE] Background position option
  • #47 [FEATURE] Add cycle buttons for “Upload Image” background option
  • #37 [BUG] Possible google update breaking bookmarks widget
  • #34 Custom widget positioning doesn’t retain relative position
  • #2 Weird date thing

As you can see, early issues are being focused on!


Commits:

Attachment
1

Comments

samiyaazad
samiyaazad 3 months ago

It’s so pretty!!

Simon

Wikimedia PAIN

I have been working a lot on closing issues and we are down MANY. However the oldest one is wikimedia commons improvements. Right now we only have POTD, and I want to expand it. This is going well except for the fact that the wikimedia apis are extremely painful and impossible to work with (no hate of course) So yeah, that’s how that’s going… (new release soon though 🎉)


I also added to the release workflow a summary of closed issues which should be cool!


Commits:

  • fix(bookmarks): properly set iconSize to 24 by default (378fdc7)
  • fix(dates): date parsing causing incorrect days (40d6c94)
  • feat(links): add URL normalization and extension tab option (bd53b7a)
  • feat(release): add closed issues summary to release body (d9c5602)
Attachment
Attachment
Attachment
0
Simon

Small fixes


This has been mostly a lot of time spent fixing small things, and even though I haven’t committed anything yet its all in progres… Profiles are in progress too!


I am very committed right now to fixing and closing old/new issues because I am very unhappy with the amount that are currently open. A lot of stuff will be delayed until more of that has been gone through. (possibly including merging docs, cause I don’t want to deal with the potential things that that breaks.)


Commits:

  • fix(bookmarks): properly set iconSize to 24 by default (378fdc7)
  • fix(dates): date parsing causing incorrect days (40d6c94)
Attachment
Attachment
Attachment
0
Simon

Docs are almost finished!

I’ve made some awesome progress on them (I attached some screenshots). I opened on pr (on my own repo) with the changes. Just need a few minor fixes and touchups and they will be good to go! I am so excited omg! There will be more added to them in the future, such as more tips & tricks, etc so yay.
Feel free to check it (and look at the attached screenshots) and let me know what you think!


Mostly simple changes on main

Some closed gh issues and stuff as usual.

  • chore: slight changelog changes (6c47a38)

  • feat(media): hide controls with 1 or less images (8d92f1a)

  • fix(trello): minor fixes (#97) (4ccd112)

  • fix: don’t include unused service-worker on firefox (505525a)

Attachment
Attachment
Attachment
Attachment
Attachment
0
Simon

Shipped this project!

Hours: 33.36
Cookies: 🍪 221
Multiplier: 6.61 cookies/hr

TablissNG: v1.6.1 & v1.6.2 Released!

Highlights

  • Positioning: Switched to react-moveable. Widgets now feature snapping, rotation, and non-broken movement.
  • Background Overhaul: Unified all background logic (BaseBackground) and fully modernized the Giphy widget. Also Improved the info section and added rotation arrows to the Media widget.
  • Custom Favicons: You can now finally modify the tab favicon!
  • Firefox Signed Builds: Automated web-ext signing for easier testing/distribution of nightly/beta builds.
  • Better Bookmarks and Quick Links: Added icon sizing, text hiding, and quick link importing.

What’s Next?

  • New Docs: Building a fresh home for TablissNG using Docusaurus on the new-docs! branch.
Simon

New docs (in progress)

Using docusaurus for this, which I ❤️! See branch new-docs!

Finally merged the better custom positioning

Will be releasing a new update VERY soon, so yay!

Attachment
Attachment
Attachment
0
Simon

Feeling a little burnt out rn unfortunately. I also kinda forgot what i worked on…

Bascially almost finished the custom positioning improvements, and fixed some bugs.
I also did work on a lot of changes that I never ended up committing, so maybe soon.

Sorry for the ugly devlog (and simple image)

I think I will work on docs next. maybe.

Attachment
0
Simon

tldr: Finished BaseBackground improvements/transitioning and modernised/fixed GIPHY widget


BaseBackground took a LOT more work to get done and it had some massive improvements, you can check out the commits on the branch/pr if you want. Also had a little scare where I compeltely broke it, then merged it :). Firefox signed nightly has been updated with these changes, testing them out would be great!


The GIPHY widget has been fully overhauled to be much more like the unsplash widget, as in it has more options and stuff. Basically you can now see trending images and I fixed the randomness that I broke at some point.


Next up is finishing the new custom widget positioning and mergin it. Also try to get more requested changes implemented.

Attachment
Attachment
0
Simon

Got some awesome changes in here!

tldr: firefox nightly auto-siging and fully refactored custom positioning system!


I set up a script that creates a firefox nightly build and then signs in (in unlisted mode) using web-ext. This makes it a lot easier to test on firefox without having to reinstall the extension one every browser restart.


Now for the star of the show:

Completely revamped custom positioning! I am now using a library called react-moveable which allows for a system that first of all does not suck, easier movement, scaling with the borders + rotation with a handle, and SNAPPING. Widgets can now snap to each other or the edges/middles of the screen. The relative positioning also works a little better. This is just in a pr I created right now, but it will be merged very soon.


And of course some miscellaneous improvements/fixes here and there.

Attachment
0
Simon

Got some good work done finally


tldr: BaseBackground and more bookmarks/quick links work


Almost completely finished the BaseBackground unification and opened a pr to see what ai code review thinks I guess. Decided to add it to a lot more than I was originally intending (eveything actually)


Also the person from the previousissue has some request which I promptly implemented: icon sixze for bookmarks, and the ability to hide the text (set max text length to -1). I already had zero for no limit, so I guess -1 is fine


I am somewhat annoyed by the ai code review, but sometimes it is actually quite helpful, so I guess I’ll continue with it.

Attachment
Attachment
0
Simon

I sort of forgot about making devlogs….. but closed two more issues!


I added an option to change the position of the background image (super simple issue that had been open for way too long.


Also closed a new issue from the EndeavourOS forum. which was in hindsight an obvious feature, but took a while to implement. Basically added an option to import bookmarks into quicklinks AND a quick links display mode in bookmarks.


Of course did some of the usual package updates and stuff like that. Also remebered that I can use markdown here so that’s cool!

Attachment
Attachment
0
Simon

Released version 1.6.1!

I ❤️ having to remake my entire actions auto upload stuff every single time 😭

Mostly very small changes, but I fixed workbox caching, and improved settings icon position (and of course ci).

Attachment
Attachment
0
Simon

Finally made it through all of the open prs!

Which means that favicon modification is here, and also finished up the prettier fixes which means that we finally have pretty code everywhere. (lol so many changed lines)

Time to grind through some (old) issues 🫡.

Attachment
Attachment
0
Simon

Shipped this project!

Hours: 22.9
Cookies: 🍪 265
Multiplier: 11.58 cookies/hr

This is my first major project (more like just my first every project), and it’s been incredibly fun to work on. Over the past year, I’ve learned so much that I genuinely feel like a completely different person than when I started.

TablissNG is a fork of Tabliss (an extension I used every day) with the goal of continuing its development and building on what made it great. I’ve already added many new features, and this is only the beginning. I’m really excited to keep improving it and see where it goes next.

Simon

Made a lot of progress on wallhaven backgrounds (not released yet) (for some reason they were really difficult. Resolved two new github issues:
[FEATURE] Use opentype features with font selection in widgets
[FEATURE] Bing Daily Wallpaper

Attachment
0
Simon

Did a lot of things that I don’t really remember, but a large thing is that I’m finally transitioning the backgrounds to use BaseBackground! So far (in the branch using-basebackground) I’ve fixed a lot of issues with it and transitioned both Giphy and Media! It was a pain to migrate the Media widget’s cache, but now it migrates automatically.

Attachment
Attachment
0
Simon

Finished adding the api keys for trello integration, so now it works on the nightly build!

Attachment
0
Simon

Finally merged the trello widget pr. Large changes, and very excited for the next integration plugins! Massive thanks to @John-Ling for their work and putting up with me 😭.

Attachment
1

Comments

Dankey445
Dankey445 4 months ago

lol