[HN Gopher] Show HN: Bedframe - open-source Browser Extension De...
       ___________________________________________________________________
        
       Show HN: Bedframe - open-source Browser Extension Development
       framework
        
       Author : JoeyDoey
       Score  : 91 points
       Date   : 2023-09-05 16:33 UTC (6 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | dataviz1000 wrote:
       | Nice. Thank you for making this. There is a huge benefit to using
       | Turbo Repo. I was frustrated with adding any other extension
       | framework to my monorepo. My extensions don't live in isolation
       | but connect to other web, electron, and server apps. With this I
       | can refactor types and design systems easily across the apps.
        
       | artisin wrote:
       | Definitely a much-needed area for development. However, having
       | gone down the browser extension rabbit hole, I've largely shifted
       | my focus to user scripts. Granted, there will always be a need
       | for specialized browser extensions like ad blockers (uBlock[1]),
       | keyboard shortcuts (Vimium-C[2]), and password managers
       | (Bitwarden[3]).
       | 
       | That said, I find user scripts superior for most tasks, despite
       | some lacking UI niceties. They are easier to share, use, and
       | crucially, audit--be it in terms of scope, permissions, or code
       | updates. Plus if Manifest V3 is any indicator, the future for
       | browser extensions looks bleak. While I don't agree with this
       | direction, it's probably for the best for the majority of users,
       | like my mom.
       | 
       | Your effort is commendable; however, should you find yourself
       | looking for a viable pivot in the future, I believe the user
       | script space is primed for innovation and could offer a good
       | alternative.
       | 
       | [1] https://github.com/gorhill/uBlock [2]
       | https://github.com/gdh1995/vimium-c [3]
       | https://addons.mozilla.org/en-US/firefox/addon/bitwarden-pas...
        
         | gsuuon wrote:
         | What's the correct way to.. use.. userscripts? Do you still
         | need to install a third party extension?
        
         | jwong_ wrote:
         | Do you have any user scripts you find handy or use often?
        
           | madacol wrote:
           | I recently started to have the same ideas, and I have created
           | 3 bookmarklets and 1 userscript
           | https://github.com/madacol/web-automation
        
             | madacol wrote:
             | To give you an example
             | 
             | This is a bookmarklet to edit any text on a web page
             | javascript: (function() {   document.body.contentEditable =
             | true;   document.body.spellcheck = false;  })();
             | 
             | Very useful when I want to grab a screenshot and I want to
             | REDACT personal information
        
               | jwong_ wrote:
               | Hey that's neat! Super annoying having to dig through the
               | dynamically-generated DOM.
        
         | [deleted]
        
       | mancuso5 wrote:
       | wow this look awesome!
        
       | kwerk wrote:
       | How does this position with something like plasma.dev?
       | 
       | I've been happy with it, especially the testing / beta deployment
       | and messaging libraries.
        
         | JoeyDoey wrote:
         | Plasmo? They're certainly further along in dev and doing great
         | work. Bedframe is a slightly differing approach to the same
         | pretty much.
        
       | endigma wrote:
       | Does the name of this organization seem suspicious to anyone
       | else?
        
         | gsuuon wrote:
         | Looks like it's the author's last name
        
         | notpushkin wrote:
         | Your honor, that was a Neco Arc reference and totally not the
         | word you thought it was :D
        
       | felipesabino wrote:
       | I just recently came across Plasmo [1], which is very mature and
       | a good entry point for anyone starting on the browser extension
       | environment (like I am). It would be nice to see some comparisons
       | in the future when Bedframe's docs are published
       | 
       | [1] https://docs.plasmo.com/framework
        
       | FeroTheFox wrote:
       | What's the theme used in the readme screenshot? I would love to
       | use it myself :)
        
         | JoeyDoey wrote:
         | VS Code is "Community Material Theme" - hight contrast:
         | https://marketplace.visualstudio.com/items?itemName=Equinuso...
        
       | mightyham wrote:
       | I'm somewhat confused about what problem this is solving, but I
       | also have a lot of questions.
       | 
       | Does the dev mode use HMR? Can the cli upload bundles extensions
       | to respective browser's stores? Does it work with any web
       | framework supported by vite? Does it work with all vite/roll-up
       | plugins?
       | 
       | This project is very interesting to me because I currently have a
       | published Firefox extension that uses Vite, NPM, and Solid.js.
        
         | JoeyDoey wrote:
         | Yes to all this. But the project is super new so supports just
         | React right now. The idea is to support all officially
         | supported vite templates in ts and js, so: vue, react, preact,
         | lit, svelte, solid, qwik.
         | 
         | > what its trying to solve:
         | 
         | I want a Next.js + Vercel dev experience but for building
         | browser extensions: push to main > run a workflow > determine
         | if it should publish > publish (to all my chosen web stores)
         | 
         | I want an actual dev workflow (like I'm used to in regular
         | web/app development in 2023) but again, tailored for browser
         | extensions.
         | 
         | Basically I wanted something that doesn't abstract the usual
         | Vite setup. Just give me the usual niceties of working with
         | client-side react w/ Vite. So yes, you get the vite/rollup
         | plugins as usual.
        
       | wbobeirne wrote:
       | This is a much needed area for development, most of my extension
       | projects are held together by glue. However, I'm not entirely
       | sure what Bedframe does at first glance. The docs page says
       | coming soon and just 404s, the homepage is just a splash page
       | with an email form (that does not actually seem to submit!) I'll
       | read through the code at some point, and it looks like the
       | individual project READMEs are more fleshed out, but definitely
       | needs a better upfront explanation of what aspects of extension
       | development it's trying to solve.
       | 
       | EDIT: It's also very unclear what state this project is in. The
       | README has instructions for getting started with the CLI, but
       | also says that I should sign up to join early access? Is this
       | ready to use? What aspect of this project requires membership? Is
       | there a hosted component or subscription model hidden in here?
        
         | yuppiepuppie wrote:
         | I'm in the same boat. I got in the world of extension
         | development last year, and oh my, what a crazy mess. Apart from
         | browser compatibility, I was really hoping for some product to
         | help out with the operational stuff.
        
           | JoeyDoey wrote:
           | Ooof!! It is an... interesting time right now in extensions
           | land. The switch from MV2 to MV3 is a bit chaotic but
           | hopefully tools like this (Bedframe) and tools like
           | [Plasmo](https://github.com/PlasmoHQ/plasmo) start to inject
           | some freshness in the space.
        
             | civilitty wrote:
             | How does Bedframe compare with Plasmo? What are your plans
             | moving forward?
        
         | JoeyDoey wrote:
         | Author here! the project is super new. alpha, at best.
         | 
         | Basically if you wanted to build browser extensions using
         | modern stack, bedframe lets you do that. Specifically it uses
         | Vite under the hood so you can write e.g. a chrome extension in
         | e.g. React w/ TypeScript, Tailwind, and all that good stuff.
         | 
         | I think the CLI readme has a bit more useful info:
         | https://github.com/nyaggah/bedframe/tree/main/packages/cli
         | 
         | The notable bit is the mvp.yml workflow you get in your
         | project. It'll let you publish to chrome, firefox and edge
         | automatically (ci/cd).
         | 
         | > It's also very unclear what state this project is in.
         | 
         | fair enough! Wanted to get something out there first; I'll get
         | the docs out soon
        
       ___________________________________________________________________
       (page generated 2023-09-05 23:00 UTC)