[HN Gopher] Show HN: FlyCode - Git-Based Copy and Translations E...
       ___________________________________________________________________
        
       Show HN: FlyCode - Git-Based Copy and Translations Editor for Web
       Apps
        
       Author : JakeVacovec
       Score  : 162 points
       Date   : 2022-04-26 13:00 UTC (10 hours ago)
        
 (HTM) web link (www.flycode.com)
 (TXT) w3m dump (www.flycode.com)
        
       | guyvinograd wrote:
       | I was looking for such a tool for a long time. How mature is
       | this?
        
         | JakeVacovec wrote:
         | That's amazing to hear! The product is mature and stable end to
         | end. We integrate via our GitHub app, which has been live in
         | the marketplace since last year.
        
       | hermanb wrote:
       | Really sounds like an awesome tool. Fits right into the
       | serverless / JAMStack kind of systems too. Just like Netlify CMS.
       | 
       | I was actually in the process of tweaking Netlify CMS to be more
       | easily hostable yourself without depending on the Netlify Pro
       | plans as much. Basically involves hosting a combination of
       | Netlify Identity and Git Gateway compliant backends in GCP
       | CloudRun or AWS Lambda. Maybe even making it easy to configure a
       | build pipeline on CloudBuild.
       | 
       | I wanted to use this for small business websites, but also
       | configuration management and translations for projects at work.
       | Sounds like FlyCode is a great (not self-built) alternative I can
       | recommend. Great business model as well. Almost no databases
       | needed (auth only?) and easy to host stateless on serverless
       | offerings. Scales linearly
        
         | JakeVacovec wrote:
         | We actually created a PR last week to be added to Jamstack for
         | use-cases like the process you detailed.
         | 
         | Auth only via our GitHub app, no database needed. We've tried
         | to eliminate as many manual steps / additional development work
         | to spin up. The team is here to help you set up for smb sites
         | and your projects for work.
        
       | madeofpalk wrote:
       | Neat! Seems to be looking like a more basic and unified
       | translation management system, but it's unclear whether it
       | actually supports multiple locales as a top-level feature, or
       | just through "hey here's your different JSON files".
       | 
       | > FlyCode identifies _all_ the text segments in your product
       | 
       | I'm dubious of this claim to be honest. Identifying JSXText is
       | one thing, but does it handle when you have UI text in props? How
       | does is distinguish labelColor="red" from label="Username", if at
       | all?
        
         | iddan wrote:
         | Hey there, founding engineer at FlyCode here.
         | 
         | FlyCode is treating multiple locales as a first-class use-case.
         | Some of our major customers use FlyCode for managing multi-
         | locale applications. As for identifying all the text segments:
         | what you are saying is true. For our beta we limited the text
         | identification for JSXText only (for the React use-case) _but_
         | we are certain we can identify more editable text in props
         | using well-known names, looking into their type-defs or letting
         | devs define which props should be exposed. This type of
         | feedback and demand from our users that will bring our support
         | to the next level!
         | 
         | Like many creators we are trying to apply the Pareto principle
         | [0] and make most of the copy of apps editable now. I agree the
         | phrasing "FlyCode identifies all the text segments in your
         | product" could be improved.
         | 
         | [0]: https://en.wikipedia.org/wiki/Pareto_principle
        
       | galc wrote:
       | Cool tool
        
       | jitl wrote:
       | Is there much different between FlyCode and other translation
       | management systems (TSMs) like Localize? We use Localize at
       | Notion, and set up a nightly sync operation that auto-merges a PR
       | of phrase changes. Those diffs look quite similar to the FlyCode
       | intro video. It was annoying to set that bot up once, but now
       | phrase changes are quite seamless.
       | 
       | It seems like FlyCode does a better job integrating with Github.
       | Is there anything else that's different from the TSM feature-set?
        
         | JakeVacovec wrote:
         | Lokalize is a great product! Btw so is Notion...is has almost
         | entirely replaced our usage of Google Docs/Sheets. But
         | translation is a whole different beast, one that we plan to
         | support via partner integrations similar to our level of
         | integration with GitHub.
         | 
         | The main differentiator for us (going forward) is that we plan
         | to support editing more than just text: images, configuration
         | (like constants in the code), links, variables, etc.
         | 
         | The main difference between our current version and TSMs is
         | FlyCode can edit texts inside the code whereas TSMs allow you
         | edit texts in external files (JSON, PO) but not inside the
         | code. Often times teams don't want to lose the ability to
         | search for texts inside the code just to support localization.
         | 
         | With FlyCode you can edit their texts in the primary language
         | (e.g. English) inside the code and texts in other locales in a
         | JSON file. FlyCode is editing texts inside Git allowing teams
         | to run CI on the changes to the copy and make sure they're
         | delivered safely to production, which reduces the integration
         | cost and doesn't introduce new points of failure. If FlyCode is
         | down (worst-case scenario) you can still edit the texts inside
         | Git just like any other part of the code.
        
       | ashishfeels wrote:
       | This is amazing, tool that actually helps product and the design
       | guys to make changes that they feel can be done in a shorter
       | period of time and at the same time making developers focus more
       | on the bigger features and tasks. This tool is amazing.
        
         | JakeVacovec wrote:
         | Async collaboration has become the norm so it is more important
         | than ever to empower individual contributors to improve the
         | product without dependencies on dev.
        
       | samhw wrote:
       | This looks really cool! It's a simple idea, but hey, it looks
       | like it hasn't been done yet - so it's all the more valuable.
       | 
       | The quality of the design blows my mind as well, for a startup.
       | It reminds me of GitHub's landing page, which I saw someone
       | effusing about the other day on here: https://github.com/home
        
         | JakeVacovec wrote:
         | Our goal is to make complex flows as simple as possible! Static
         | website have amazing tools to support web developers and we
         | believe the next wave will be for modern web apps. P.S. we love
         | our designer :)
        
       | ravinwashere wrote:
       | Well done, Team! This tool will help many devs.
        
       | katharinewolf wrote:
       | seems super useful
        
       | quaffapint wrote:
       | We have a product team that comes up with the text and right now
       | we have walls of Lorem ipsum waiting to be replaced. So, this
       | tool will scan the app find all that lorem text and put it into a
       | json/yml file? You then work against that file? How does it work
       | with duplicate texts? Is it just a list of texts or does it give
       | some context where it found it?
        
         | JakeVacovec wrote:
         | OP here - thank you for the question! Yes, FlyCode will
         | automatically scan the code, find the texts, and makes them
         | editable in the FlyCode dashboard. When edits are submitted we
         | create a Pull Request that updates the text in the code!
         | 
         | When editing texts in the code it identifies each instance of
         | the text as a separate text for now, It currently lists the
         | text with the file it found them for texts in the code and with
         | key for texts from JSON.
         | 
         | We also helped some clients with performing an automated
         | component mapping to add additional context.
        
       | priansh wrote:
       | This is honestly awesome, copy editing is such a pain point that
       | we schedule weekly 3 hour blocks to go through all changes live.
       | This would greatly streamline our workflow.
       | 
       | Signed up and saw extraction can take several days -- is this
       | done manually? I assumed scanning would be done purely
       | automatically but I can see why there would need to be a manual
       | review component.
        
         | etai-flycode wrote:
         | CTO here, thanks for the comment.
         | 
         | The scan is 100% automatic and performed live - There might
         | have been a small config issue, once fixed your system would be
         | up and running in minutes :)
         | 
         | We would be happy to help, you can contact us:
         | 
         | - our support at support[at]flycode.com
         | 
         | - or me directly at etai[at]flycode.com
         | 
         | We'll be happy to help!
        
       | sherifnada wrote:
       | Congrats to the Flycode team on their recent launch! This is a
       | really exciting product
        
       | TheAnkurTyagi wrote:
       | Flycode looks promising, Congratulations Team.
       | 
       | I have couple of questions.
       | 
       | 1- Does the company have short-term and long-term distribution
       | strategies?
       | 
       | 2- Can you tell us why you think that it's a great idea?
        
         | JakeVacovec wrote:
         | Distribution
         | 
         | - besides for supporting BitBucket and GitLab we plan to:
         | 
         | - Improve our editing experience by introducing more context
         | from the UI
         | 
         | - Integrate with platforms like Linear and Jira
         | 
         | Great idea
         | 
         | - our main focus is creating value for our users.
         | 
         | - We believe that most of the great ideas come directly from
         | the development community, which is why we are continuously
         | collecting feedback and revalidating our assumptions.
        
       | hamiltonite wrote:
       | Anything that makes it so others can go in and edit text and
       | leave us to working on dev is a win in my books. Looks cool!
        
         | JakeVacovec wrote:
         | Solving problems > Tedious Work
        
       | rabbiya wrote:
       | Super helpful
        
         | Existenceblinks wrote:
         | Created 2 minutes ago, commented 1 minute ago! Seems like a
         | bot.
        
       | ahml wrote:
       | Been using this in alpha with the Flycode team to help us ship
       | changes and start working with new languages in our apps. Huge
       | time saver for our dev team and great enablement for both product
       | and design to be able to get changes in quickly. Love it so far.
        
         | peekypeeky008 wrote:
         | Tzachi, cofounder at FlyCode here - thanks a lot for the
         | feedback :)
        
       | tomerbig wrote:
       | Great tool!
        
       | [deleted]
        
       | Existenceblinks wrote:
       | A lot of green username here. Well, I'm building the same kind of
       | product! If it's not javascript based, I'd immediately apply for
       | the job. Not sure how the code scanning would evolve as projects
       | evolve? Is FlyCode tracking the dynamic content holes, as the
       | place it was currently edited would be moved around? There are
       | other aspects I wonder for this approach.
        
         | JakeVacovec wrote:
         | Btw - awesome to hear you're building a product in the same
         | space. Happy to collaborate and exchange notes!
         | jake[at]flycode.com
        
         | peekypeeky008 wrote:
         | Thanks for the feedback. We hire devs based on talent not
         | language so feel free to apply. FlyCode is able to identify
         | changes made in a commit and identify a text is the same
         | according to the semantic structure of the code but of course
         | it is not 100%. In many cases though texts stay in about the
         | same place and when moved they change their meaning and should
         | be treated differently
        
           | Existenceblinks wrote:
           | I found some clue on the docs' TEXTS section.
           | 
           | > if the format is hardcoded, the name of the component in
           | which the text resides would be the title
           | 
           | So it's component based tracking, though inside-component is
           | hard to form context (e.g. line/column tracking won't work)
           | even if you have AST of javascript. When code changes, AST
           | changes (tree nodes tracking won't work either).
           | 
           | Interesting approach not to use hole like `{{ }}`.
        
       | tavarezf wrote:
       | Incredible tool - this is huge for dev efficiency
        
       | lalcaraz wrote:
       | Lead mobile dev at Breezeway here. We have been working with
       | Flycode during the private phase of their launch and only have
       | good things to say. We built our localization feature on top of
       | Flycode to simplify the translator's workflow; their proficiency
       | is absolute proof that this company means business. They went the
       | extra mile helping us during the integration phase.
       | 
       | Thanks, Flycode; you guys rock.
        
         | JakeVacovec wrote:
         | Thank you! You have been an incredible design partner and we're
         | looking forward to growing with you :)
        
       | JakeVacovec wrote:
       | Hi HN community,
       | 
       | Over the last six months, we've been building FlyCode, a product
       | editing DevTool. We make it easy for team members to edit product
       | copy in web and native apps' code through FlyCode's dashboard
       | with auto-generated PRs instead of using a code editor.
       | 
       | From the beginning, we built around the belief that codebase
       | ownership should stay with developers and that tools should
       | flexibly coexist with a codebase rather than dictate infra
       | changes. The key shift for us was to identify ways to include
       | non-technical teams as individual contributors in the development
       | process.
       | 
       | At FlyCode, we're building a git-based product editor that makes
       | it easy and safe for non-developers, to contribute to web &
       | native apps code without actually coding. So far we've built [1]:
       | 
       | 1) A GitHub application that scans your selected repositories in
       | real-time for product copy. We are working on integrations to
       | support GitLab and BitBucket in the future.
       | 
       | 2) Editing React, Angular, and Vue code as well as JSON and
       | gettext PO files (for international use-cases). We support
       | editing product copy in resource files and hardcoded.
       | 
       | 3) Pre-built GUI to invite your team to manage and edit product
       | copy with auto-generated PRs.
       | 
       | We are hoping to use this post as an opportunity to collect
       | feedback from fellow hackers! Our open beta is fully self-service
       | and takes about 5-10 minutes from sign up to first edit [2]. We
       | recently added 3 demo repositories so anyone can try the platform
       | [3]. If you're using GitLab or BitBucket sign up to be notified
       | when FlyCode is ready for you.
       | 
       | We are far from our vision but the team - 10 amazing humans
       | (we're hiring developers [4]) - is working hard every day to
       | improve the user experience and feature requests from our early
       | collaborators (editing images, variables, JSON configuration, A/B
       | testing, etc.).
       | 
       | While the platform is still in "beta", we are confident that
       | today's FlyCode creates significant value for teams, large and
       | small. Your feedback is what guides us forward so please share
       | any questions, comments, or concerns in the comments below.
       | 
       | Join our (new) community on Discord [5] and follow us on Twitter
       | [6]
       | 
       | Feel free to contact me at: jake[at]flycode.com or
       | fly[at]flycode.com
       | 
       | [1] https://docs.flycode.com/ [2] https://flycode.com/developers
       | [3] https://github.com/flycode-org [4]
       | https://flycode.notion.site/Jobs-FlyCode-94d9cdf269794c368ce...
       | [5] https://discord.gg/sKc4rZnMuw [6]
       | https://twitter.com/FlycodeHQ
        
       | etai-flycode wrote:
       | CTO and co-founder here, I couldn't be more proud of the team for
       | shipping FlyCode's open Beta so fast!
       | 
       | As a compilers enthusiast for more than a decade, it is marvelous
       | how analyzing and manipulating code has become more accessible in
       | recent years and the possibilities it unlocks... very excited to
       | empower teams to make edits for real web apps and save their
       | developers time.
       | 
       | Feel free to contact me as well at: etai[at]flycode.com
        
         | fprct wrote:
         | Could you outline the most important advances from recent years
         | that you see as contributing to the accessibility you are
         | talking about?
        
           | etai-flycode wrote:
           | I remember how excited I was about a decade ago when
           | Microsoft announced the Roslyn project, and how sad I was
           | when switching my dev eco-system before it came out. AOP
           | wasn't a new concept, and code generation was available - but
           | it was a hard task to get done, and not accessible to the
           | general dev community.
           | 
           | Now, Roslyn ins't news anymore :) We have source generators
           | in C#, and we not only have more main stream compiler plugins
           | & annotation processor in Java and Kotlin (that spends a lot
           | of time on their compiler API).
           | 
           | The same process has happened for the JavaScript ecosystem.
           | The AST revolution has hit the frontend/JS ecosystem big-
           | time. Tools like Babel (and derivatives like jscodeshift and
           | recast) have democratized analysis and transformation of code
           | bases. I urge you to play around with ASTExplorer to see how
           | vast is the support for getting a proper AST for source-code.
           | 
           | Another big factor is the maturity GitHub marketplace. Today,
           | smaller teams are able to ship production-ready apps for
           | GitHub as the APIs have stabilized and are much documented
           | than a few years ago.
           | 
           | All these together makes code-editing products much more
           | feasible than a few years ago. It's not that AST and source
           | editing novel ideas did not exist it's just they matured
           | enough that you can actually build a product that targets a
           | big enough segment of the market.
        
       | astral_dx wrote:
       | Love it!
        
       | seunakinloye wrote:
       | Well done, Guys! This tool is a life-saver for Devs
        
       | WickedBBQ wrote:
       | Finally my customers PR managers can deal with translation
       | without my help. You saved my nervous system, guys
        
         | JakeVacovec wrote:
         | Exactly! When we first started, our design partners helped us
         | analyze their logs and it was amazing to see how many hours we
         | could've and now will be saving them by automating this
         | process.
         | 
         | Text is the ground-floor for us - if you have other use-cases
         | you'd like us to productize that will create value for you
         | please shoot me a note jake[at]flycode.com
        
       | iddan wrote:
       | Excited to be part of this project as well.
       | 
       | Opening the gates made by code for non-developers has always been
       | a passion of mine.
       | 
       | The problem of editing web apps' texts by non-coding team members
       | has been a real pain for all of the companies I've been involved
       | with in the past.
       | 
       | As an avid reader of HN, I'm always excited to share projects I'm
       | involved in.
       | 
       | Feel free to contact me as well at: iddan[at]flycode.com
        
       ___________________________________________________________________
       (page generated 2022-04-26 23:02 UTC)