question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Collaborate with other libre font editor web app projects on common libraries

See original GitHub issue

Wow! Massive congratulations on the kickstarter - I’m sure you’ll go way beyond your modest target! 😃

There are a few other font tool web apps that I’d like to suggest collaborating with:

Typism (by @xxyxyz) is a traditional outline font editor for SVG fonts. It exports SVG fonts to be compiled offline, the same as Prototypo.

Glyphr Studio (by @mattlag) is a traditional outline font editor for OpenType-CFF. It exports TTX xml to be compiled offline.

Metapolator (by @simonegli and many others) is a parametric font editor that applies ‘convention over configuration’ to hijack metafont; it can do interpolation of masters made with outline editors (so-called ‘superpolation’) and it can derive new masters from 1+ existing ones, using ‘off the peg’ metafont programs (‘metapolation’.) It is a reboot of the Metaflop project, which has a client-side UI of slides that set parameters of true (hand-coded) metafonts, and a server-side system to run metapost on the metafont with the given parameters and return an OTF as a web font. The first prototype of metapolator reused this design. The new prototype is 100% client-side, using NodeBox’s opentype.js for superpolation and a metapost.js (made with Emscripten) for metapolation.

Font Bakery (maintained by @hash3g) and now is a continuous integration server and web interface for UFO and TTX format fonts stored in git. It clones a repo, locates font files to build, runs tests on UFO and TTX source fonts, compiles them with FontForge and fontTools (and ttfautohint) and runs more tests on the font binaries. It provides a utilitarian UI to proven server-side font tools, and Bootstrap is more than enough. However, a fonts dashboard to droni.io might be better, as that CI server has good momentum and would allow Font Bakery to focus on the things that make it unique.

Impallari Testing Tool by @impallari is a document-driven typeface test app, to test the design of a type. By improving this and making the tests encapsulated, I hope it can be embedded in other tools - all those I just listed, and prototypo.

I think there is a lot of value in the fundamentally different approaches each project takes, and I do not propose merging them. Yet I see 3 clear common areas that all projects will benefit from, by pooling our limited resources on our common goals to maximize our impact 😃

Git and Github repo reading and writing

Its great for studios of designers to store known-good versions of their projects in git, even if they aren’t using for every little revision of every file.

The Github REST API is powerful enough that it can serve as a ‘file system’ to web apps, and http://prose.io is a great example.

Font Bakery already uses git to structure its input of UFO/TTX font files, and it would be great if all font editor web apps also had this option.

Once a web app has access to a binary font file, of course, then its time for…

Client Side SFNT Reading

opentype.js by Frederik @fdb De Bleser, is seeing active community contributions and core development thanks to Prototypo 😃 So this currently seems to be the leading candidate, and both prototypo and metapolator use this.

ttf.js At the Libre Graphics Meeting, I met in person with Denis @moyogo Jacquerye (of DejaVu fonts fame, now a software engineer at Dalton Maag) who is working on the development branch of ttf.js, which is very similar to opentype.js, written in coffeescript. It would be great to not duplicate this effort.

ufoJS Also at LGM was Lasse @graphicore Fister, who worked on ufoJS a while ago, and will be much more active on this in the coming months as part of metapolator. Perhaps this code can partner with another.

binary-parser Mike @Pomax Kamermans worked on this a while back, and many other fonts-in-browsers experimental utilities, and of course was involved in pdf.js. The spec file approach is neat, and follows Brandon @Benvie Benvie (also at Mozilla)'s approach from 2 years ago in reified ttf example

opentype Bram @bramstein Stein works in Adobe Typekit and made this, which already (I think) has more OTL table support than ttf.js or opentype.js. Again, it would be great not to duplicate this effort.

fontTools In theory, @behdad’s fontTools could be transpiled to C and then transpiled to JS. This brings us to the next item…

Client Side SFNT Writing

Louis-Rémi emailed me a while back about funding opentype.js to add font binary generation, and I’ve since emailed a bit with Frederik about it. But neither thread reached a clear conclusion…

I know Glyphr Studio, Prototypo and Metapolator would love to have this. The immediate option is to do it server-side, using fontTools or FontForge.

Glyphr offers TTX files as a download format, and requires users to run fontTool’s ttx offline to build binary files.

If we make a fontTools.js, then Glyphr could immediately provide binaries 100% client-side.

All other font editor web apps would then merely need to export TTX files in the same way.

It would also be possible to put FontForge through Emscripten, although a fontforge.js would be heavier than a fonttools.js. (The next stable release of fontforge is coming soon - June?)

Eventually @adobe will make the FDK libre, then we could also make a fdk.js

The nice thing about FontForge is that is has so many features. The pity is that its UI is from the 90s (or earlier 😃 Which leads me to…

Font Editor UI Toolkit

Both metapolator and prototypo use AngularJS as an MVC framework. Glyphr Studio uses its own.

This month Alex @Troush has been shedding Metapolator’s python parts and taking it full client, starting with a directive for an opentype.js interpolator using paperjs and-or two.js for <canvas> rendering. He has also set up bower and gulp (instead of grunt) to structure the setup process.

Angular promises the possibility of making a ‘font editor web app toolkit’.

I would like to suggest we share as much as possible.

Issue Analytics

  • State:closed
  • Created 9 years ago
  • Comments:47 (9 by maintainers)

github_iconTop GitHub Comments

1reaction
davelab6commented, Jun 28, 2017

Sure, no need to capture it elsewhere for me.

Since the last comment, a few summary thoughts:

0reactions
Pomaxcommented, Jun 28, 2017

This issue is collecting quite a bit of dust in my github.com/issues/mentioned list because it’s been open for 2 years since the last comment: is it possible to close this and capture the information in it on a repo wiki page instead?

Read more comments on GitHub >

github_iconTop Results From Across the Web

Fontpair - Free, beautiful fonts and font pairings curated just ...
Free fonts and font pairings to use for your next design project. Join the other 8,000 subscribers who get fresh free fonts in...
Read more >
Resources for Writing Systems Implementation using Copyleft ...
Resources for Writing Systems Implementation using Copyleft and FLOSS (Free/Libre and Open Source Software) · Under GNOME · Under KDE · Other font...
Read more >
Home | LibreOffice - Free Office Suite - Based on OpenOffice ...
LibreOffice is one of the friendliest and fastest-growing projects in the free and open ... It's about people, culture, creation, sharing and collaboration....
Read more >
Leading items [LWN.net]
The workshops used FontForge, and the development work that they prompted led to important bug fixes and new features (such as collaborative editing)....
Read more >
Part 3: Technical Workflows, Tools, and Platforms for ... - COPIM
Our thanks go out to the Next Generation Libraries Publishing Project for sharing ... As part of the research for this online resource...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found