Skip to content

Commit

Permalink
Added Firebase blog article
Browse files Browse the repository at this point in the history
  • Loading branch information
fgatti675 committed Nov 13, 2024
1 parent 5187e42 commit e32a810
Show file tree
Hide file tree
Showing 7 changed files with 289 additions and 3 deletions.
37 changes: 37 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
## [3.0.0-beta.11] - 2024-07-10

- [BREAKING] Removed `userRoles` from AuthController. You can now access the `roles` prop in the user object directly
- [BREAKING] For self-hosted versions, there has been a change in the API for the data management controllers. The
`authController` is now passed to the User Management controller, instead of the other way around. The `userManagementController`
can be used as an auth controller, but with all the added logic for user management.
Expand Down Expand Up @@ -71,8 +72,44 @@ const navigationController = useBuildNavigationController({
});
```

- Fixed issues in collection editor code dialog.
- Updated web styles and integrated improvements in Docusaurus.
- Enhanced styling for empty references and minor design tweaks.
- Continued work in progress on Editor custom components.
- Reintroduced dark primary color variant for better theme options.
- Minor web updates for improved aesthetics and functionality.
- Fixed a bug where the Editor was not saving false values.
- Replaced all instances of gray and slate colors with more unified surface and surface-accent colors for UI consistency.
- Added Avatar component fallback and integrated ESLint configuration into templates.
- Enhanced error handling in forms and improved cloud error messages.
- Refactored user management logic for better code organization.
- Improved the handling of boolean switch properties in configurations.
- Introduced state management for children in ArrayContainer.
- Added a recipe for slug creation, improving URL handling and SEO.
- Fixed crash issues in repeat fields for subproperties and addressed various minor styling and functionality bugs.
- Made improvements to heatmap responsiveness (HMR fixes).
- Refactored text search functionalities for better efficiency and added relevant documentation.
- Fixed issues with number input fields blocking scroll and replaced date picker with native HTML date input for consistency.


## [3.0.0-beta.10] - 2024-07-10

- Fixed issues with wrong licenses.
- Resolved TipTap dependencies.
- Addressed various minor styling updates across the web.
- Moved body CSS from default imports to individual files for better modularity.
- Implemented several web updates, including select style fixes and dialog title adjustments for text search.
- Updated the collection editor property select view and improved widget selection layout.
- Applied AppBar tweaks to enhance behavior on mobile devices.
- Improved console outputs and cleaned up miscellaneous code segments.
- Enhanced UI with the addition of a Slider component and updated related documentation.
- Replaced entity edit icon with a pencil for clarity.
- Updated dependencies and refined project management with a license check feature.
- Improved Formex handling of number inputs and fixed DateTimeField export in Next.js.
- Added API key generation and project selection capabilities.
- Introduced a past-due warning message and improvements in collection and subcollection data handling.
- Provided better error handling and layout consistency in the application.
-
## [3.0.0-beta.9] - 2024-07-10

- **NEW MARKDOWN EDITOR**: The markdown editor has been completely revamped. It now supports a live preview, and a much
Expand Down
198 changes: 198 additions & 0 deletions website/blog/2024-11-13-unlocking_power_firebase_cms.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,198 @@
---
slug: unlocking_power_firebase_cms
title: "Firebase: The Ultimate Backend for Your CMS"
image: /img/blog/firebase_firecms_banner.png
author_name: Marian Moldovan
author_url: https://www.linkedin.com/in/marianmoldovan/
author_image_url: https://avatars.githubusercontent.com/u/1479084?v=4
---

![Firebase logo](../static/img/blog/firebase-logo-standard.svg)

In the rapidly evolving landscape of content management systems (CMS), choosing the right backend is more critical than
ever. Developers are faced with a plethora of options, from traditional setups like WordPress to modern headless CMSs
like Strapi, Contentful, and Sanity. At [FireCMS](https://firecms.co/), we've embraced Firebase as the backbone of our
CMS, and in this article, we'll delve into the benefits of using Firebase over other CMS backends. We'll also provide
direct comparisons to alternative CMSs to help you make an informed decision.

## The Firebase Advantage

Firebase, a platform developed by Google, offers a comprehensive suite of tools for app development. It provides:

- **Cloud Firestore**: A flexible, scalable NoSQL cloud database for storing and syncing data in real time.
- **Authentication**: Secure and easy-to-use authentication services supporting email and password, phone auth, and
social logins.
- **Cloud Functions**: Serverless framework to run backend code without managing servers.
- **Hosting**: Fast and secure web hosting for your web app, static and dynamic content.
- **Realtime Database**: A real-time, low-latency database for mobile, web, and server development.

By leveraging Firebase, FireCMS offers a CMS that is not only powerful but aso scalable, secure, and cost-effective.

![FireCMS Dashboard](../static/img/blog/firecms-dashboard.png)
*The sleek and intuitive FireCMS dashboard powered by Firebase.*

## Why Choose Firebase Over Alternative CMS Backends?

### Scalability and Performance

Firebase is built on Google's infrastructure, ensuring high performance and reliability. It automatically scales to
handle your app's growth without the need for manual intervention.

**Compared to WordPress**:

- **WordPress** relies on traditional hosting and databases like MySQL. Scaling requires significant effort, often
involving complex setups with load balancers and database replication.

**Compared to Strapi and Ghost**:

- **Strapi** and **Ghost** require self-hosting, which means you're responsible for scaling your servers as your user
base grows.
- Firebase handles scaling seamlessly, allowing you to focus on developing features rather than infrastructure.

### Real-time Data Synchronization

Firebase's real-time databases enable instant data updates across all clients, enhancing user experience in
collaborative environments.

**Compared to Contentful and Sanity**:

- **Contentful** and **Sanity** offer real-time editing but may require additional configurations or costs for real-time
data syncing in your applications.
- With Firebase, real-time capabilities are built-in and readily accessible.

### Security and Authentication

Firebase Authentication provides a robust security layer without the need for additional backend code.

**Compared to Strapi and KeystoneJS**:

- **Strapi** and **KeystoneJS** offer authentication but often require additional setup and maintenance.
- Firebase provides a secure, out-of-the-box solution that integrates seamlessly with FireCMS.

### Serverless Architecture

Firebase's serverless approach means you don't have to manage servers or worry about server maintenance.

**Compared to Self-hosted CMSs**:

- Self-hosted solutions like **Strapi**, **KeystoneJS**, and **Ghost** put the onus on you to manage servers, updates,
and security patches.
- Firebase's serverless services reduce overhead and potential downtime.

### Cost-effectiveness

Firebase offers a generous free tier and a pay-as-you-go model, making it suitable for projects of all sizes.

**Compared to Contentful and Agility CMS**:

- **Contentful** and **Agility CMS** can become costly as you scale, with pricing based on usage, users, and features.
- Firebase's pricing model is straightforward and often more affordable in the long run.

## Direct Comparisons with Other CMSs

To better understand Firebase's advantages, let's compare it directly with other popular CMS backends.

### Firebase vs. WordPress

**WordPress** is a long-standing CMS known for powering blogs and websites.

- **Architecture**: WordPress is monolithic, coupling the frontend and backend. Firebase, used with FireCMS, promotes a
headless architecture, offering more flexibility.
- **Scalability**: Scaling WordPress can be complex and costly. Firebase scales automatically.
- **Security**: WordPress sites can be vulnerable if not properly maintained. Firebase provides robust security out of
the box.

### Firebase vs. Strapi

**Strapi** is an open-source headless CMS that allows you to create APIs quickly.

- **Hosting**: Strapi requires self-hosting, adding to maintenance efforts.
- **Flexibility**: While Strapi is customizable, Firebase offers greater flexibility with serverless functions and
integrations.
- **Real-time Data**: Firebase excels in real-time data handling, whereas Strapi would require additional setup.

### Firebase vs. Contentful

**Contentful** is a headless CMS that offers content infrastructure for digital teams.

- **Cost**: Contentful's pricing can be prohibitive for larger teams or projects. Firebase's pay-as-you-go model can be
more economical.
- **Customization**: Firebase allows for extensive customization with Cloud Functions. Contentful may have limitations
due to its SaaS nature.
- **Vendor Lock-in**: With Firebase, you're building on a platform with widespread adoption and support. Contentful's
proprietary setup may limit flexibility.

### Firebase vs. Sanity

**Sanity** is a headless CMS with real-time capabilities.

- **Data Management**: Sanity uses GROQ for queries, which is less common than Firebase's querying methods.
- **Ecosystem**: Firebase integrates seamlessly with other Google Cloud services, offering more tools and services.
- **Scalability**: Both offer scalability, but Firebase's infrastructure is arguably more robust given Google's backing.

## FireCMS: Harnessing Firebase's Potential

With [FireCMS](https://firecms.co/), you get a CMS explicitly designed to leverage Firebase's strengths.

- **Easy Setup**: Configure your CMS with minimal code using FireCMS's intuitive schema definitions.
- **Real-time Admin Panel**: Experience instant updates in your admin panel, streamlining content management.
- **Customizable UI**: Tailor the admin interface to your brand and workflow needs.
- **Extensibility**: Use Firebase Cloud Functions to extend functionality without managing additional servers.

![Configuring FireCMS](../static/img/blog/firecms_configuration.png)
*Easily configure your FireCMS with straightforward schemas.*

## Addressing Common Concerns

### Learning Curve

Adopting new technology can be daunting. However, Firebase and FireCMS offer extensive documentation and community
support.

- **Resources**: Access tutorials, guides, and a vibrant community on [Discord](https://discord.gg/fxy7xsQm3m).
- **Support**: FireCMS provides commercial support to assist with your project's needs.

### Data Modeling with NoSQL

Firebase uses NoSQL, which differs from traditional relational databases.

- **Flexibility**: NoSQL allows for more flexible data models.
- **Guidance**: FireCMS's schema system helps structure your data effectively.

### Vendor Lock-in

Relying on a platform can raise concerns about dependency.

- **Open Source**: FireCMS is open-source, giving you control over the CMS codebase.
- **Data Control**: With Firebase, your data is stored in standard formats, and exporting is straightforward.

## Get Started with FireCMS and Firebase

Transitioning to Firebase with FireCMS empowers you to build scalable, secure, and high-performance applications.

1. **Explore FireCMS**: Visit [firecms.co](https://firecms.co/) to learn more about features and capabilities.
2. **Try the Demo**: Experience FireCMS firsthand with our [live demo](https://demo.firecms.co/).
3. **Join the Community**: Connect with other developers on our [Discord server](https://discord.gg/fxy7xsQm3m).

---

### Final Thoughts

Choosing the right backend for your CMS is a pivotal decision that impacts scalability, security, and development speed.
Firebase, paired with FireCMS, offers a compelling solution that outshines traditional CMS backends like WordPress,
Strapi, Contentful, and Sanity.

---

### What's Next for Your Project?

We'd love to hear about what you're building. Whether you're updating an existing project or starting something new,
FireCMS and Firebase can help you achieve your goals faster and more efficiently.

**Get in Touch**:

- **Discord**: Join our community on [Discord](https://discord.gg/fxy7xsQm3m).
- **LinkedIn**: Connect with us on [LinkedIn](https://www.linkedin.com/company/firecms/).
- **Email**: Reach out at [[email protected]](mailto:[email protected]).

Let's build something amazing together!
37 changes: 37 additions & 0 deletions website/docs/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ title: Changelog
---
## [3.0.0-beta.11] - 2024-07-10

- [BREAKING] Removed `userRoles` from AuthController. You can now access the `roles` prop in the user object directly
- [BREAKING] For self-hosted versions, there has been a change in the API for the data management controllers. The
`authController` is now passed to the User Management controller, instead of the other way around. The `userManagementController`
can be used as an auth controller, but with all the added logic for user management.
Expand Down Expand Up @@ -75,8 +76,44 @@ const navigationController = useBuildNavigationController({
});
```

