Hello, Welcome to Adventures in Angular, the podcast where we keep you updated
on all things Angular related. This show is produced by two companies, Top
and Doves and Onvoid. Top and Doves is very great Top and Doves,
we get top and pay and recognition. We're working on interesting problems and making
meaningful community contributions. An Onvoid which provides no design and software development services on
a task basis, so clients only pay after tasks are delivered and approved.
In today's episode, we will talk about a company called Timing and some of
the tools that this company provides for US web developers. My name is Lucas
Spaganini, your host in the podcast, and joining me in today's episode is
a very special guest, Rina Segosh. So, Brina, let me give
you a little bit of intro and then I'm just going to pass on the
ball to you. So. Rinna is a developer relations manager with more than
four years of experience with foodstack development, cloud and AI products. She's been
hacking away tech products since the age of fourteen, much earlier than myself,
and after five years of writing software and evangelizing products at IBM and Digital Ocean,
she has turned to her passion to educate developers and become a developer advocate
as a developer relations manager at Tiny. So Rina very happy to have you
on the show. Thank you for taking the time. Thank you so much,
Lucas. That was a very sweet introduction from you, and I'm really
excited to be here at talk you today. Yes, yes, it's easy
to introduce people that have great accomplishments, so thanks for making it easy.
So yeah, Marina, let's just take it from here. So can you
introduces, Like, just give a pitch of what is tiny, Like we
know that it's a company, but which products does Tiny have that we as
developers should know about? Like why should we care? Right? So,
tiny is a JavaScript based rich text editor component that can embed right into your
web applications. So imagine you are actually writing a description on Shopify today.
You actually are using TINYMCE to write that description any sort of If you have
ever typed any sort of rich text on the web, you most likely have
used tiny MC. It's like trusted by several enterprises like IBM, Microsoft Salesforce,
as well as some of the things you touched day to day like Shopify,
mail Chimp, and so many more products. Right So it is simply
a JavaScript based rich text editor component, but it is really important for developers
because it provides more than just bold italics and underline, which is what we
think of when we think of rich text editor. It provides features like markdown
support, AI Assistant. We're actually, you know, seven point two some
point one is coming up and we have some more support for our AAS system,
So kind of teasing that over here in this podcast as well. So
several great features to really enable your users at the end of the day,
who are creating rich taxs or we're creating some side or sort of content,
to have kind of a seamless experience as they're getting a content as well as
a smart experience if they want to use a awesome awesome Okay, So it
seems to me that this is the most or at least one of the most
super charged reach tax editors on the market today. So is that basically what
you're saying. I would say so in terms of it's not just it's not
just feature rich, right, it's feature rich, but it's also ready to
scale for you. So tiny MC can be something as simple as running a
few features. You can customize it very quickly, or something as complex as
having document converters, revision history all kind of built into the editor. So
you can use TINYMC for a blog post in your web application to type up
a blog post. Or you can also use TINYMC in invoice processing where you
need to edit some invoices, comment and collaborate with other team members. So
it can be as complicated and as simple for a rich text editor as you
want, and it scales interesting. Okay, so you brought up some more
complex use cases that I hadn't thought up at the beginning, because at first
I only thought about something that could export markdown or just export it as HML
and support markdown as input. But this is a lot more complex than that,
because as soon as you mentioned like invoices, I even thought about like
an email editor that like for email marketing, that is not just regular texts,
but something a little bit more complicated. So what I wanted to know
is what are the most relevant use cases for tiny that that come to your
mind and that people generally use it for, because perhaps people are not thinking
about the possibilities of where to use that, right, So if you if
you think about a rich text editor, I think the first thought that you
get is like in content management systems, right where you have the ability to
maybe create a template, have the bold italics underline, have the ability to
paste in some media, spell check your solution, things like that. But
as you said, you can actually extendc to a bunch of different use cases
like email and messaging platform Right there are out of the box templates that you
can actually go to the tiny site and see the email and I believe messaging
template or solution that and you can actually see how an advanced template can actually
fit right into your editor and how you can edit that for email marketing software.
It can also be used for document management systems CRMs. Right TC is
a great way to use it for a CRM, But for example, if
you want an email template where you're like, hey, this is my lead,
this is what my project is worth, you can actually create email templates
often there as well. So there's a lot of different use cases ranging from
CMSs, LMSs, your internal applications as I mentioned, like the IBMS and
Microsofts are using them internally, and then you can also extend it to email,
messaging and CRNS and DMSs and so on and so forth. So it's
a great tool that ranges ranges from a wide ranger solution. It's simply like,
if you have a use case for rich text, or if you have
a use case to collaborate over a piece of document, collaborate over text,
and you want to build that functionality into your web application, Tiny is a
great great place to start. Okay, gotcha, And we were referencing the
Tiny website. For anyone that is just listening to the show and wants to
check that out is Tiny dot cloud. So just step that out in your
browser and you'll be able to see demos of the product and some examples of
solutions and use cases for it. So, Rita, let me let me
make the question that a lot of folks may be thinking at this moment.
There are so many open source libraries out there. There's just so many things
that we can get for free and even customize them their m T. We
can just even bundle in our code base if we want to make changes through
the source code. So, which audience do you think would benefit more from
Tiny and which audience do you think would would not be the ideal customer for
Tiny and would be better served by looking for an open sourced library. That
they can just install and hack it away. Right, that's a that's a
great, great question, uh, And that's something you know we've we've probably
kind of dabbled with even internally a tiny MC and the simple solution can be
if you are working on any kind of project, right, that's beyond just
a hobby project. If you're working on a front facing application. It's a
small side project that you can see scaling and growing. If you're going to
scale your application, then I think tiny MCEE is the way to go.
And I'm you're not just saying that because I work for tiny C. I
work with other editors in the market and as you mentioned, that could be
MIT licensed and things like that. And the thing about that is maintaining a
rich text editor is hard, right. We have over fifty sixty engineers working
on this, and it's because of the complexity that comes with dealing with text
on a website. It's pretty complicated. If you've ever worked with dom mainnipulations,
you know how complicated it is. And that's kind of the reason why
I think tiny is great for these kind of applications that need to scale,
because a rich text editor is not where you want to be spending, especially
if you're a small team of engineers, most of your time developing. You
want to be able to plug this application in, make it look and feel
the way you want it, and then move on to the next thing.
Right, So if you're a small team of engineers, highly recommend. If
you're an enterprise or as SMB or medium sized business, again it's the same
sort of do you really want to be spending a lot of time developing and
wrapping your own rich text editor or do you want to kind of move on
to the next big thing in your project and adapt something that's already tried and
tested. Tiny has over twenty years of experience in the industry. We've you
know, a lot of developers, over a million developers at this point,
have grown with Tiny in these past twenty years, and they've seen us transition,
evolve and adapt to the quality and standard of web development. As you
know, the decades have progressed. So we have twenty years of experience coming
in. But more than the twenty years, it's just we've been stable,
we are consistent, and we've proven to be able to scale to the needs
of our customers. And I think that's really what sets tiny apart from you
know, just picking up a rich Tex editor, because the other thing is
you don't want your users and your web application to come in start typing a
piece of text and then it gets bluggy. Imagine if someone's trying to create
a blog post on your website or content management system, they drag and drop
a image and then the image starts creating all the text. Super buggy.
That's not what That's not the experience you want for your developers as well or
for your users as well. So from a developer experience, it's great because
it's very quick and easy to set up. You can get most of the
basic functionality, in my opinion, up and running in within five to ten
minutes if you're an experienced developer, or even if you're like an intermedia developer.
And on top of that, I really believe that from a user experience
point of view, we are a lot less buggy than a lot of open
source solutions out there, gotcha understood. So it all boils down to how
much quality you're looking for in the shortest amount of time possible. Because at
the same time, let's be honest, if anyone really wanted to spend enough
time and resources they could get an alternative version quote unquote free, because it's
not really free if you have to spend a lot of your time to make
it as good as as what tiny already offers out a box. So at
the end of the day, if you consider that you're still going to have
to spend your time, which might be even more expensive than just the the
commercial license for Tiny, then at the end of the day, it all
boils down to the same amount of financial resources invested. But at one side
you get a component that is ready to go from the start, and on
the other hand, you take a lot more time to get it up and
running. Yeah, it really is that, and it's also technical debt right
if you're I've worked for software engineering teams and one of the I think things
that you need to keep in mind whenever you're introducing a new feature or product
within your major project is how much technical debt is that going to introduce for
a small term. Right. The fact that Tiny is maintained by fifty six
people as engineers, you know they're going to take care of all the bugs.
Especially you know, if you're a commercial licensed customer, you're going to
have the extra one on one support. So I think that is another major
consideration as you are thinking about, you know, a rich text editor for
a business, because it's not only upfront engineering cost, it's also technical debt
maintenance of the component. So there's so many different aspects when you think about
like a software engineering project, especially a full stack project, and I think
it's kind of just determining how much time and money and resources you want to
allocate to a rich tex editor component. Awesome. Now let's talk about it
a bit more from a developers from a developer standpoint, because I think it's
really interesting to understand how much work it goes into building that sort of stuff.
And it's kind of like, I think almost all front end developers at
this point they know that building a calendar is very complicated. So it's something
that any real, any normal person that isn't a developer, would just browse
the web and see a date figure and think, oh, okay, cool,
that's like a day, yeah whatever. Sure, but any front end
developer that has ever tried to create it realize how complex it is to make
it accessible, to make it performant, and also to make it localized.
Right, because it's one thing to just have a component that works in English,
and it's another thing entirely to have something that works for all languages that
exist in the world. So that's like a complete different challenge, right.
And you mentioned that tiny has like forty fifty engineers, so I'm not sure
what is the exact number, but I'm really curious to understand the the challenges
that come in the background to make such such a component happen, Like what
is the amount of people that are working behind and why is why are all
those resources necessary to build a rich taxt editor? Right? No, that
that is a that is a great question, right I. So let me
let me start by breaking down the questions we have about fifty developers working on
tiny MC. As you mentioned, there are different parts of a rich text
editor that goes into building something as cool and feature rich and supported as NMC.
I think the first thing is the web, the web world, right.
The world of web development is constantly upgrading and changing. We have a
new framework every few months, a new update every few warns, and a
lot of improvements and updates from React to Angular to view to the way we
build things with vite. You know it used to be I used to bundle
things and build things with things called like Babbel and things like that, and
now it's all like bite and he has built which are a zillion times faster.
So just having people first understand what is new and what is important in
the web development world that that takes a lot of effort. Now, the
second part is keeping all of the features up to date. Right when talk
about tiny and c features, you can think about like think about it in
a few different aspects. You first have core editing features, right, like
font formatting, code editor, text pattern imports, CSS, character map,
things like that, even like the cute like emoticons. Right, all of
that requires someone to maintain it, come up with a feature, determine how
that icon is going to look, how is it going to work on the
back end, how how do we make sure that introducing this feature is not
going to take away from the performance of the component itself. Then there comes
a little bit more complicated feature right beyond a core editor, as I was
talking about collaboration, right, if you want revision history, if you want
comments on your application or mentions, if you want in app conversations and discussions,
and you let application using a rich text editor that takes a little bit
more effort because now it's not only you talking, you typing a piece of
test, it's you collaborating with someone else live. It's not necessarily real time
collaboration yet, and the keyword is yet, but it is a very asynchronous
collaboration that's happening, and you need to make sure that the person who's opening
a new session of your website is receiving those comments accurately. Then you come
to some other features like imagine if you're doing some sort of content conversion,
right, Like I own an invoice company. I've typed in pieces of text,
everyone has collaborated it, and now I want to export that invoice and
send it over to my logistics team. So I need to export the PDFs.
So there comes engineers who need to understand the nuances of not only front
end technology, but also what does it take to take a piece of HTML
rich tax and convert it into a PDF document, or take a piece of
HTML rich text and convert it such that when I open it as a word
document or I can export word it actually keeps the formatting right. And so
all in all, to answer your questions, tiny EMC probably has over one
hundred plus features, each requiring its own nuances, its own specifications. And
then all of these features need to be compatible. Even though we're wrapping it
around a thin net wrapper around like Angular or react or View, they only
need to be compatible with those frameworks as well. And then finally we need
to make sure that it's all highly pro optimized for performance, because at the
end of the day, you don't want to load a rich text editor and
then your whole website as well. So there's a lot of like lazy loading
and things like that that goes on in the background, and I can dig
into that later. So it's a lot of work when you think about it
as individual features and how big the project actually is, gotcha. So they're
basically on different skill sets among the engineering team, and I imagine that there's
probably a structured software development life cycle or or am I wrong in terms of
like before any release, it needs to go through a performance jack, and
after the performance chack, there's the accessibility check and is that like confidential information
or would you be it would it be okay to share the order of that,
because I think that would be really interesting for the developers listening, Like
how do you order the quality control pipeline of your product to make sure that
what is shipped at the end never gets degraded into any relevant metrics. Got
it. So in terms of like our release schedule just and I'm going to
talk about it, there's nothing confidential. It is like every other software engineering
team, right. Our team has our own infrastructure that kind of maintains how
tiny mc works, the loads and all of that behind the scenes. Then
we have, of course our individual frameworks folks that work with the open source
project who are constantly contributing to that as well. And then in terms of
how it works is we have a lot of test environments and we have our
own dedicated QA team and they're an amazing team. Shout out to Charity who
kind of leads that team based out of Australia. And what they do is
they kind of do a round one of test coverage, right, They're making
sure there's no way breaking issues, there's nothing that changes like all your original
functionalities. Then they have a list of bugs that they're fixing, right,
So every release, they're also focusing on our own technical debt. Were there
any bugs are we kind of helping improve that? Then of course there's the
new features, so there's new features, there's improvements, and then there's bug
fixes that we focus on. And then of course there is quality assurance in
terms of accessibility testing as you mentioned, and we if I if I have
looked at some of the past releases, I think I've typically seen them have
around ninety nine percent test coverage, So it's a pretty great, well tested
product, and that QA team, as I mentioned, does a great job
of that release cycle every time. It's of course an agile team, so
if you want to hear about like how are they managed, you know they
work sprint to sprint, they have their own exit demos, they have they
have a very agile functionality. If you want to ask me all the details
about the engineering team, I haven't been an engineer at Tiny, so I
can't tell you every single process of it, but from what I've seen,
it's a typical. We have a sprint, we work on our feature releases,
we work towards the thing, and then they actually have a code freeze
at the end of that where QA comes in tests all of these to make
sure we have one hundred percent test coverage. Accessibility is checking out, security
compliance is checking out, In fact, I believe tiny MC is software compliant
as well. So you know, we're very high not only on the accessibility
aspect, but also on the security aspect, because at the end of the
day, this is content that people are typing that's personal for them. So
there's a huge series of tests after your software development cycle that QA goes through,
and then and only then do we sort of release Okay, okay,
Yeah, there's lots of complexity that from the from a first glance, I
don't think people would would think of all that that is going on in the
background. Yeah, yeah, definitely. And how much customizations can we get
with the any editor, because I wouldn't want it to have just a general
style. I would want to customize literally everything that I can to make it
as close to my branding guidelines as humanly possible. So in terms of you're
talking in terms of like CSS customization, right or features, I was thinking
I was thinking more of like visual aspects of CSS, but I wasn't even
thinking about customizing the futures. Perhaps you could answer the CSS part of it
first and then go into the features. Yeah, of course. So in
terms of let me start with the CSS part of it, right. It's
eight jobs for the component, which means that you have access to the actual
component itself, the HDML, and you can actually just edit the CSS to
fit it according to your brand guidelines. As I said at the very beginning,
one of the things that I said was, if you've typed any feature
of rich text on the Internet, you've probably typed on TYMC and you didn't
know it was tiny MC. So, for example, if you've ever used
sales Lot or even as I mentioned, Shopify, when you're typing on it,
it doesn't necessarily look like the demo TINYMC rich Tex editor, but it
definitely is a TINYMC rich tex editor, right. So I think at the
end of the day, the answer is, yes, you can customize it
to how you wanted to look and feel. We have a skin that we
provide at the beginning. We also have the ability to go back to our
old skins if you actually have a preference for those. But it's highly customizable.
It's again just a component, and you can always edit how a component
looks okay, cool, And in terms of features, what is the level
of customization that exists within that? So I think the really interesting thing about
tiny MC is you know, even the core editor, it comes with probably
twenty thirty plus features, right, if not even more, and you don't
have to actually import all of those features. So, if you now talking
sort of Angular and Tiny, if you there's like this initialization that you do
with the Tiny editor when you're loading it into your Angular project, and in
that initialization you actually specify which plugins you want to bring into so it only
brings into your JavaScript the plugins that you ask it to load at runtime.
So, for example, if I don't care about collaboration content, I just
need a rich text editor that does basic BoNT formatting, has some visual blocks,
can import CSS, and has text patterns, I can specify I only
want those four plugins, and I will have a very simple editor. So
that's how simple it can get in terms of bringing in new features and functionalities.
Gotcha. And then the bundle sizes. I expect that it's also going
to reflect that, right, it's not going to load any code that it
doesn't need. Yeah, it doesn't load any code that it doesn't need.
And even during as I said, during runtime, it takes advantage of most
likely I'm guessing if most of you're using TENMC or you're not just using it
in minologreas you're using some of the frameworks, and it takes advantage of some
of the performance optimizations that specific frameworks provides. So, for example, Anguler
has lazy loading capabilities and TINYMC takes full advantage of that. Gotcha. Okay,
okay, interesting, we are at twenty eight minutes already. Time time
is line. I to make sure that, Yeah, I want to make
sure that we really cover everything that you would consider to be really major.
So I'm going to throw like a catch all question to you, which is
is there anything that you deem as really important that we should talk about that
I haven't touched yet. Yeah, of course. So I have a few
like product updates in terms of like tiny we recently about a month ago launched
tiny MC seven, which was very exciting and some of the features that I
highlighted over in this podcast, like document converters, revision, history, markedrown
and support, we're all part of that release, as well as things that
to look forward to. In terms of seven point one, we do have
some exciting things around like math equations coming up, as well as enhancement to
our AI assistant. So I think content editing is not exclusive to just type
a piece of text. Now you can just connect it to CHATGBT and ask
prompts and you know, even ask Tragic to say, hey, generate an
email template for me if you have any senior email editor, rather than sort
of having to write from the start. So it has a lot of content
and a lot of features and functionalities, and we're just improving it every iteration
of it. Okay, Okay, that's really interesting. All right, so
Rina, I think we can start wrapping up. There's a lot more stuff
about this, especially in the docs. So if anyone is interested, definitely
recommend going to the website and checking out the product firsthand. So I'm going
to put a link to the website here in the comment section. But then
again, it's just tiny doc cloud for anyone that is listening wants to check
that out. Let's do some shameless promos. So, Marina, what would
you like to to mention? It could be stuff from tiny, or it
could you just be personal for you. It could be things that you're working
on. What would you like to promote? Yeah, of course some shameless
promos. We're Tiny is actually going to be a front end Nation, which
is a huge online conference. So I'm guessing a lot of you are joining
this podcast are actually uh, you know, online listeners and engagers. So
we're going to host a workshop on you know, building out this rich text
editor that's going to include an AI assistant and almost give you this notionlike feel.
We're also going to be heavily giving out swag at front endation that's your
thing, and we have a huge community there, so really excited to see
you all there. And again, tiny EMC seven point one is coming out
soon with some newer and greater things with the assistant and other features, so
just stay tuned for what we're doing with tiny and C. Check out our
discord channel or Twitter. We're pretty active on both, as well as some
YouTube videos that we'll be launching. Awesome, awesome, Okay, all right,
So well my promo is just going to be the two companies sponsoring the
show. So then again, if anyone wants to learn more about software development
in general, Top and Devs has several podcasts, not just this one.
So there are shows about react, about develops, about machine learning. So
look up Top and Devs and you're going to see that there are multiple different
shows that might interest you. And again if you're a company or just an
individual wanting to help, wanting help to execute your idea and you need good
developers and designers, check out Onvoid dot com. Is you and Void so
Void dot com. And the difference between them and every other company that offers
remote design and software development services is that by hiring Onvoid, you actually only
pay after the work is delivered and approved. So it's not just a matter
of them saying, hey, is delivered, now you pay. No,
you actually even have a step where you can do quality assurance and make sure
that it is aligned with your expectations for the work before you approve, so
they have all the incentives needed to actually deliver great quality work on time,
because that is going to reflect on how much they get paid at the end
of the month. So yeah, definitely check out those two companies if you
feel that they ease any of the pains that you have in your life.
But yeah, that's it again. Thank you so much for sticking to the
end of the show. I hope you enjoyed it. Rina. You are
very welcome to go back anytime you want. I'm sure that there are other
projects from tiny that we haven't even touched upon. So if at any point
you want to join the show again and then we can discuss some of the
other stuff that Tiny has available in their portfolio, then let's definitely do that.
And again, thanks for being on the show. Awesome, Thank you
so much, Lucas. Have a wonderful day and I hope everyone enjoyed this.
Thank you, thank you, see you all next week.