Product Development November 21, 2020

Show IH: Codebird - Edit any website right on the page and save changes to code

David Furlong @davidfurlong

Hi there 👋

I made Codebird to solve a frustration I was experiencing daily at my day job as CTO at Deedmob.

People in marketing and product would create asana tasks for small text changes to our website almost daily, and implementing these changes always felt like a chore, particularly because it involved finding the text, changing it, creating a branch and then a pull request.

For many teams like ours integrating a content management system to manage text would have too many limitations and it would still be a pain to find and change text.

I believe everyone in a product team should be able to contribute to improving the product, and a part of creating that culture is removing the friction in contributing.

The current version is a step towards a product development cycle where engineers aren't always needed as a translator between tasks and the product.

Thank you for taking an interest in Codebird and I'm happy to answer any questions you may have below 🙂

https://codebird.app

  1. 3

    Have you thought about reducing the time to the "aha moment"? Maybe have the input field to enter a website right on your home page and give people some taste of what they can do before signing up?

    1. 1

      Hm thats a great idea.

      1. 2

        I second this. Maybe even make your marketing pages available in second open source repo,and let users submit PRs with their changes. That could be a really cool interaction where you can then continue the conversation with them through the PR.

  2. 2

    Seems really cool. From a technical POV, how does it work?

    1. 2

      Thanks Yousuf!

      It does a fuzzy text search of your github repository using the github repo search api. Then it checks these results for compatibility, if theres multiple it asks the user for which one they think it is, or gives the option to change them all. It constructs a new file, commits it to a new branch and sends a new pull request to the github repo

      1. 1

        Cool, this is really interesting. I assume it'd work really well with static site generators like Hugo or Jekyll.

        I wonder how it'd work with apps that use special templating languages like ERB or Slim for Rails or JSX for React. Any experience with that?

        1. 1

          Well its early days and I've tried react and it works fine as long as you don't use dynamic variables within the string such as n=5 <>{n} number</> because it would search for the string "5 number" and not find it. However even these cases can eventually be handled by learning. I think the templating languages are probably similar - it will work as long as there isn't inline markup/syntax within the part of the code that renders the text of the DOM element.
          text="anything" <>{text}</> or <>anything</> works because it will replace the anything.

  3. 2

    This is really cool David. Curious, since it doesn’t look like there’s an integration step, how does codebird know what file in your repo to edit?

    1. 1

      That's right there is no integration step. Codebird figures it out. It's a hard problem and I'm still improving the solution. When Codebird finds multiple possible locations it asks the user whether to change them all or to select one - thus Codebird could hypothetically learn

Recommended Posts