- Fixed issues in collection editor code dialog.
- Updated web styles and integrated improvements in Docusaurus.
- Enhanced styling for empty references and minor design tweaks.
- Continued work in progress on Editor custom components.
- Reintroduced dark primary color variant for better theme options.
- Minor web updates for improved aesthetics and functionality.
- Fixed a bug where the Editor was not saving false values.
- Replaced all instances of gray and slate colors with more unified surface and surface-accent colors for UI consistency.
- Added Avatar component fallback and integrated ESLint configuration into templates.
- Enhanced error handling in forms and improved cloud error messages.
- Refactored user management logic for better code organization.
- Improved the handling of boolean switch properties in configurations.
- Introduced state management for children in ArrayContainer.
- Added a recipe for slug creation, improving URL handling and SEO.
- Fixed crash issues in repeat fields for subproperties and addressed various minor styling and functionality bugs.
- Made improvements to heatmap responsiveness (HMR fixes).
- Refactored text search functionalities for better efficiency and added relevant documentation.
- Fixed issues with number input fields blocking scroll and replaced date picker with native HTML date input for consistency.


## [3.0.0-beta.10] - 2024-07-10

- Fixed issues with wrong licenses.
- Resolved TipTap dependencies.
- Addressed various minor styling updates across the web.
- Moved body CSS from default imports to individual files for better modularity.
- Implemented several web updates, including select style fixes and dialog title adjustments for text search.
- Updated the collection editor property select view and improved widget selection layout.
- Applied AppBar tweaks to enhance behavior on mobile devices.
- Improved console outputs and cleaned up miscellaneous code segments.
- Enhanced UI with the addition of a Slider component and updated related documentation.
- Replaced entity edit icon with a pencil for clarity.
- Updated dependencies and refined project management with a license check feature.
- Improved Formex handling of number inputs and fixed DateTimeField export in Next.js.
- Added API key generation and project selection capabilities.
- Introduced a past-due warning message and improvements in collection and subcollection data handling.
- Provided better error handling and layout consistency in the application.
-
## [3.0.0-beta.9] - 2024-07-10

- **NEW MARKDOWN EDITOR**: The markdown editor has been completely revamped. It now supports a live preview, and a much
Expand Down
6 changes: 3 additions & 3 deletions website/docs/collections/additional_columns.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ import {
type User = { name: string }

export const fullNameAdditionalField: AdditionalFieldDelegate<User> = {
id: "full_name",
key: "full_name",
name: "Full Name",
Builder: ({ entity }) => {
let values = entity.values;
Expand Down Expand Up @@ -63,8 +63,8 @@ import {
} from "@firecms/cloud";

export const productAdditionalField: AdditionalFieldDelegate<Product> = {
id: "spanish_title",
title: "Spanish title",
key: "spanish_title",
name: "Spanish title",
Builder: ({ entity, context }) =>
<AsyncPreviewComponent builder={
context.dataSource.fetchEntity({
Expand Down
Loading

0 comments on commit e32a810

Please sign in to comment.